哈士奇的罪恶 发表于 2019-1-28 15:33:53

Appium Android UI自动化简介 + 实战

一、自动化比较适合的场景1、稳定迭代;2、回归阶段;回归上一版功能,对新功能不适用。3、研发驱动的底层代码重构;不适合case:无网、支付、需要数据准备的case
二、Appium简介Appium是目前最为强大的自动化测试框架,支持IOS 与Android。ØIOS: 苹果公司的 UIAutomation。ØAndroid 4.2+: Google公司的 UiAutomator。ØAndroid 2.3+: Google公司的 Instrumentation. (Instrumentation 的支持是通过绑定另外一个独立的Selendroid项目来实现的)。C/S 架构Appium的核心是一个遵守REST设计风格的web 服务器,它接受客户端的连接,接收客户端的命令,在手机设备上执行命令,然后通过HTTP的响应收集命令执行的结果。支持多语言
三、case编写思路过程抽象: 定位-------操作-------等待---------校验---------定位定位方式:1、文案2、id3、xpath4、类名5、属性6、组合PS:元素信息通过UIAutomator Viewer工具查看:

操作:1、点击;2、输入;3、滑动;等待、判断页面元素出现或者消失:1、 sleep2、 View或文案显示3、 View或文案消失校验:按需求~文案显示或消失,View显示或消失,Dialog消失或消失,Toast等等
四、操作步骤1、JDK、Android、eclipse、appium 等环境安装2、启动appium server端3、run,举例说明~~/**
* example用例
*/
@Test
public void test_000_example() {
Gotocate(1);
Sleep(2000);
//文案
driver.findElementByAndroidUIAutomator("new UiSelector().text(\"餐饮\")").click();
Sleep(2000);
driver.findElementById("com.baidu.lbs.waimai:id/back").click();
Sleep(2000);

//id
driver.findElementById("com.baidu.lbs.waimai:id/left_container").click();
Sleep(2000);
driver.findElementById("com.baidu.lbs.waimai:id/actionbar_left").click();
Sleep(1000);

//xpath
driver.findElementByXPath("//android.widget.LinearLayout/android.widget.LinearLayout/android.widget.RelativeLayout").click();
Sleep(2000);
driver.findElementById("com.baidu.lbs.waimai:id/back").click();
Sleep(2000);
//类名--推荐在View数量小的页面使用

//滑动--下拉
int width = driver.manage().window().getSize().width;
int height = driver.manage().window().getSize().height;

for(int i = 0; i < 10; i++)
{
driver.swipe(width / 2, height * 3 / 4, width / 2, height / 4, 1000);
}

// WaitForStringShow("餐饮");
// WaitForViewShow("com.baidu.lbs.waimai:id/left_container");
// WaitForViewHide("com.baidu.lbs.waimai:id/left_container");
}
五、失败case问题定位三种可能:1、bug—>提icafe;2、脚本问题->Fix;3、工具问题->寻求其他方式解决;4、环境准备问题(无网、手机无电、有弹窗、目标app后台未杀死等等)定位问题方式:1、查看失败case截图2、定位代码行,查看出错原因(函数级)3、结合功能,确定出错点特例:crash,无结果收集,需手工复现
页: [1]
查看完整版本: Appium Android UI自动化简介 + 实战