day11_跨目录多个文件运行、多层级目录、数据驱动、关键字驱动

import unittest
import HTMLTestRunner
suite = unittest.TestSuite() # 定义测试集合
all_case = unittest.defaultTestLoader.discover(r'D:\python\byz-code\day11\AUTO\case', '*.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自动化不是检查数据的,只需要一套数据源就可以了

posted @ 2018-03-19 15:02  laosun0204  阅读(133)  评论(0编辑  收藏  举报