看官网文档 hybird apps 部分,appium 的方案是切换 context 后用 chromium
1、测试登录后的业务的话和验证相关不大,可以用 cookie,登录手动测。
2、了解一下验证码生成过程,看能不能增加一个后门接口获取生成后的验证码。
3、增加万能码或者屏蔽验证码。
对源码修改依次增加,可能副作用也依次增加。如果验证码很简单,可以试试 OCR 识别,但稍微复杂点,比如加个噪点变个色,识别率就非常低了。
搜 “Junit 命令行”
是 GPU 加速的原因吗
1、输密码
2、点登录
3、进入登录后界面
在 2 和 3 之间,你的应用做了业务处理。在处理之后再做断言。比如断言登录后界面显示了用户名。
密码应该获取不了。
不过没必要断言输入值吧。如果出错一般也不是 app 本身的 bug。
你先试试 driver.tap(//坐标) 能不能输入。
可以的话 getCenter 方法可以返回控件中心坐标
MobileElement button3 = (MobileElement) driver.findElement(By);
Point = button3.getCenter()
没看懂,绿圈那里有直接点击事件?
展开后的通知栏才能用 UIautomatorviewer 看。
driver.openNotifications();可以展开通知栏。
http://testerhome.com/topics/1515
跳没跳过可以看日志确定
比如 start 这个功能,设计了这两个用例:
用例 A:
1、新注册账号进入页面。期望结果:lesson1 不可点
2、点击 start。期望结果:start 消失
3、点击 lesson1,期望结果:进入相应页面
用例 B:
1、新注册账号进入页面。
2、点击 start。期望结果:start 消失
3、退出应用,再次进入页面。期望结果:没有 start 按钮。
4、点击 lesson1,期望结果:进入相应页面
假如 app 包含这样的 bug:新注册的用户进入页面没有 start 按钮,lesson1 可点击。按 25 楼的写法会漏掉这个 bug。
假如有另一个 bug:新注册的用户进入页面有 start 按钮,lesson1 可点击。还是会漏掉。
两个用例,一个用没点过 start 的账号,另一个用点过 start 的账号。
基本上在业务视角每个用例只有一种结果。
getAttribute 看一下 enabled,clickable,大概只是不可见
先找到他们的父节点 GridView:
WebElement gridView = driver.findElement...
再在 GridView 下找 TextView:
List textView= gridView.findElements...
#5 楼 @appium_bob
内置了输入法吧,没试过了。
#2 楼 @appium_bob
1、如果自带密码控件是指 ,可以输入。
2、click 成功了吗?
3、appium 日志看了吗,发键盘命令了吗,成功响应了吗?
4、el5.sendKeys() 试了吗
5、123 和 4 都不发送字符,看帖子。
6、Sleeper.sleep() 是哪里的方法?
sendKeyEvent 参数是这些
http://testerhome.com/topics/1386
如果有 bug,每次使用都会弹出,怎么处理?
如果有另一个 bug,每次使用都不弹出,怎么处理?
#10 楼 @lacylee200 6 楼链接里的 10 楼,有个 chromedriver 下载地址,下好替换\Appium\node_modules\appium\build\chromedriver\windows\chromedriver.exe
#7 楼 @lacylee200 @abyssalknight
10 楼给了个他修改过的 chromedriver,替换掉\Appium\node_modules\appium\build\chromedriver\windows 下的 chromedriver。
我的 genymotion 有这个问题(貌似升级前是好的,但没 2.2 镜像了),sdk 自带的模拟器没问题
1、android-开发人员选项 - 勾选指针位置,可以看到实际轨迹。
2、swipe 最后一个参数是毫秒,设长些。
3、可以先用命令测试 adb shell input swipe duration(ms)
#16 楼 @lihuazhang 总会有些人看的,没有银弹
QQ 群可以设置本群须知,一加群就能看到。论坛也能发注册消息吧?可以把下载地址之类帖子的链接放上去。
打开 Android SDK Manager 下载日志里支持版本的 Android SDK Build-tools