
在先前的文章里我们曾介绍过批量执行 Airtest 测试脚本的设计思路把测试脚本的实际业务代码全部封装到脚本执行方法当中。在主控脚本里此脚本引入所有的测试脚本并根据需求调用它们的脚本执行方法如此便能够轻松实现于 Pycharm 中批量执行 AirTest 脚本的功能。接下来本文将在这一设计思路的基础上进行更进一步的封装以达成实际的方法封装。用例脚本分析之前我们设计了3个测试脚本截图如下细心的同学会发现3个测试脚本中存在重复代码脚本的初始化驱动driver的初始化操作脚本执行后关闭浏览器操作公共代码提取我们将这些通用的代码提取出来封装到独立的代码中提取 用例执行前的初始化 方法提取 执行测试脚本提取 关闭浏览器提取 生成测试报告提取 测试脚本执行设计测试脚本执行基本方法case_base.pyfrom airtest.core.api import * from airtest.cli.parser import cli_setup from selenium import webdriver from selenium.webdriver.common.keys import Keys from airtest_selenium.proxy import WebChrome from airtest.report.report import simple_report class CaseBase: def __init__(self): 初始化测试用例脚本数据 self.executable_path D:/programs/chromedriver-win64/chromedriver.exe self.web_url https://www.baidu.com/ self.driver None def start_script(self) - None: 用例执行前的初始化方法 :return: # 初始化脚本 if not cli_setup(): auto_setup(__file__, logdirTrue, devices[Windows:///, ]) self.driver WebChrome(executable_pathself.executable_path) self.driver.implicitly_wait(20) self.driver.maximize_window() self.driver.get(self.web_url) def close_script(self) - None: 关闭浏览器 # 退出当前页面 self.driver.close() def run_script_content(self, driver): 执行测试脚本 raise NotImplementedError(子类必须实现此方法) def generate_report(self) - None: 生成测试报告 simple_report(__file__, logpathTrue) def run_test_script(self) - None: 测试脚本执行 # 用例执行前的初始化方法 self.start_script() try: # 执行测试脚本 self.run_script_content(self.driver) except Exception as e: print(脚本执行失败, e) raise # 重新抛出异常 finally: # 生成测试报告 self.generate_report() # 关闭当前应用 self.close_script()测试用例 脚本改写测试用例1module_01case_point_01测试用例2module_01case_point_02测试用例3module_02case_point_01测试脚本批量执行设计批量脚本执行入口文件case_runner.pyfrom module_01.case_point_01.case_point_01 import TestCaseScript as Module01CasePoint01 from module_01.case_point_02.case_point_02 import TestCaseScript as Module01CasePoint02 from module_02.case_point_01.case_point_01 import TestCaseScript as Module02CasePoint01 class CaseRunner: staticmethod def run_all_cases(): Module01CasePoint01().run_test_script() Module01CasePoint02().run_test_script() Module02CasePoint01().run_test_script() if __name__ __main__: CaseRunner().run_all_cases()批量执行效果总结通过对测试脚本中的通用方法进行提取并封装到独立的.py 文件中在进行脚本设计时一方面能够减少代码量另一方面还能降低代码维护的成本。最后下方这份完整的软件测试视频教程已经整理上传完成需要的朋友们可以自行领取【保证100%免费】软件测试面试文档我们学习必然是为了找到高薪的工作下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料并且有字节大佬给出了权威的解答刷完这一套面试资料相信大家都能找到满意的工作。