用命令行运行脚本并生成报告

简介: 用命令行运行脚本并生成报告

前言



本文将详细介绍如何使用命令行运行脚本、生成报告以及读取报告中的静态资源文件和图片文件


要用命令行来完成以上的任务,我们就需要用到本地的python环境。所以我们必须保证本地的python环境安装了airtest,否则在执行以上任务时,就会出现 airtest distribution was not found 的错误:



我们可以使用pip list命令来查看当前环境是否安装了airtest



如果当前环境没有安装airtest,就使用 pip install airtest 命令,然后等待安装完成即可。


使用命令行运行脚本



脚本的运行过程,与报告的生成过程是独立的两个步骤,所以我们可以先用airtest run + 脚本文件路径 指令来运行脚本,该命令的可传参数如下:


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


下面分别介绍下这几个参数的使用方法:


--device


在脚本运行的时候,我们必须连接上一个被测设备。如果在我们脚本的airtest语句之前,没有对设备进行初始化,比如没有运行一个connect_device的语句之类的,在使用airtest run 指令来运行脚本时,就必须传入--device参数,否则命令行会报如下错误:



传入--device参数即可解决上述问题:


# 用airtest运行了report_test.air这个脚本
# airtest run 后面接的是脚本文件的路径
# device参数后面可跟Android、iOS和Windows设备
airtest run  D:/test/report_test.air --device Android:///
复制代码


--log


如果 airtest run 指令没有传入参数--log,那使用命令行运行脚本时,将不保存log内容和截图,并且命令行会提示do not save log



如果传入的参数为--log log/, 将把生成的log内容放到当前命令行执行目录下的log目录里面:



如果在--log 参数里传入了指定目录,log内容与截图将会放在指定目录里,如图:



--recording


需要在脚本运行时进行录屏操作,则在使用airtest run命令时传入--recording参数即可,录制的视频文件会以MP4格式保存在log内容所在的目录里面。


airtest run D:/test/report_test.air --device Android:/// --log log/ --recording
复制代码


使用命令行生成报告



在命令行中,使用airtest run指令运行脚本以后,我们就可以使用airtest report + 脚本文件路径指令来生成一份HTML格式的报告。


该命令也有非常多的可传参数,例如:


  • --log_root,指定log内容和截图文件所在的目录
  • --outfile,指定生成报告的目录
  • --lang,指定报告语言,可以是中文/英文
  • --export,导出一个包含所有资源的报告文件
  • --static_root,指定静态资源文件的路径


需要注意的是,使用 airtest report 指令但没有传入任何参数时,程序会默认去脚本文件所在目录下寻找log/log.txt,然后用找到的内容来生成HTML格式的报告,该报告存放于当前命令行的执行目录下。如果脚本目录里面不存在log/log.txt,命令行则会报错:



所以不传入任何参数来使用airtest report 指令时,需要保证运行时产生的log内容的文件夹必须与脚本文件在同一文件夹内:



--log_root


一些情况下,我们运行脚本时并没有把log内容和截图文件存放在与脚本文件相同的目录下,这时可以用--log_root参数来指定log内容和截图文件所在的目录。假如log内容保存在当前执行目录下的log文件夹里,我们就可以这样指定:


C:\Users\xiaoming>airtest report D:/test/report_test.air --log_root C:/Users/xiaoming/log
log.html
# 命令行显示的log.html表示在当前执行目录下生成了报告log.html
复制代码


--outfile


当我们不想报告保存到当前执行目录下时,我们就可以用--outfile参数来指定报告生成的目录:


airtest report D:/test/report_test.air --log_root C:/Users/wb.yuxiaojuan/log --outfile E:/log_test/log.html
复制代码



--lang


  • 指定报告语言为中文:--lang zh
  • 指定报告语言为英文:--lang en


注意:如果不指定报告的语言,默认的报告语言为英文。


读取报告中静态资源文件和图片文件



-- export


不传入-- export参数的情况下使用 airtest report 指令,在生成的报告中使用了绝对路径来访问里面的图片文件;同时HTML报告中访问的静态css与js资源文件,也是硬盘上的绝对路径(默认在airtest的安装目录下的report文件夹里)。



