一、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()
posted on 2020-01-09 21:11  badbadboy  阅读(530)  评论(0编辑  收藏  举报