一、xc_case:存放测试用例脚本,xc_common:存放自动化测试脚本,xc_datas:存放测试数据和配置文件,xc_driven:存放浏览器驱动脚本,xc_report:存放生成的报
告,xc_tools:存放一些工具,get_main.py为执行程序
注:xc_common里的脚本为每个功能模块的脚本,每个功能模块之间不相互调用;xc_case里的脚本为根据测试用例或业务逻辑组成的脚本
二、思路:
三、执行程序的实现代码如下:
# 简介:通过类反射调用cases包里的case,传入参数,得到实际结果,与预期结果对比,进行断言 import sys import unittest from HTMLTestRunner import HTMLTestRunner from ddt import ddt, data from xctest_gui.xc_driven.get_driver import * from xctest_gui.xc_tools.get_ReadExcel import * from xctest_gui.xc_tools.get_CutString import * @ddt class TestDDT(unittest.TestCase): @data(*ReadExcel().read_excel('./xc_datas/get_data.xlsx')) def test_start(self, li): driver = TestSetUp().get_driver(li[2]) driver.maximize_window() driver.implicitly_wait(20) # 获取模块、类、方法,放入字典 di = get_string().cut_string(li[3]) # 构建一个列表用于存放截图 imgs = [] # 类反射 __import__('xctest_gui.xc_cases.' + di['mod']) mod = sys.modules['xctest_gui.xc_cases.' + di['mod']] cls = getattr(mod, di['cls']) mtd = getattr(cls(), di['mtd']) # 调用,传参,获取响应值 result,self.imgs = mtd(driver,imgs,get_string().cut_string(li[4])) # 断言 self.assertIn(li[5],result) if __name__ == '__main__': suite = unittest.TestSuite() suite.addTests(unittest.TestLoader().loadTestsFromTestCase(TestDDT)) f=open('./xc_report/report.html','wb') r=HTMLTestRunner(stream=f,title=u'测试报告',description=u' ') r.run(suite) f.close()