Airtest启动器的妙用--添加自定义的命令行参数

简介: Airtest启动器的妙用--添加自定义的命令行参数

前言



我们都知道,在命令行运行Airtest脚本时, airtest run test.air  指令后面附带的参数是固定的:


  • --device ,用来指定连接的被测设备
  • --log ,用来指定log内容和截图存放的目录
  • --recording ,运行脚本时进行录屏操作


如果想要在运行脚本的命令中,添加一些自定义的参数,我们就要使用到Airtest的启动器啦。


Airtest启动器的介绍



启动器实际上也是一个 .py 文件,里面所编写的内容,实际上是基于1个叫 AirtestCase 的类,这个类继承了 unittest.TestCase ,其目的在于Airtest在运行用例脚本时,添加所有执行基础Airtest脚本的相关功能。


因此,假如我们需要添加自定的义功能,就只需要在 AirtestCase 类的基础上,往 setup()teardown() 方法中加入自己的代码即可。如果这些设置和功能内容相对固定,可以将这些内容作为一个启动器(launcher),用来在运行实际测试用例之前初始化相关的自定义环境。


from airtest.cli.runner import AirtestCase, run_script
from airtest.cli.parser import runner_parser
class CustomAirtestCase(AirtestCase):
    def setUp(self):
        pass
        super(CustomAirtestCase, self).setUp()
    def tearDown(self):
        pass
        super(CustomAirtestCase, self).tearDown()
if __name__ == '__main__':
    ap = runner_parser()
    args = ap.parse_args()
    run_script(args, CustomAirtestCase)
复制代码


在启动器中添加自定义的命令行参数



了解了启动器的基本含义之后,我们再来看下,如何利用启动器来帮助我们给 airtest run 指令添加自定义的命令行参数。


假设我们需要往命令行传入1个参数,用于指定这个脚本需要运行几次,参数名称假设为 --retry ,那么我们可以这样在启动器的脚本中添加如下内容:


from airtest.cli.runner import AirtestCase, run_script
from airtest.cli.parser import runner_parser
class CustomAirtestCase(AirtestCase):
    def setUp(self):
        # 在air脚本运行之前获取这个自定义的参数
        if self.args.retry:
            self.scope['retry']=self.args.retry
if __name__ == '__main__':
    ap = runner_parser()
    # 添加自定义的命令行参数
    ap.add_argument(
        "--retry", help="The number of times the script will be run")
    args = ap.parse_args()
    run_script(args, CustomAirtestCase)
复制代码


有了启动器之后,我们的 .air 脚本就可以接收到这个命令行参数并对它进行相应的处理了:


# -*- encoding=utf8 -*-
__author__ = "AirtestProject"
from airtest.core.api import *
auto_setup(__file__)
print("脚本需要运行的次数是:"+retry)
print('参数个数为:'+str(len(sys.argv))+'个参数')
print('参数列表:'+str(sys.argv))
复制代码


带启动器的运行脚本命令



已经准备好启动器脚本和我们的 .air 脚本之后,就可以在命令行使用如下命令,使用我们定义好的启动器来运行我们的  air 脚本啦:


python launcher.py test.air --device Android:///serial_num --log log_path --retry 3
复制代码


网络异常,图片无法展示
|


小结



当然,除了添加自定义的命令行参数以外,Airtest启动器的妙用还非常多,比如添加自定义的变量或者方法,添加一些前置脚本或者后置脚本等等。

相关文章
|
7月前
|
算法 Shell 开发者
【Conan 入门教程 】Conan 2.1中的打印方式/输出管理
【Conan 入门教程 】Conan 2.1中的打印方式/输出管理
87 1
|
7月前
vscode点击通过import引入方法名或模块名跳转其定义的文件
window点击ctrl(MAC点击command)+通过import引入的文件、方法等到,跳转到其定义的页面
532 0
|
5月前
|
Java API 编译器
Java编译器注解运行和自动生成代码问题之编译时通过参数设置选项值问题如何解决
Java编译器注解运行和自动生成代码问题之编译时通过参数设置选项值问题如何解决
|
5月前
|
Python
`cmd`模块是Python标准库中的一个模块,它提供了一个简单的框架来创建命令行解释器。
`cmd`模块是Python标准库中的一个模块,它提供了一个简单的框架来创建命令行解释器。
|
IDE 开发工具
Airtest启动器的妙用--添加自定义的变量
Airtest启动器的妙用--添加自定义的变量
270 0
|
前端开发 JavaScript IDE
【Java基础知识3】Java注释:单行、多行、文档注释(如何通过 javadoc 命令生成代码文档、如何在IEDA配置自动为所有的类都添加创建者和创建日期)
【Java基础知识3】Java注释:单行、多行、文档注释(如何通过 javadoc 命令生成代码文档、如何在IEDA配置自动为所有的类都添加创建者和创建日期)
432 0
【Java基础知识3】Java注释:单行、多行、文档注释(如何通过 javadoc 命令生成代码文档、如何在IEDA配置自动为所有的类都添加创建者和创建日期)
|
存储 IDE Java
命令行下的Java包结构编译与执行
本文介绍命令行下的Java包结构编译与执行方法
153 0
命令行下的Java包结构编译与执行
|
存储 网络协议 测试技术
命令行参数基本使用 | 学习笔记
快速学习命令行参数基本使用
|
XML 数据格式
AndroidStudio 设置自动导包
AndroidStudio 设置自动导包
706 0
AndroidStudio 设置自动导包

热门文章

最新文章