博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Appium Android UI自动化简介 + 实战
阅读量:6638 次
发布时间:2019-06-25

本文共 1909 字,大约阅读时间需要 6 分钟。

一、自动化比较适合的场景

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、id

3、xpath

4、类名

5、属性

6、组合

PS:元素信息通过UIAutomator Viewer工具查看:

操作

1、点击;2、输入;3、滑动;

等待、判断页面元素出现或者消失:

1、 sleep

2、 View或文案显示

3、 View或文案消失

校验

按需求~文案显示或消失,View显示或消失,Dialog消失或消失,Toast等等

四、操作步骤

1、JDK、Android、eclipse、appium 等环境安装

2、启动appium server端

3、run,举例说明~~

/*** example用例*/@Testpublic 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);//iddriver.findElementById("com.baidu.lbs.waimai:id/left_container").click();Sleep(2000);driver.findElementById("com.baidu.lbs.waimai:id/actionbar_left").click();Sleep(1000);//xpathdriver.findElementByXPath("//android.widget.LinearLayout/android.widget.LinearLayout[1]/android.widget.RelativeLayout[2]").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,无结果收集,需手工复现

转载地址:http://oipvo.baihongyu.com/

你可能感兴趣的文章
编辑一次性计划任务
查看>>
MAC下的mysql忘记密码该怎么办??
查看>>
matlab练习程序(立体相关块匹配)
查看>>
DOS中的CD命令详解
查看>>
你应该知道的jQuery技巧
查看>>
消息处理之performSelector
查看>>
hihoCoder 1174 拓扑排序·一
查看>>
Struts2中防止表单重复提交,global-results定义全局结果处理
查看>>
汇编语言第一章基础知识
查看>>
Java 合并两个有序链表
查看>>
ipv6到ipv4隧道6to4(GNS3)
查看>>
NetBeans数据库笔记---三层架构
查看>>
iOS获取设备型号和App版本号等信息(OC+Swift)
查看>>
纯CSS3鼠标滑过按钮动画过滤特效
查看>>
web端 图片上传
查看>>
17代码分离
查看>>
18Lua与C#交互
查看>>
01:UI框架加强版
查看>>
PureMVC 简单案例
查看>>
PureMVC 开发FlappyBird
查看>>