- 如何获取toast文本?
详情见:https://testerhome.com/topics/3750(待有时间研究)
- Selendroid的使用
1 什么是Seledroid?
selendroid也是一个自动化测试框架,基于webdriver,和selenium和appium都是一脉相承的,使用起来比较接近,是ebay开发的,使用了谷歌提供的instrumentation类来完成android的自动化测试;
2 appium为什么要集成selendroid?
因为appium使用的UIautomator是谷歌在4.2.2之后才加入的,为了兼容老版本,所以集成了selendroid;
3 基本使用方法?
在capability中配置如下一行即可:
capabilities.setCapability("automationName","Selendroid");
另外,还有一个selendroidport用于并发测试时指定不同的port,格式为:
capabilities.setCapability("selendroidport","10086"); // 端口号不超过65535即可
因为instrumentation是用进程注入的方式进行自动化测试,所以使用selendroid必须要重签名,appium的noSign配置失效
4 能够解决的问题?
selendroid可以使用toast,基本定位语法是
by.linkText("toast内容") //请用1.4.13版本的appium,selendroid高版本有bug
selendroid可以使用在2.3-6.0版本中,顶替不支持UIautomator的机器
selendroid因为是注入进程的,所以支持一些因为权限原因,UIautomator拿不到的控件,同学们测试的时候可以试试自己的app
5 缺点
selendroid必须要重签名
无法跨应用测试
多点触摸,手势方面不行
6 Selendroid和Uiautomator语法的差异
by.name的方法有差异,selendroid的by.name对应的是控件中content-desc属性,而appium控件中content-desc属性对应的是AccessibilityId
selendroid用linkText来使用text属性
selendroid的class对应appium的classname
- Appium并发测试方法
Appium支持安卓并发测试;
1 启动两个Appium服务
1.1 gui的版本需要运行两次,并且在设置中配置不同的端口
1.2 命令行也是运行两次
appium -p 4723 -bp 4724 \\这也是appium的默认端口
appium -p 4000 -bp 4001
这样就运行了2个appium server
简单说明下,p是appium的server端口,bp是bootstrap端口,bootstrap是UIautomator运行的驱动,如果要selendroid那么就用--selendroid-port
1.3 需要注意的是,端口可能会被占用
2 在对应的用例代码中,设置好capability属性
2.1 devicename和platformVersion必须和手机一一对应
2.2 driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);对应的端口号做相应的修改
3 执行相关用例即可
3.1 一般使用命令行的方式会比较方便点,linux系统也会方便点
3.2 并行执行用例很多测试框架都可以,只需要并行执行时,driver对象的端口和手机是不同的即可
- 自动化测试适应哪些测试环境?
测试环境一般包括:开发环境、测试环境、预发布环境、线上环境;
线上环境不适合自动化测试,因为自动化测试重复执行可能会产生各种测试数据,影响线上的一些统计情况;