搭建linux下面的appium环境
刚换一份工作的时候,需要用到python语言,所以这时候python最好干什么来实践一下,又不是很难,所以想到了游戏任务脚本,为了模拟按键、滑动这些基本的操作就想到了使用appium模块和环境来实现这个功能。下面就是部署环境的过程,查了一下解决方法,记录一下自己的问题过程。
1、涉及使用到的工具、Python、AS、然后就是这个appium安装中用到的node-js、npm、还安装了cnpm,后来未使用到。
2、使用到这个模块主要是为了调用对应的driver模块代码,实现连接对应的设备,来实现对设备的操作。
2.1 第一个就是部署server环境。下面这个就是部署的原因,使用webdriver.Remote首先要有对应的服务端,就是http://127.0.0.1:4723/wd/hub
desc = {} desc['deviceName'] = 'a391caaf' #desc['deviceName'] = 'MQS0219701005445' desc['platformVersion'] = '12' desc['platformName'] = 'Android' #desc['appPackage'] = 'com.huawei.android.launcher' #desc['appActivity'] = 'com.huawei.android.launcher/.unihome.UniHomeLauncher' desc['appPackage'] = 'com.zte.mifavor.launcher' desc['appActivity'] = 'com.android.launcher3.uioverrides.QuickstepLauncher' self.driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desc)
2.2 安装node-js ,版本一般看后面的安装中,版本要大于10版本
sudo apt-get install node.js
对应版本可能无法使用,后面npm介绍升级方式
2.3 安装npm。版本一般要大于3版本
sudo apt-get install npm
sudo npm install -g -n 安装node的版本管理工具,用来更细node的版本
sudo n table/v 7.0.0/latest 安装稳定/7.0.0版本/最新版本
2.4 安装cnpm,有时候原始镜像路径下载比较慢,所以需要使用国内淘宝镜像,所以安装cnpm。但是我没使用到
sudo npm install -g cnpm
2.5 安装appium
sudo npm install -g appium
2.6 npm卸载
sudo npm uninstall appium -g / cnpm -g
3、安装中一个是权限问题,一个是版本问题,看错误信息就可以分析出来,这里不在列举
4、启动界面和网络访问表示正确部署环境
终端下运行appium,正常出现下面的版本信息
[Appium] Welcome to Appium v1.22.2
[Appium] Appium REST http interface listener started on 0.0.0.0:4723
或者网页访问出现下面的json信息。网址就是上面的http://127.0.0.1:4723/wd/hub
{"status":9,"value":{"error":"unknown command","message":"The requested resource could not be found, or a request was received using an HTTP method that is not supported by the mapped resource","stacktrace":""}}
5、启动之前的环境配置
export ANDROID_HOME=/home/liulei/Android/Sdk export PATH=$PATH:$ANDROID_HOME/tools export PATH=$PATH:$ANDROID_HOME/tools/bin export PATH=$PATH:$ANDROID_HOME/platform-tools
vi ~/.zshrc source ~/.zshrc之后,要记得重启appium服务才能生效
6、adb的问题,这样配置之后,调用连接机器的时候要对应设备的系统、系统版本、设备ID,应用界面等信息,使用的adb是platform-tools下面的adb,可能会出现问题,我这边处理方式是将系统的adb软连接到tools目录下面,这样就可以使用了。另一种
是配置一下系统adb的,这个暂没尝试
7、之后就是Python部分要下载对应的包进行程序开发,第一份辅助脚本就可以开发了。使用额外的对应的包名是opencv-python 、Appium-Python-Client和selenium模块
def getSize(self): x = self.driver.get_window_size()['width'] y = self.driver.get_window_size()['height'] return (x,y) def swipup(self,t): print("UPUP") screensize = self.getSize() x1 = int(screensize[0]*0.5) y1 = int(screensize[1]*0.75) y2 = int(screensize[1]*0.25) self.driver.swipe(x1,y1,x1,y2,t) def swipdown(self,t): print("DOWNDOWN") screensize = self.getSize() x1 = int(screensize[0]*0.5) y1 = int(screensize[1]*0.25) y2 = int(screensize[1]*0.75) self.driver.swipe(x1,y1,x1,y2,t) def swipleft(self,t): print("LEFTLEFT") screensize = self.getSize() x1 = int(screensize[0]*0.75) y1 = int(screensize[1]*0.5) x2 = int(screensize[1]*0.25) self.driver.swipe(x1,y1,x2,y1,t) def swipright(self,t): print("RIGHTRIGHT") screensize = self.getSize() x1 = int(screensize[0]*0.25) y1 = int(screensize[1]*0.5) x2 = int(screensize[1]*0.75) self.driver.swipe(x1,y1,x2,y1,t)
8、appium比传统的坐标方式更好了,不受分辨率的限制了,也有很多对应的集成函数来使用,更加方便手机模拟的功能
具体可以查看API文档https://www.kancloud.cn/testerhome/appium_docs_cn/2001600

浙公网安备 33010602011771号