import unittest
import HTMLTestRunner
suite = unittest.TestSuite() # 定义测试集合
all_case = unittest.defaultTestLoader.discover(r'D:pythonyz-codeday11AUTOcase', '*.py')
# 找到case目录下所有的.py文件
for case in all_case: # 循环添加case到测试集合里面
print('cases...', case)
suite.addTests(case)
fw = open('report.html', 'wb') # 如果没写绝对路径就在当前路径下生成report.html
runner = HTMLTestRunner.HTMLTestRunner(stream=fw, title='多个文件运行')
runner.run(suite)
通过TestLoader加载测试用例,discover()里面有两个参数,第一个是路径,第二个是以什么规则找python文件,默认是指定路径下的测试用例,并在当前目录里生成一个report.html文件,可以看到报告
如果是多层级的目录,应该怎么查找测试用例,cases目录下有多个目录,每个目录下有好多.py文件,代码如下:
import unittest
import BeautifulReport
all_case = unittest.defaultTestLoader.discover('cases', '*.py') # discover里直接传个cases目录就行,下面有多少目录都不用传
bf = BeautifulReport.BeautifulReport(all_case)
bf.report(filename='多用例报告.html', description='哈哈哈')
不能创建普通的Python File文件,要创建Python Package,多出一个__init__.py文件,看下面的目录结构
__init__.py里是from . import mysql, redis,mysql.py里是name='mysql',redis.py里是name='redis',a.py的代码如下:
import test
print(test.mysql.name)
print(test.redis.name)
运行a.py会打印出mysql和redis,如果没有__init__.py这个文件就会报错,因为test(文件夹)不能.
数据驱动就是通过读取数据去运行你的测试用例
关键字驱动就是代码级、函数级驱动,每条测试用例是一个函数,ui自动化是关键字驱动,ui自动化不是检查数据的,只需要一套数据源就可以了