1.测试用例的执行顺序
0~9、A~Z、a~z 依次进行比较
2.忽略测试用例的执行
对于不想运行的测试用例打标签:@unittest.skip("skipping")
3.unittest断言
测试的最终结果就是判断实际结果和预期结果是否相符
断言:判断实际结果和预期结果是否相符(相当于眼睛和大脑)
self.assertEqual(arg1,arg2,msg=") 预判表达式arg1,arg2相等
self.assertNotEqual(arg1,arg2,msg=") 预判表达式arg1,arg2不相等
self.assertTrue(arg1,msg=") 预判表达式arg1为真
self.assertFalse(arg1,msg=") 预判表达式arg1为假
4.HTML报告
运行一个测试套件,里面由上百个测试用例,如何集中并且清晰的查看测试用例执行结果
(1)将HTMLTestRunner.py添加到python安装目录下
(2)生成HTML报告的步骤
第一步:需要创建一个存放HTML报告的文件夹
curpath=sys.path[0]
if not os.path.exists(curpath+'/resultreport'):
os.makedirs(curpath+'/resultreport')
第二步:解决重复命名的问题(用当前时间来命名)
now=time.strftime("%Y-%m-%d-%H %M %S,time.localtime(time.time()))
filename=curpath+'/resultreport/'+now+'/resultreport.html/'
第三步:报告的输出
with open(filename,'wb') as fp:
runner=HTMLTestRunner.HTMLTestRunner(stream=fp,title=u"测试报告",
description=u"用例执行情况",verbosity=2)
suite=createsuite()
runner.run(suite)
5.异常捕获和错误截图
目的:保留测试结果的现场
./image
"."代表当前文件所在的路径下
错误截图的API:get_screenshot_as_file()
def saveScreenAsPhoto(self,driver,file_name):
if not os.path.exists("./image"):
os.makedirs("./image")
now=time.strftime("%Y%m%d_%H%M%S",time.localtime(time.time()))
driver.get_screenshot_as_file("./image/"+now+"-"+file_name)
time.sleep(3)
6.数据驱动
数据驱动就是用测试数据来驱动测试用例代码的执行
(1)安装ddt
(2)导包
from ddt import ddt,unpack,data,file_data
同时在类上面使用标签@ddt
(3)数据驱动方式
@data(value) 一次性传一个参数,括号中写参数
@data(value1,value2......) 一次性传递多个参数,需要用@unpack映射
@file_data("json文件")
@data(*解析数据的方法(txt/csv文件))