appium原理
appium是一个开源的自动化工具,支持多平台(ios、android原生应用、移动web和混合应用)appium&webdriver其实是一个自动化库(ios 9.3以上的XCUITest和9.3以下的UIAutomation、android 4.3以上的uiautomator和uiautomator2、windows的winappdriver),客户端调用库的内容实现需要自动化操作的内容,发送到服务器端,服务器端解释并发送到设备端。可以使用任意语言编写你的客户端。
1.启动appium。
这里选择手动启动appium,使用默认设置。
如果需要同时启动多台设备测试,可以修改“Advanced”项
2.desired_caps
desired_caps_a = {'platformName': "Android",
'platFormVersion': "9",
'deviceName': "df93a63a", # adb devices 获取
'app': "C:/Users/v_yddchen/Desktop/weixin7010android1580_arm64.apk",
'appPackage': "com.tencent.mm", # (以微信为例)启动应用,adb shell dumpsys window windows|findstr "Current"可以获取当前运行在前台的应用activity
'appActivity': "com.tencent.mm.ui.LauncherUI",
'unicodeKeyboard': True, # 未set_key做准备。
'resetKeyboard': True}
device_a = webdriver.Remote("http://localhost:4723/wd/hub", desired_caps_a) # 端口有变动的话,注意更改。这里初始化的数据也可以使用配置文件,后期再完善这里~
3.一些报错
a.oppo reno启动的时候报错:writing to settings requires:android.permission.WRITE_SECURE_SETTINGS
解决办法:在开发者选项里,把“禁止权限监控”关闭掉(据说小米手机把USB调试安全设置打开即可,允许USB调试修改权限或模拟点击)
b.default/noReset/fullRest
default:测试后停止和清除应用数据,不卸载应用。
noreset:不停止应用和清除数据,不卸载应用
fullreset:session启动前,和结束后,停止应用和清除数据,卸载应用。
c.deviceName和udid
deviceName:iPhone Simulator, iPad Simulator, iPhone Retina 4-inch, Android Emulator, Galaxy S4,github上说在android上这个字段是被忽略的,但是实测如果不填写的话,会报错,deviceName is blank。
deviceName=任意值,不填写udid的话,可以启动连接的真机。
如果指定appPackage和appActivity功能(请参阅下文),则Android不需要此功能。 UiAutomator2和XCUITest允许在没有app或appPackage的情况下启动会话。与browserName不兼容
看完点赞 ~养成好习惯,以上内容希望对你有帮助,如果对软件测试、接口测试、自动化测试、面试经验交流感兴趣可以加入我们。642830685,免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。