PyCharm中Airtest测试脚本批量执行方法

962 篇文章 0 订阅
150 篇文章 0 订阅

在先前的文章里,我们曾介绍过批量执行 Airtest 测试脚本的设计思路:

把测试脚本的实际业务代码全部封装到脚本执行方法当中。在主控脚本里,此脚本引入所有的测试脚本,并根据需求调用它们的脚本执行方法,如此便能够轻松实现于 Pycharm 中批量执行 AirTest 脚本的功能。

接下来,本文将在这一设计思路的基础上进行更进一步的封装,以达成实际的方法封装。

用例脚本分析

之前我们设计了3个测试脚本,截图如下,细心的同学会发现3个测试脚本中存在重复代码:

脚本的初始化

驱动driver的初始化操作

脚本执行后关闭浏览器操作

公共代码提取

我们将这些通用的代码提取出来,封装到独立的代码中

提取 用例执行前的初始化方法

提取 执行测试脚本

提取 关闭浏览器

提取 生成测试报告

提取 测试脚本执行

设计测试脚本执行基本方法:case_base.py

from 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__, logdir=True, devices=["Windows:///", ])

        self.driver = WebChrome(executable_path=self.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__, logpath=True)

    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()

测试用例脚本改写

测试用例1:module_01:case_point_01

测试用例2:module_01:case_point_02

测试用例3:module_02:case_point_01

测试脚本批量执行

设计批量脚本执行入口文件:case_runner.py

from 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%免费】

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值