一、项目目录结构
- 项目目录结构
1)顶级目录是项目名称。
2)二级目录是一级模块名称,如有login模块,notice模块等;同时把report报告目录和主程序runner.py也放在二级目录。
3)三级目录是python模块文件,建议取名为test_二级模块名.py。
在实际的测试过程中,很有可能模块有三级,甚至四级。建议规范到二级模块即可。三级和四级去模块化,直接在py文件写入到case中。
- pycharm实际目录结构
二、二级目录中模块名称必须是python package,不能是directory。否则unittest的 Test Discovery无法找到py模块文件。
三、三级目录的python模块文件必须取名为test_*.py
四、模块文件编写规范
1)模块文件最前面导入常用库
2)类名取名 Test_模块文件名,类名首字母大写;类必须继承自unittest.TestCase,类的实例就是一个case;类必须写类说明,方便后续测试报告的查看
3)合理使用初始化和清除
setUpClass:所有的case执行之前初始化,需用@classmethod装饰
tearDownClass:所有的case结束之后清除,需用@classmethod装饰
setUp:单个case执行之前初始化
tearDown:单个case结束之后清除
4)测试用例必须以test开发,否则无法自动识别;用例的执行顺序按照ASCII码执行,可以使用数字控制用例的执行顺序,如test_00_login;函数说明必须要写,方便后续测试报告的查看
5)可以使用name == ‘main’ 加入测试代码
6)unittest.main(verbosity=2) 可以自动加载测试用例,并执行;verbosity=2 代表详细的输出
test_notice.py 类似的规范,这里不再累述。
五、主程序
1)使用HTMLTestRunner第三方库生成html报告
2)使用discover根据匹配的规则,自动查找模块文件,发现里面的用例并加载
3)生成一个标准的测试报告:
I)存储在report目录下;
使用os库.getcwd获得当前主程序文件的路径
II)报告名类似:2018-10-03 16_06_49_result.html,包含系统时间。
标准的时间,使用time库的strftime方法
4)使用HTMLTestRunner,不要使用TextTestRunner,否则无法生成html报告
5)使用runner.run(discover)运行测试用例
六、测试报告