谈谈自己如何修改Airtest的源码

前言

相信小伙伴们多少都会遇到想要修改Airtest源码,方便自己脚本编写的情况。这时,部分同学会立即去修改AirtestIDE文件夹下Airtest库的.py文件(如下图),其实这样修改是无效的,并不会达到预期的效果。

在这里插入图片描述
正确的修改Airtest源码的步骤是:

在本地安装python环境

安装Airtest

安装Poco

在本地的Airtest库中修改源码

在本地安装python环境
Airtest支持Python版本为2.7或者<=3.6,但是我们更推荐使用Python3。如果你愿意的话我们也同样建议使用virtualenv等虚拟环境新建一个干净的python环境。各个版本的python可以自行到python官网上下载安装。

安装Airtest

使用pip安装Airtest框架pip install airtest

注意:在Mac/Linux系统下,需要手动赋予adb可执行权限,否则可能在执行脚本时遇到Permission denied 的报错:

# mac系统

> cd {
    
    your_python_path}/site-packages/airtest/core/android/static/adb/mac

# linux系统

> cd {
    
    your_python_path}/site-packages/airtest/core/android/static/adb/linux

> chmod +x adb

若运行代码时,在cv2模块报ImportError: DLL load failed: 找不到指定模块 的错误,有以下几种解决方案:

问题的根本原因应该是DLL文件的缺失,我们将它们放入了IDE的目录中,可以直接下载一个最新版本的AirtestIDE,在解压后的目录中找到api-ms-win-downlevel-shlwapi-l1-1-0.dll和IEShims.dll两个DLL文件,将他们复制到C:\Windows\System32目录,重新运行代码即可解决

如果使用了python3.7,请安装Visual C++ redistributable 2015

如果使用的python版本低于3.7,请直接运行:

> pip uninstall opencv-contrib-python

# 若以下安装语句运行失败,可以尝试更新pip到最新版本后重试  > install opencv-contrib-python==3.2.0.7 

若在win.py中import win32api时报DLL load failed,可以尝试重新安装pywin32模块:

pip uninstall pywin32

pip install pywin32==223

安装Poco

使用pip安装poco框架pip install pocoui,请注意库的名称为pocoui,不是poco,请不要填错。

在这里插入图片描述
如果你在命令行中使用pip list,看到同时存在poco和pocoui两个库,请把poco卸载,因为pocoui才是正确的库。

在本地的Airtest库里面修改源码

完成上述三步以后,其实就是在本地部署了一个python环境来使用airtest和poco。然后我们可以修改本地安装的Airtest库里面的源码,使得修改生效。

举个例子,打开你本地安装的Airtest库,找到Airtest>–airtest>–core目录下的api.py文件,在touch方法里加一条代码,如下:

在这里插入图片描述
那么你在命令行运行脚本的时候,如果脚本里面写有touch语句,你在touch方法里面增加的print语句也会生效:

在这里插入图片描述

如果想要你修改的内容在IDE也生效的话,只需要将IDE的运行环境改成本地运行环境即可:

在这里插入图片描述
这时候IDE运行时,使用的Airtest库就不是IDE自带的Airtest库,而是你在本地安装的Airtest库,运行一条touch语句,之前对touch方法的修改也会在IDE里面生效了:

在这里插入图片描述

我是个自动化测试人员,有自己的专业讨论交流群整理过许多自动化测试视频资源,在这个过程中帮到了我很多。如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我们扣扣群【313782132 】,里面有各种软件测试资源和技术讨论。

在这里插入图片描述

确实软件测试是IT相关行业中最容易入门的学科~不需要开发人员烧脑的逻辑思维、不需要运维人员24小时的随时待命,需要的是细心认真的态度和IT相关知识点广度的了解,每个测试人员从入行到成为专业大牛的成长路线可划分为:软件测试、自动化测试、测试开发工程师 3个阶段。

等你来加入我们的软件测试交流群,里面有各种软件测试资料和技术交流。

猜你喜欢

转载自blog.csdn.net/weixin_50271247/article/details/109242490