因此,直接把HTML格式的报告发送给别人观看,别人是没办法正常观看的。这时我们可以传入 airtest report指令的--export参数,将报告导出到一个指定目录中,然后将整个目录发送给别人观看(该目录会包含报告的静态资源文件和图片文件)。


# 使用了export参数,outfile参数会失效,所以使用了export参数就不要使用outfile
airtest report D:/test/report_test.air --log_root C:/Users/wb.yuxiaojuan/log --lang zh --export E:/log_test/
复制代码



导出报告的页面中会使用相对路径访问图片和资源文件:



因此,如果要将报告部署到服务器上供其他人查看,同样需要使用 --export 参数来导出报告,这样可以使图片路径为相对路径


--static_root


每次导出报告时,目录下都会有一份静态资源文件static,它包含了报告中的css和js等文件。一般来说,除非报告的样式做了某些更新,否则这些静态资源文件都是固定不变的。


所以我们可以将这些资源文件部署到静态资源文件服务器上,用例如  https://host:port/static/css/ 的路径来访问它。然后在生成报告时,将这个部署出来的服务器地址作为 --static_root的参数传过去:


airtest report D:/test/report_test.air --log_root C:/Users/xiaoming/log --lang zh --static_root https://host:port  --export E:/log_test/
复制代码



这样报告中会默认去访问--static_root参数传入的服务器地址上,读取静态资源文件,避免导出报告时重复拷贝这些资源文件造成的磁盘空间占用。


相关文章
|
4月前
|
JavaScript 前端开发 UED
Vue 表情包输入组件的实现代码:支持自定义表情库、快捷键发送和输入框联动的聊天表情解决方案
本文详细介绍了在 Vue 项目中实现一个功能完善、交互友好的表情包输入组件的方法,并提供了具体的应用实例。组件设计包含表情分类展示、响应式布局、与输入框的交互及样式定制等功能。通过核心技术实现,如将表情插入输入框光标位置和点击外部关闭选择器,确保用户体验流畅。同时探讨了性能优化策略,如懒加载和虚拟滚动,以及扩展性方案,如自定义主题和国际化支持。最终,展示了如何在聊天界面中集成该组件,为用户提供丰富的表情输入体验。
328 8
|
监控 Linux
jmeter-性能监控CPU、内存、IO等-监控插件详解(1)
jmeter-性能监控CPU、内存、IO等-监控插件详解(1)
jmeter-性能监控CPU、内存、IO等-监控插件详解(1)
|
监控 网络协议 Java
Jmeter系列(35)- 使用 ServerAgent 监控服务器
Jmeter系列(35)- 使用 ServerAgent 监控服务器
940 0
Jmeter系列(35)- 使用 ServerAgent 监控服务器
|
安全 Java API
基于Spring Boot的企业级应用架构设计
基于Spring Boot的企业级应用架构设计
|
算法 5G 数据安全/隐私保护
SCM信道模型和SCME信道模型的matlab特性仿真,对比空间相关性,时间相关性,频率相关性
该简介展示了使用MATLAB 2022a进行无线通信信道仿真的结果,仿真表明信道的时间、频率和空间相关性随间隔增加而减弱,并且宏小区与微小区间的相关性相似。文中介绍了SCM和SCME模型,分别用于WCDMA和LTE/5G系统仿真,重点在于其空间、时间和频率相关性的建模。SCME模型在SCM的基础上进行了扩展,提供了更精细的参数化,增强了模型的真实性和复杂度。最后附上了MATLAB核心程序,用于计算不同天线间距下的空间互相关性。
298 0
|
安全 关系型数据库 MySQL
【MySQL】Orchestrator最简单的 mysql 高可用方案最细细细细~
【MySQL】Orchestrator最简单的 mysql 高可用方案最细细细细~
|
PyTorch 算法框架/工具
在conda中如何查看安装的pytorch版本 - 蓝易云
这个命令会列出所有与pytorch相关的包,包括它们的版本号。你可以在列表中找到pytorch的版本号。
1410 1
|
人工智能 Java 测试技术
测试人员如何提升自己的测试技能?
测试人员如何提升自己的测试技能?
494 0