节前最后一天上班,办公室里已经空了一半还多,没什么具体的工作要做,就想把前些阵用做 UI 测试遇到的一些问题与解决方案总结一下,以 android 平台为主,在这里与大家分享。
在测试过程中,我们经常遇到手机不能识别的情况 (USB 调试都已经打开,adb server 都工作正常的情况下),特别是在 Linux/MAC
MAC: system_profiler SPUSBDataType 查看 USB 设备
在自己根目录下 编辑 .android/adb_usb.ini 文件,如果找不到这个文件,就新建一个,然后把上面的 ID 号加进去。
执行下面的命令
我们有时需要与第三方应用交互在 UI 测试过程中,这时需要知道包名与 Activity, 我们可以通过 logcat 获取,但有时第三方应的包名与 activity 名还真是怪异,我们不能完全确定,这时我们可以用 aapt, 它是在 Android-SDK 中 build-tool 目录下
在 Appium capabilities 里面有两个参数,我们只需设置它们为 TRUE, 但这两个参数只对 ANDROID 平台生效。
webelement.send_keys(u"中国“)
get_screenshot_as_file(filename)
get_screenshot_as_png(filename)
get_screenshot_as_base64(filename)
adb shell screencap -p /sdcard/screen.png
有时我们需要截某个控件的图,以下是 python 代码,我们先要得到全屏,然后再得到所要截取元素的坐标与高宽,确定截取范围.
代码如下(python)
现在大多数应用都是 Hybird 应用,需要在 Native 与 Webview 之间切换
通过第一条命令获得所有 contexts, 通过第二条命令转换
driver.contexts
driver.switch_to.context(name)