软件测试技术之Android UI自动化用例设计技巧
白羽 2018-07-20 来源 :网络 阅读 904 评论 0

摘要:本文将带你了解软件测试技术之Android UI自动化用例设计技巧,希望本文对大家学测试技术有所帮助。

一、封装方法

  1、编程如何越来越快:

  首先,需要经验丰富,知识面广。

  其次,每一个熟练编程的人员,都会有自己的一个库,解决各种问题、各种通用的方法函数。

  同理,自动化脚本也是编程,测试用例则为需求,UI自动化编写虽然容易,但是界面变化快、维护庞大。所以封装通用方法,是最快最容易的途径。

  2、哪些方法需要封装:

  公共的操作方法

  经常使用的步骤:超过两次以上

  经常使用的组件:输入框、文本框、列表

  经常操作的布局:多个组件组成通用的布局

  经常操作的页面:ui页面由一个一个单独Activity组成,就可以将Activity封装成单独的类

  通用的工具函数:文件操作、时间操作之类

  3、初级封装:

  通用方法库:将通用的方法封装在一个java文件中,比如登陆、文件操作、时间操作

  专用方法库:比如登陆专用的方法:qq登陆、微博登陆等

  用例集:通过调用方法库中的方法实现用例,这样看起来简洁清晰。

  4、设计一个用例的过程:

  先编辑好用例执行步骤、顺序

  然后设计好对应的方法名

  然后新建一个class将这些写入,要将编辑好的用例步骤、方法名等作为注释,这样更清晰

  比如设计简单用例如下:

  Cer_MTBF_01:联系人的添加和删除

  预置条件:1、在添加联系人之前通讯录内无任何联系人

   

  二、接口化

  面向接口的变成也可以引入自动化用例编写中。可以用到设计核心用例,基本核心用例20-30条,核心功能基本不会变,但是UI变化比较大,这样我们没必要把用例重新写一遍,只要把方法重新实现一下。

  1.设计用例与实现用例分离

  2.规范化用例

  3.多态-应用的多版本

  三、组件化与布局化

  对常用的组件单独编写组件常用方法。我们最终获取的每个对象都为某一个类型的组件

  例如:对EditView设计通用的方法,首先想想你是如何测试编辑框的,将这些方法全写在抽象的 EditView类中

  1.获取EditView对象

  2.输入文本

  3.清除数据

  4.判断编辑框类型

  5.判断编辑框

  6.各种异常与特殊方法预置、

  四、界面化

  界面化知识应用由不同的Activity组成,那我们可以将每一个界面封装成一个类,操作、方法、变量,也就是属性和方法再单独封装。

  这样只要哪个界面有变化,再修改对应的Activity就可以了。

  实例:

  拨号盘页面

  属性:

  1.常用的固定号码,如:10086,10010,10000

  2.常用的暗码:*#06#、*#*#4636#*#*

  3.组件ID:页面各个组件ID按功能命名

  4.页面对象:页面各个UI对象

  方法:

  1.输入号码

  2.清除号码、删除号码

  3.拨号

  4.其他设置(添加联系人、暂停、等待、发送短信)

  5.选择号码

  2、Activity查询方法

  方法1:有源码,从Manifest文件中获取

  方法2:使用命令查询应用的全部Activity

  adb shell dumpsys package<包名>

  方法3:查询当前Activity栈定的Activity

  adb shell dumpsys activity

  方法4:找到焦点Activity

  adb shell dumpsys activity | find "mFocusedActivity"

  简化搜索字符

  adb shell dumpsys activity | find "mF"

  五、逻辑与数据分离

  实际用例编写过程中有很多数据非固定的而是可变的

  如:

  1.账号信息:邮箱账号、无线登陆账号、即时通讯软件

  2.逻辑控制:log输出、代码分枝切换

  3.电话号码

  对于可变的数据,我们应该剥离出来,使用一个数据类来进行控制和获取

  思路:

  我们单独设计一个class,功能就是,从某个地方读取变量,再赋值给我们设计好的变量。

  数据获取方式

  1)从命令传入参数:-e 键值对

  2)从文件传入参数:写一个配置文件,文件里包含配置变量的信息,放到手机目录下,然后文件读取,赋值给我们的变量。

  3)从云端传入参数:需要有一个云服务测试系统,用例通过POST请求,请求服务器,服务器上设置好信息,服务器再把信息返回给用例,用例再把信息赋值给对应的变量,然后其他用例再从数据类中读取。

  简单实例:

  1.建一个管理数据的package

  2.建一个数据类

  3.设置变量

  4.在写一些获取变量值的方法

  public class Date extends UiautomatorBase{

  public static String wlan="";

  public static String QQ="";

  public static String phone="";

  }

  public void getConfig(){

  wlan="";

  QQ="";

  phone="";

  }

  }

   

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标软件测试之测试技术频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程