一、框架设计
前面都只是单纯的编写脚本,但是难以统一管理,这里简单做了个框架设计,如下图(图1)所示:
基于图1所示,做一下简单的说明:
(1)配置层config:设计配置文件,由配置文件来控制此次测试执行需要调用哪些脚本;
(2)脚本层test_script:
ind_test:存放独立的测试脚本;
bus_test:存放业务测试脚本;
(3)数据层test_data:
ind_data:存放独立脚本的数据文件;
bus_data:存放业务测试脚本的数据文件;
(4)报告层test_report:
ind_report:存放独立脚本的测试报告;
bus_report:存放业务测试脚本的测试报告;
fram_report:存放框架执行的报告(执行了哪些脚本等情况)
(5)驱动层test_driver:存放驱动文件
二、使用HTMLTestRunner生成测试报告
之前在接口自动化里有梳理过自定义编写csv文件输出测试报告,也可以用HTMLTestRunner生成测试报告,使用也比较方便,在main函数中就不能使用unittest.main()来调用了,可以使用测试套的方式,测试套的用法在探索框架(一)--unittest框架(Python)中总结过,具体代码如下:
if __name__ == '__main__':
# 声明测试套对象
suite = unittest.TestSuite()
suite.addTest(test_updateinform2("test_case1"))
# 获取当前文件路径
curpath = os.getcwd()
# 获取项目路径
farpath = os.path.abspath(os.path.dirname(curpath) + os.path.sep + "..")
# 声明文件
reportname = farpath + "\\test_report\ind_report\\test_updateinform2_report.html"
# 以wb方式写文件
report = open(reportname, "wb")
# 声明测试运行对象
runner = HTMLTestRunner(stream=report, title="更新用户信息的接口测试报告", description="这是一个测试报告的描述")
runner.run(suite)
report.close()
其中关于获取正确的文件路径要结合框架设计中的每个目录的位置来分析,这样即可生成一个简单的测试报告。