Airtest:Windows桌面应用自动化测试四【Airtest之python本地环境安装、独立IDE运行】

Airtest之python本地环境安装、独立IDE运行

  • 一、环境配置
  • 二、安装Airtest
  • 三、安装poco
  • 四、常见问题
    • 4.1若运行代码时,在cv2模块报ImportError: DLL load failed: 找不到指定模块的错,有几种解决方案:
      • 4.1.1.本问题的根本原因应该是DLL文件的缺失,我们将它们放入了IDE的目录中,可以直接下载一个最新版本的AirtestIDE,在解压后的目录中找到api-ms-win-downlevel-shlwapi-l1-1-0.dll和IEShims.dll两个DLL文件,将他们复制到C:\Windows\System32目录,重新运行代码即可解决
      • 4.1.2.如果使用了python3.7,请安装 Visual C++ redistributable 2015
      • 4.1.3.如果使用的python版本低于3.7,请直接运行:
    • 4.2、若在win.py中import win32api时报DLL load failed,可以尝试重新安装pywin32模块:
    • 4.3、python3.9如果安装完毕还不能使用airtest,报错ImportError: numpy.core.multiarray failed to import,可以手工将 numpy 版本号降级至1.19.3就能使用了。
    • 五、使用本地python环境运行
  • 六、设置本地Python环境为AirtestIDE运行环境
    • 1.首先找到你的python路径:
    • 2.之后在airtestIDE里设置python路径即可,以后你在airtestIDE里运行,用的就都是本地python环境了,如果出现了什么问题,把本地python路径在设置中清除即可。

一、环境配置

airtest框架支持python2、python3支持到3.9
airtestIDE自带的python3.5
官方推荐使用python3
我个人推荐python3.8,3.9太新可能有兼容问题,3.8就可以用到python3的很多新特性了。

之前都是一直在airtestIDE里运行脚本,如果想脱离IDE运行(比如持续集成),就需要安装Python环境了。
我个人强烈推荐使用Python虚拟环境,比如conda,可以建立多个Python环境,互不干扰还能快速切换。
点击《Miniconda安装教程,并使用PyCharm创建相关项目》了解conda
之前也说过,airtest project包含两个python框架:airtest和poco,安装也和其他python第三方包一样。

二、安装Airtest

pip install airtest# 如果你下载比较慢,可以试试国内的源
pip install airtest -i https://pypi.tuna.tsinghua.edu.cn/simple# 在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
找不到路径没关系,你就运行你的脚本,第一次报错了,错误日志里也能找到路径。

三、安装poco

pip install pocoui
注意包名是pocoui,不是poco!!!

四、常见问题

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

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

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

https://www.microsoft.com/en-us/download/details.aspx?id=48145

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

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

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

pip uninstall pywin32
pip install pywin32==223

4.3、python3.9如果安装完毕还不能使用airtest,报错ImportError: numpy.core.multiarray failed to import,可以手工将 numpy 版本号降级至1.19.3就能使用了。

pip install -U numpy==1.19.3

五、使用本地python环境运行

本地python环境搭建完成后,让我们运行一下看看。现在还不懂运行命令没关系,先在IDE运行一下你的脚本,在日志区最上会将运行命令打印出来,直接复制这个命令去命令行运行即可
在这里插入图片描述
在有些命令行工具中,可能识别有问题,需要把每个参数后面跟的参数用双引号括起来。
另外IDE里显示的命令是用的IDE里的文件,用我们本地python环境运行的话可以用命令airtest run
所以如图的命令最终就是:

airtest run "/Users/szh/my_test/untitled.air"  --device "android://127.0.0.1:5037/1830e25?cap_method=JAVACAP&&ori_method=MINICAPORI&&touch_method=MINITOUCH" --log "/your_logfile/"

六、设置本地Python环境为AirtestIDE运行环境

什么情况下在IDE里使用本地环境?

你使用了airtestIDE没有的第3方包

你想用的python、airtest、poco版本与airtestIDE里的版本不一样

1.首先找到你的python路径:

Windows:
去环境变量Path里查看

Mac:
which python

使用的Conda:
conda info -e
在这里插入图片描述
会显示python目录,该目录下的bin文件夹里的python或python3就是了

