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

news2024/11/23 23:34:58

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.coloradmin.cn/o/708614.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何在前端写播放音频

ml(html文档、wxml文档等) <audio action{{action}} src"http://music.163.com/song/media/outer/url?id2059780541.mp3"></audio> js文档 action:{"method":"play"}

6.19、一起学JAVA API Object String StringBuffer/StringBuilder

1 前言 亲爱的小伙伴萌,目前我们看到的是Java基础部分的一个新的部分API,这是个啥,又能做啥呢? 其实可以概括成一句话:帮助我们站在巨人的肩膀上,实现更加高效的开发,那么我们来一探究竟吧~ 2 什么是API API&#xff08;Application Programming Interface&#xff0c;应用…

软考A计划-系统集成项目管理工程师-项目概念-上

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…

《操作系统》by李治军 | 实验9 - proc文件系统的实现

目录 一、实验目的 二、实验内容 三、实验准备 1. procfs 简介 2. 基本思路 四、实验过程 1. 增加新的文件类型 2. 让 mknod() 支持新的文件类型 &#xff08;1&#xff09;修改 mknod 系统调用 &#xff08;2&#xff09;初始化 procfs 3. 让 proc 文件可读 &…

H5学习(三)-- CSS层叠样式表

文章目录 一、简介二、CSS的书写样式1. 行内样式&#xff08;内联样式&#xff09;2. 页内样式3. 外部样式 三、常见的选择器1. 标签选择器2. 类选择器3. id选择器4. 并列选择器5. 复合选择器6. 伪类选择器 一、简介 CSS&#xff08;cascading style sheet&#xff09;是层叠样…

springboot+echarts +mysql制作数据可视化大屏(六图)

作者水平低&#xff0c;如有错误&#xff0c;恳请指正&#xff01;谢谢&#xff01;&#xff01;&#xff01;&#xff01;&#xff01; 项目简单&#xff0c;适合大学生参考 分类专栏还有其它的可视化博客哦&#xff01; 专栏地址&#xff1a;https://blog.csdn.net/qq_559…

数据结构--队列的链表实现

数据结构–队列的链表实现 队列的链表实现代码定义 typedef struct LinkNode {ElemType data;struct LinkNode* next; }LinkNode;typedef struct {LinkNode *front, *rear; }LinkQueue;带头结点 初始化 void InitQueue(LinkQueue &Q) {Q.front Q.rear (LinkNode*)malloc…

python进行windows系统UI自动化之【pyautoit】

python进行windows系统UI自动化之【pyautoit】 一、AutoIT中文手册1.1、安装AutoIt1.2、使用Auto Window Info 二、python引用2.1、安装2.2、引用2.3、使用2.3.1、窗口操作2.3.2、控件操作2.3.3、进程操作2.3.4、鼠标操作2.3.5、键盘操作2.3.5.1、Send 是非常有用的一个函数/命…

Segment Any Medical-Model (SAMM)在3D slicer上部署

参考&#xff1a; GitHub - bingogome/samm: A 3D Slicer integration to Metas SAM. https://www.cnblogs.com/odesey/p/17322413.html 一、下载代码仓库和权重文件 https://github.com/facebookresearch/segment-anything.git https://github.com/bingogome/samm.git htt…

举例说明Chatgpt模型训练的过程

Chatbot GPT模型训练过程详解 在人工智能领域&#xff0c;聊天机器人是一种模拟人类对话行为的计算机程序。近年来&#xff0c;随着深度学习和自然语言处理技术的飞速发展&#xff0c;聊天机器人越来越流行。本文将详细阐述GPT&#xff08;Generative Pre-trained Transformer&…

软考A计划-系统集成项目管理工程师-项目整体管理-上

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列 &#x1f449;关于作者 专注于Android/Unity和各种游戏开发技巧&#xff…

chatgpt赋能python:如何将Python改成中文

如何将Python改成中文 Python是一种广泛使用的编程语言&#xff0c;但默认情况下是英文界面。对于非英语母语国家的程序员来说&#xff0c;使用Python的过程中可能会遇到许多不方便之处&#xff0c;因此将Python改成中文是很有必要的。本文将介绍如何将Python改成中文&#xf…

Loadrunner进行http接口压力测试

使用Loadrunner进行http接口压力测试 业务描述&#xff1a; 在业务系统里进行查询操作&#xff0c;查询的结果是通过请求http接口,从系统中处理并将结果以json字符串返回。 使用Loadrunner对此类接口进行压力测试并记录相关的性能指标数据: 一.安装Loadrunner 本次测试过程…

excel数据的编排与整理——表格结构的整理(三)

excel数据的编排与整理——表格结构的整理(三) 1 提取不重复的数据 1.1 题目内容 1.2 在D2单元格输入公式并回车 1.3 填充数据到末尾 1.4 填充后的效果 1.5 点击筛选 1.6 筛选出D列为1的数据 1.7 筛选后的效果 1.8 把A列显示数据复制到C列(复制出来可能只显示第一个) 1.9 再次…

Angular实现一个简单的带tabs选项卡切换的首页导航功能

Angular版本&#xff1a;16.1.1 项目结构&#xff1a; angular.json配置&#xff1a; {"$schema": "./node_modules/angular/cli/lib/config/schema.json","version": 1,"newProjectRoot": "projects","projects"…

自定义双亲委派-JVM(三)

上篇文章说了java类加载源码&#xff0c;双亲委派的加载。 JVM类加载&双亲委派-JVM&#xff08;二&#xff09; 自定义类加载器 全盘负责委托机制 “全盘委托”指当一个classLoader装载一个类时&#xff0c;除非显示的使用另外一个classLoader加载&#xff0c;否则该类…

如何使用命令提示符重新启动Windows 资源管理器?

电脑资源管理器出现问题&#xff0c;导致电脑黑屏&#xff0c;如何使用命令提示符重新启动Windows 资源管理器呢&#xff1f;出现这个问题的时候&#xff0c;不要慌&#xff0c;按照下面的操作步骤&#xff0c;大概率是可以复原的&#xff0c;当然你觉得这样比较麻烦&#xff0…

C语言offsetof宏的使用与模拟实现

⭐️ 往期文章 ✨链接1&#xff1a;C语言文件打开关闭详解、文件顺序读写详解。 ✨链接2&#xff1a;C语言文件随机读写详解(fseek、ftell、rewind)。 ✨链接3&#xff1a;C语言scanf/fscanf/sscnaf和printf/fprintf/sprintf的区别。 ✨链接4&#xff1a;C语言打开文件一次既可…

论文不详细解读(二)——SimCLR系列

1. SimCLR v1 论文名称&#xff1a; A Simple Framework for Contrastive Learning of Visual Representations 开源地址&#xff1a;https://github.com/google-research/simclr 大佬论文解读&#xff1a;https://zhuanlan.zhihu.com/p/378953015 highlight&#xff1a;更多…

机器学习10:正则化-Regularization

目录 1.什么是正则化&#xff1f; 2.简化正则化&#xff1a;Lambda 3.两个练习 3.1 问题一 3.2 问题二 4.参考文献 1.什么是正则化&#xff1f; 考虑以下泛化曲线&#xff0c;它显示了训练集和验证集相对于训练迭代次数的损失。 图 1. 训练集和验证集的损失 图 1 显示了…