在Ubuntu 18.04 上 配置自动化测试工具,进行简单、重复的点击或滑动等操作,在此做一下笔记。
一、安装JDK
sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer
sudo apt-get install openjdk-8-jdk
================================================================================
二、安装Android SDK
【已经安装Android studio 可以跳过】
下载SDK
wget https://dl.google.com/android/android-sdk_r24.2-linux.tgz
tar -xvzf android-sdk_r24.2-linux.tgz
sudo mv android-sdk-linux /usr/opt/android-sdk
===============================
配置环境变量 【配置环境变量可以自己写到一个文件里面】
sudo vim /etc/profile
export ANDROID_HOME=/usr/opt/android-sdk
export PATH=${ANDROID_HOME}/:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools:$PATH
source /etc/profile
===============================
三、安装Node.js
https://nodejs.org/en/about/previous-releases 【通过这个下更快,还方便看对应的npm版本】
命令下载Node.js并解压
sudo wget https://nodejs.org/dist/node-v16.15.1/node-v16.15.1-linux-x64.tar.xz
tar -xvf node-v16.15.1-linux-x64.tar.xz
移动到 /opt 目录下(纯属于个人习惯), 并链接到/usr/local/bin/目录下
sudo mv node-v16.15.1-linux-x64 /opt
sudo ln -s /opt/node-v16.15.1-linux-x64 /usr/local/bin/node-v16.15.1
最终检查Node.js 是否安装成功:
node -v
npm -v
配置环境变量
export NODE_HOME=/usr/local/bin/node-v16.15.1
export PATH=$NODE_HOME/bin:$PATH
export NODE_PATH=$NODE_HOME/lib/node_modules
================================================================================
四、安装Appium
[https://github.com/appium]
[https://github.com/appium/python-client] 【先浏览一下这个东西,别冲动。注意版本哦】
1、下载appium-inspector 【辅助工具作用不大,可以多下载几个看哪个更合适】
https://github.com/appium/appium-inspector/releases
Appium-Inspector-linux-2022.1.2.AppImage 【chmod +777 】
2、下载Appium-Server-GUI-linux-xxx-AppImage 【appium图形工具,启动appium】
https://github.com/appium/appium-desktop/releases
Appium-linux-1.19.1.AppImage 【chmod +777 】
Appium-Server-GUI-linux-1.22.0.AppImage
3、下载appium 【它就是测试用的工具】 【 Appium-Python-Client-1.1.0 我现在用这个但不是很好用】
[https://pypi.org/project/Appium-Python-Client/2.10.2/#files]
tar -xvf Appium-Python-Client-X.X.tar.gz
cd Appium-Python-Client-X.X
python3 setup.py install 【这里可能会有网络问题,可以多次执行此命令,没问题的。】
【这个地方python3 和Python是不同的,只能用一个】
【appium 验证方式】
python3
from appium import webdriver
Compatibility Matrix
Appium Python Client Selenium binding Python version
3.0.0+ 4.12.0+ 3.8+
2.10.0 - 2.11.1 4.1.0 - 4.11.2 3.7+
2.2.0 - 2.9.0 4.1.0 - 4.9.0 3.7+
2.0.0 - 2.1.4 4.0.0 3.7+
1.0.0 - 1.1.0 3.x 3.7, 3.8
0.52 and below 3.x 2.7, 3.4 - 3.7
4、如果selenium 不合适,可以单独删除并下载单独的安装包
https://pypi.org/project/selenium/#history 【安装包 selenium】
=======================================================
touch install.py 【这里是卸载和安装selenium,appium 也可以卸载】
import pip
#pip.main(['uninstall', 'Appium-Python-Client']) 【这个是测试删除Appium-Python-Client】
#pip.main(['uninstall', 'selenium'])
#pip.main(['install','selenium-4.6.1-py3-none-any.whl']) 【安装对应的selenium版本】
=======================================================
5、安装appium-doctor检查下Appium的环境是否配置ok:
npm install -g appium-doctor
终端输入:
appium-doctor
================================================================================
五、配置环境变量
cd /etc/profile.d/
sudo vim my_install.sh
#jdk
#
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#Android sdk
#
export ANDROID_HOME=/home/mozun/Android/Sdk
export PATH=${ANDROID_HOME}/:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools:$PATH
#node
#
export NODE_HOME=/usr/local/bin/node-v16.15.1
export PATH=$NODE_HOME/bin:$PATH
export NODE_PATH=$NODE_HOME/lib/node_modules
================================================================================
检查
appium-doctor
================================================================================
使用方式
前期工作:可以看看 Appium-Inspector 这个辅助工具怎么用的。
一、运行 appium
1、./Appium-Inspector-linux-2022.1.2.AppImage
2、./Appium-linux-1.19.1.AppImage 或 ./Appium-Server-GUI-linux-1.22.0.AppImage
二、运行你的python代码 【我的测试】
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from selenium.webdriver.common.by import By
import time
from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
import os,re
desired_caps={}
desired_caps['platformName']='Android'
desired_caps['platformVersion']='7.0'
desired_caps['deviceName']='0123456789ABCDEF'
desired_caps['appPackage']='com.android.circur'
desired_caps['appActivity']='.EmulatorGameListActivity'
desired_caps['automationName']='UiAutomator1'
desired_caps['noReset']='true'
desired_caps['newCommandTimeout']='6000'
#desired_caps['unicodeKeyboard']='True'
driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
driver.press_keycode(3) #home
time.sleep(10)
for i in range (1,750): #420,840,1440
action = TouchAction(driver)
action.tap(x=300, y=170).perform() # 点击第一个游戏
time.sleep(20) # 等待游戏打开/筛选出显示游戏无法打开的游戏/
driver.press_keycode(4) #back
time.sleep(2)
action.tap(x=650, y=270).perform() # 点击退出游戏
time.sleep(3) # 等待退出游戏
TouchAction(driver).press(x=300, y=220).wait(1000).move_to(x=300, y=160).release().perform() # 向上滑动游戏
time.sleep(2)
driver.quit()
================================================================================
/wd/hub 【这个是端口,一定要填写】
"deviceName": "0123456789ABCDEF",
"platformName": "Android",
"platformVersion": "4.4.2", # 4.4.2
"appPackage": "*.sportinspect", # 改成你测试APP的包名。
"appActivity": "*.sportinspect.SplashScreenActivity", # 改成你测试APP的活动。
"newCommandTimeout": 0, # 设置超时时间, 默认为60s,设置为0关闭。超时时间到后,软件将退出
"unicodeKeyboard": True, # unicode编码输入 解决send_keys无法输入中文
"resetKeyboard": True, # 隐藏软键盘 解决send_keys无法输入中文
"automationName": "UiAutomator1", # 安卓版本大于5这里改为"UiAutomator2"
"noReset": True # 设置不清除软件缓存,不写或者False则清除App缓存
版权归原作者 weixin_46092030 所有, 如有侵权,请联系我们删除。