2.之后在airtestIDE里设置python路径即可,以后你在airtestIDE里运行,用的就都是本地python环境了,如果出现了什么问题,把本地python路径在设置中清除即可。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/8831.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Elasticsearch:install

ElasticSearch Elasticsearch 是一个分布式、高扩展、高实时的搜索与数据分析引擎。 Elasticsearch结合Kibana、Logstash、Beats,也就是elastic stack(ELK)。被广泛应用在日志分析、实时监控(CPU、Memory、Program)等领域。 elasticsearch是…

2023年SCI影响因子(JCR2022)正式公布

2023年6月28日,Clarivate Analytics(科睿唯安)发布最新的《期刊引证报告》(Journal Citation Reports,简称JCR),刷新SCI期刊2022年影响因子(IF)。该指数也备受访问学者、联培博士及博士后研究者…

【Git】中文显示数字的问题的解决方案

目录 问题截图解决方案 问题截图 运行git status命令,会出现图片中不正常显示中文的问题 解决方案 设置终端: 右键窗口头部 -> Options...执行命令: git config --global core.quotepath false

让chatGPT使用Tensor flow Keras组装Bert,GPT,Transformer

让chatGPT使用Tensor flow Keras组装Bert,GPT,Transformer implement Transformer Model by Tensor flow Kerasimplement Bert model by Tensor flow Kerasimplement GPT model by Tensor flow Keras 本文主要展示Transfomer, Bert, GPT的神经网络结构之间的关系和差异。网络上…

【软件测试】盘一盘工作中遇到的 Redis 异常测试

目录 前言: 一、更新 Key 异常 二、Key的删除和丢失 三、KEY 过期策略不当造成内存泄漏 四、查询Redis异常时处理 五、redis 穿透、击穿、雪崩 六、Redis死锁 七、Redis持久化 八、缓存与数据库双写时的数据一致性 前言: 在软件测试过程中&…

国产操作系统介绍和安装

国产操作系统 分类 操作系统分类国产操作系统银河麒麟中科方德统信UOS红旗Linux深度系统优麒麟系统 具体介绍 麒麟操作系统 麒麟操作系统(Kylin操作系统,简称麒麟OS),是一种国产操作系统,由国防科技大学研发&#x…

用pytorch进行BERT文本分类

BERT 是一个强大的语言模型,至少有两个原因: 它使用从 BooksCorpus (有 8 亿字)和 Wikipedia(有 25 亿字)中提取的未标记数据进行预训练。顾名思义,它是通过利用编码器堆栈的双向特性进行预训练…

Vulkan Tutorial 10 重采样

目录 30 多重采样 获得可用的样本数 设置一个渲染目标 添加新的附件 30 多重采样 我们的程序现在可以为纹理加载多层次的细节,这修复了在渲染离观众较远的物体时出现的假象。现在的图像平滑了许多,然而仔细观察,你会发现在绘制的几何图形…

【C++】复杂的菱形继承 及 菱形虚拟继承的底层原理

文章目录 1. 单继承2. 多继承3. 菱形继承3.1 菱形继承的问题——数据冗余和二义性3.2 解决方法——虚拟继承3.3 虚拟继承的原理 4. 继承和组合5. 继承的反思和总结 1. 单继承 在上一篇文章中,我们给大家演示的其实都是单继承。 单继承的概念: 单继承&a…

Flutter如何获取屏幕的分辨率和实际画布的分辨率

Flutter如何获取分辨率 在Flutter中,你可以使用MediaQuery来获取屏幕的分辨率和实际画布的分辨率。 要获取屏幕的分辨率,你可以使用MediaQuery.of(context).size属性,它返回一个Size对象,其中包含屏幕的宽度和高度。下面是一个获…

POSTGRESQL SQL 执行用 IN 还是 EXISTS 还是 ANY

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到3群(共…

SQL频率低但笔试会遇到: 触发器、索引、外键约束

一. 前言 在SQL面笔试中,对于表的连接方式,过滤条件,窗口函数等肯定是考察的重中之重,但是有一些偶尔会出现,频率比较低但是至少几乎会遇见一两次的题目,就比如触发器,索引和外键约束&#xff0…