在前面我已介绍了如何安装配置Appium 以及如何启动App, 实际测试过程比这复杂多,我们需要先启动APP,之后执行一系统操作
这就涉及到用例设计了,自动化的用例设计如何编写呢
比如我们好多APP 刚安装时会有一个导航页要跳过,Appium 没有提供像Robotium 中的左滑和右滑功能
在Appium中的代码如何实现呢
- //先获取屏幕的高度/宽度
- int width=driver.manage().window().getSize().width;
- int height=driver.manage().window().getSize().height;
- //指定一个滑动的xy 坐标
- driver.swipe(width*4/5,height/2, width/5,height/2, 1000);
- 这样就实现了整个页面的滑动,有几个页面,这个操作就执行几次就行了
比如我们要做一个登录的用例
- driver.findElement(By.name("我的")).click();
- driver.findElement(By.name("登录")).click();
- driver.findElement(By.id("com.umaman.laiyifen:id/et_username")).sendKeys("xxxxx");
- driver.findElement(By.id("com.umaman.laiyifen:id/et_password")).sendKeys("123456");
- driver.findElement(By.id("com.umaman.laiyifen:id/tv_login")).click();
- 之后我们要做一次验证,确认是否出现了我们想要的字符口串
- Assert.assertEquals("HI xxxxxx", driver.findElement(By.id("com.umaman.laiyifen:id/tv_user_name")).getText().trim());
对基本的控件操作之后我们就正式用TESTNG 来写测试用例了
附:setUp() 脚本讲解
capabilities.setCapability 下可以设置很多关键字。
1. app : .ipa 或 .apk文件所在的本地绝对路径或者远程路径。Appium会先尝试安装路径对应的应用在指定的真机或模拟器上。
对于 Android系统,如果已经指定app-package和app-activity的话,那么就可以不用指定app了.
2. browserName : 要启动的浏览器的名称,比如chrome , safari
3. device : 要使用的模拟器或真机的类型名称,比如ios, mock_ios, android , firefoxos
4. version : Android API版本, iOS版本, Chrome/Safari版本,比如4.4
5. newCommandTimeout : 设置在接受到有效命令之前结束进程并退出的时间,比如 60
6. launch : 在Appium已经安装的情况下可自动启动app。默认是true。
Android特有属性
7. app-activity : 要启动的Android 应用对应的Activity名称
8. app-package : 要运行的Android应用的包名
9. app-wait-activity : 要等待启动的Android Activity名称
10. device-ready-timeout : 设置一个模拟器或真机准备就绪的时间
Appium 1.3.3以上已支持中文输入。
java:
capabilities增加下面两项:
capabilities.setCapability("unicodeKeyboard", "True");
capabilities.setCapability("resetKeyboard", "True");
python:
desired_caps["unicodeKeyboard"] = "True"
desired_caps["resetKeyboard"] = "True"
java:
capabilities增加下面两项:
capabilities.setCapability("unicodeKeyboard", "True");
capabilities.setCapability("resetKeyboard", "True");
python:
desired_caps["unicodeKeyboard"] = "True"
desired_caps["resetKeyboard"] = "True"