- APP测试逻辑
在app编写自动化测试用例时,通常会出现只是简单的点点点过程,然而却忽略了在实际的自动化实现过程中,软件是对app元素的判断来执行测试脚本。所以会出现在后期已经写好自动化脚本之后还会对测试用例的更新。
- App在测试时,每个页面的每个元素都需要点击测试其功能性,相同页面具有一致性,测试一次即可,但是相同按钮在不同页面,就需要再测试一次。
- Android怎么获取元素的值?其属性是什么?
答:Android也可以使用.getcondext获取元素的值,且获取的值属性为string类型。
- 如何正确使用可点击的id?
答:通常Android获取id时,截取“id:”后面的即可。如果只存在id值,不存在id属性通常有的前缀,这种情况下就无法通过id点击。则需要通过其他方式对元素进行点击。
- 如何判断当前页面是Native还是webview?
答:通过context获取当前的页面的类型。在有的页面,会出现h5被强转为Native页面,这时的页面则不支持webview操作,由于有的元素被隐藏,通过viewlist就很难点击到相应的元素,所以只能通过tap点击。
- 在点击之后或者页面跳转之后需要设置等待时间,使用sleep无效怎么办?
答:可以通过对静态元素(点击之后没反应的元素)进行重复点击,自带的sleep只有在不存在该元素时才会执行。
- Android自动化测试存在appium获取当前页面元素数据太大导致app卡死吗?
不会,数据量太大时,只是当前页面无法获取。
- Android自带键盘删除
newtest.clearById((AndroidDriver) driver,67,Id);
- 在IOS安装过程中,有什么需要注意的?
答:appium、Xcode下载的版本需要对应,各个版本都有不同的支持,同时还要注意测试机的版本,对应情况如下:
- 安装完成之后,如何配置环境变量?
答:mac本身是不存在环境变量配置文件的,需要新建。首先打开终端输入命令touch .bashprofile新建文件,然后输入命令vi .bash profile打开该文件,然后在文件内设置环境变量:
export ANDROID_HOME=/Applications/Android-sdk-macosx
export APPIUM_HOME=/Applications/Appium.app/Contents/Resources/node_modules/
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home
export AAPT_HOME=/Applications/android-sdk-macosx/build-tools/
export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools:$APPIUM_HOME/.bin:$AAPT_HOME/23.0.3/ (如果是在mac上面实现android的自动化就需要这句)
然后在退出编写的文件时注意,编写完成后按esc并输入wq再按ENTER以达到保存并退出,如果输入q则不保存直接退出。
- 如何查看新的软件的BundleID?
答:首先需要设置手机查看权限,在终端输入命令:sudo chmod –R 777 /var/db/lockdown/,在输入密码时,输入的密码不会显示,输入完成后直接ENTER;再输入:ideviceinstaller –l查看手机上软件的信息,即可显示软件的BundleID。
- 如何获取和判断元素的值?
答:获取元素的值为driver.findElementByXpath().getcondext。判断元素的值可分为完全判断和关键词判断,完全判断使用equals。但是在实际的很多地方,元素值往往很长,或者只有一些关键词不变,所以就需要使用contains进行关键词判断。
- IOS如何实现滑动操作?
答:由于appium的自身的限制,大概从1.3.7版本之后就不支持swipe操作,当前版本为1.4.13,因此在滑动方面存在很大约束。目前本人的操作是根据button属性的XPath路径点击,但是这样做是会出现报错并结束程序执行,因此使用try catch使程序继续执行,再根据得到的最新的显示页面对相应元素进行tap点击。由于很多需要滑动的页面不存在button属性的XPath,所以在滑动方面受到了很大的限制。以下代码可能适用于某些版本,可尝试
#python
diretion = up | down | left | right
#标准指向滑动
driver.execute_script("mobile: scroll", [{"direction":direction}])
#基于控件的指向滑动
driver.execute_script("mobile: scroll", [{"direction":direction, element: element.id}])
- 一些第一次能点击,后面再点击就出现错误的特殊情况及解决方法。
答:在点击同一个XPath时,第二次无法点击且报错。可以通过对元素的其他属性来点击该元素,如name或者直接使用坐标进行tap。有的app前面版本支持根据name点击,但是到了后期版本会出现该name明明能被打印出来,但是就是在点击时报错。可以通过XPath点击或者直接tap。
- IOS的app在自动化测试的一些bug需要注意。
- 一个页面的数据量太大导致app卡死
- 根据name点击,会点击成别的元素
- Mac OS X问题appium1.4无法在mac10.10以上使用
(1) 在终端打开文件 vi
/Applications/Appium.app/Contents/Resources/node_modules/appium/lib/doctor/ios.js
(2) 在适当位置添加代码else if (stdout.match('10.9') !== null) {
this.osVersion = '10.9';
cb(null, "Mac OS X 10.9 is installed.");
}
10.9改为当前mac版本号