【Android测试】【第十三节】Uiautomator——项目实战

前言


  前面我们已经了解Uiautomator的基本知识,并且学习了API的用法,因此对于我们来说完成一个UI自动化测试脚本并不难,但是如何将UI自动化应用在实际的项目中,帮我们提高测试的效率呢?本节我们就说说,UI自动化应该怎么去完成。

  我们以微信"小视屏"这个功能为例,来完成本次自动化测试的讲解。(鉴于隐私原因,默认在执行脚本前,微信已经是登录状态)


分析


  当我们要完成一个自动化时,需要考虑这个用例需要怎么设计,需要测试哪些项,怎么验证,出现错误时应该如何处理。

  首先需要明确一点,并不是所有需求文档上提到的功能,我们都必须用自动化方式去验证,由于UI自动化本身的局限性,UI自动化的可行度不是100%的准确,因此我们只对“小视屏”的卖点功能进行自动化验证,你也可以理解为对该功能做一个冒烟测试。

  小视屏功能的入口一共是三个,分别是下面这三个地方:

  

  我们除了要验证这地方的入口外,还需要在其中一处完成对小视屏的发送,并且验证小视屏发送成功。因此我们可以按照下面流程来进行测试脚本的编写,流程图如下所示:

 

 

 

编码前准备


  有了流程图之后,不要迫不及待的编码。编码之前也需要考虑考虑,是否有一些公共的方法可以提取出来做为一个单独的函数呢?

1、点击操作

  首先,点击的操作是Uiautomator中用的最多的,而根据控件id和text来做为索引则是更多的。因此我们封装如下的内容:

    /* 定义“通过哪种方式来获得uiselector”的int标识,
       如果以后想添加别的方法(例如 通过description 来获取),则可以参考此形式进行扩充 */

    final int CLICK_ID = 2000;
    final int CLICK_TEXT = 2001;

    /* 实现具体的外部可以调用的函数 */

    // 通过id来进行点击操作
    public boolean ClickById(String id)
    {
        return ClickByInfo(CLICK_ID, id);
    }
    // 通过text来进行点击操作
    public boolean ClickByText(String text)
    {
        return ClickByInfo(CLICK_TEXT, text);
    }

    /* 封装出通用的点击方法,供上面的public函数调用
       如果以后想添加别的方法(例如 通过description 来获取),则可以在switch中扩充 */
    private boolean ClickByInfo(int CLICK, String str)
    {
        UiSelector uiselector = null;
        // switch根据不同的CLICK标识,创建出UiSelector的对象
        switch(CLICK)
        {
        case CLICK_ID:   uiselector = new UiSelector().resourceId(str); break;
        case CLICK_TEXT: uiselector = new UiSelector().text(str);       break;
        default: return false;
        }
        // 根据UiSelector对象构造出UiObject的对象
        UiObject uiobject = new UiObject(uiselector);
        // 判断该控件是否存在
        if(!uiobject.exists())
        {
            return false;
        }
        // 点击
        try
        {
            uiobject.click();
        } catch (UiObjectNotFoundException e)
        {
            e.printStackTrace();
        }
        return 
  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值