from selenium import webdriver
from time import sleep
import unittest#导入unittest库
import HTMLTestRunner #创建一个类,并且该类继承unittest.case类
class Test_baidu(unittest.TestCase): #初始环境,每一个用例执行时都会先执行这里的代码
def setUp(self):
self.dr=webdriver.Chrome()#调用指定的浏览器并赋值给dr
self.dr.maximize_window()
self.dr.implicitly_wait(10)#智能等待作用和sleep一样
self.dr.get('https://www.baidu.com')
sleep(2) #测试用例---执行搜索新方硕--测试用例的脚本
def test_case2(self):
self.dr.find_element_by_id('kw').send_keys(u'新方硕')
sleep(3) #测试用例--执行搜索新东方
def test_case1(self):
self.dr.find_element_by_id('kw').send_keys(u'新东方')
sleep(3) #还原环境(结束)---用例执行后关闭浏览器(扫尾工作)
def tearDown(self):
self.dr.close()
  • 方案一
 if __name__=="__main__":
unittest.main() #unittest.main()他可以将一个单元测试的模块变为可以执行的脚本,所谓main()的方法使用了
# unittest中testloader类来搜索以test开头的测试用例,并自动执行
# main()执行顺序是以ascii用来执行顺序0-9,A-Z,a-z
  • 方案二:用例的执行顺序,根据你添加的顺序进行执行
 if __name__=='__main__':
suite=unittest.TestSuite()  #构造一个容器用来存放我们的测试用例
suite.addTest(Test_baidu('test_case2'))  #添加类中的测试用例
suite.addTest(Test_baidu('test_case1'))  #添加类中的测试用例
run=unittest.TextTestRunner()
run.run(suite)  #调用对象中的run的方法执行测试套件:suite #或者如下 if __name__=='__main__':
suite=unittest.TestSuite()
suite.addTests([Test_baidu('test_case2'),Test_baidu('test_case1')])
run=unittest.TextTestRunner()
run.run(suite) #还或者如下 if __name__=='__main__':
suite=unittest.TestSuite()
testcates=[Test_baidu('test_case2'),Test_baidu('test_case1')]
suite.addTests(testcases)
run=unittest.TextTestRunner()
run.run(suite)
  • unittest.TestSuite() 执行用例问题如下:

    • 步入正轨解决方案出炉,在右键点击 run 时,发现 run 后面为 unittest.in filename,以前执行文件时都是 Run fliename,也就是说整个文件都是按照 unittest 模式来执行的  

  • 看到了 两个执行的不一致,两个办法如下:

    • 点击控制台Run来运行  

    • 点击 控制台的右上角见图  

    • 此时右键执行就会发现不在 unittest 模式下了哦  

最新文章

  1. Linux 平台静默安装 Oracle客户端
  2. Beta阶段第六次Scrum Meeting
  3. MapKit的使用显示当前位置
  4. 根据某列,将两个 dataframe 合并
  5. 【转】Kettle集群
  6. ReflectASM-invoke,高效率java反射机制原理
  7. AFO && OI回忆录
  8. Git-01-上传项目到github
  9. MySQL ERROR 1130 (HY000): Host '192.168.1.8' is not allowed to connect to this MySQL server
  10. CS通用项目系统搭建——三层架构第二天
  11. Spring:MVC
  12. UI自动化测试模型
  13. PAT 甲级 1130 Infix Expression
  14. Git命令cherry-pick,选择把一部分代码提交到另一个分支
  15. 【java】之查看JVM参数的值
  16. 与ServletContext相关的监听器
  17. Android学习之PopupWindow
  18. poj1562 Oil Deposits(DFS)
  19. Android Studio 无法正确引入包内存在的类
  20. 数据结构65:快速排序算法(QSort,快排)

热门文章

  1. python 函数--装饰器
  2. TP的where方法的使用
  3. jsjsjs
  4. "被删除的文本"组件:<del> —— 快应用组件库H-UI
  5. matplotlib TransformedBbox 和 LockableBbox
  6. Spring Cloud 系列之 Consul 注册中心(一)
  7. hadoop(五)scp命令copy文件和配置(完全分布式准备二)|7
  8. jpa是什么,和hibernate 有什么关系
  9. django 分页器 Paginator 基础操作
  10. S7通信协议之你不知道的事儿