使用macaca进行移动端hybird自动化测试(四)

现在正是进入native里面的webview的测试。比如我要测试一个选择城市的组件:

主要的思路就是模拟用户的一系列操作,然后看测试的结果和预期是否符号。

首先还是通过控制台查看相应的DOM节点,通过macaca提供的API去获取相应的DOM元素然后触发用户操作。

以下还是在REPL环境下进行操作:


  1. driver 
  2.     .webview() 
  3.     .elementByCssSelector('.location-city .input-tips') 
  4.     .tap()  //首先唤起城市选择组件,见下图① 
  5.     .sleep(500) 
  6.     .elementByCssSelector('.province-list .list-item:nth-child(3)') 
  7.     .tap()  //点击省份的第三个元素,见下图② 
  8.     .sleep(500) 
  9.     .elementByCssSelector('.city-list .list-item:nth-child(4)') 
  10.     .tap()  //点击市的第四个元素,见下图③ 
  11.     .sleep(500) 
  12.     .elementByCssSelector('.area-list .list-item:nth-child(6)') 
  13.     .tap()  //点击区域的第6个元素,见下图④ 
  14.     .sleep(500) 
  15.     .elementByCssSelector('.location-city .input-tips') 
  16.     .text()  
  17.     .then(function(value) { //可以在控制台中看到输出的选中的城市内容,见下图⑤ 
  18.         console.log(value); 
  19.     });  

图①:

图②:

图③:

图④:

图⑤:

图⑥:

可以看到当前的功能是按我们的预期去执行的。

现在我再测试下另外一种情况:

选择了省份和区域,没有选择市的话,会出现一个弹窗。


  1. driver 
  2.     .webview() 
  3.     .elementByCssSelector('.location-city .input-tips') 
  4.     .tap()  //重新唤起城市选择组件,见下图 
  5.     .sleep(500) 
  6.     .elementByCssSelector('.province-list .list-item:nth-child(2)') 
  7.     .tap()  //重新选择省份 
  8.     .sleep(500) 
  9.     .elementByCssSelector('.area-list .list-item:nth-child(3)') 
  10.     .tap()  //重新选择区域 
  11.     //这时就会出现一个弹窗,见下图  

图⑦:

图⑧:

这时功能也是按预期走的。

当然最后写到测试脚本里面还需要添加断言相关的内容,这个也比较容易。

在编写webview测试脚本的时候也遇到了很多问题,比如说native出于安全方面的考虑,限制了input[type="file"]唤起native上传文件的组件,再比如有些滑动等操作测试比较困难等等。慢慢来吧。

作者:苹果小萝卜

来源:51CTO

时间: 2024-10-28 07:15:34

使用macaca进行移动端hybird自动化测试(四)的相关文章

使用macaca进行移动端hybird自动化测试(一)

部分基本概念及内容: 单元测试: 以模块为单元,测试你代码的本身,确保你编写的模块还有逻辑正确.只要输入的值不变,输出的值也应该不发生改变 前端自动化测试: 界面回归测试 测试界面是否正常,包括文案,图片等. 功能测试 包括交互逻辑和功能模块是否符合预期. 性能测试 页面性能越来越受到关注,并且性能需要在开发过程中持续关注,否则很容易随着业务迭代而下降. 本文主要的内容集中在界面回归测试和功能测试.这2部分的测试工作是通过模拟用户进行页面操作,通过查看页面状态的变化,从而检测功能是否运行正常:它

使用macaca进行移动端hybird自动化测试(二)

Macaca macaca是阿里开源的基于Node.js开发的自动化测试工具,支持native,hybird,moblie web,关于macaca具体的内容参见官网macaca. macaca是如何驱动自动化测试的呢?事实上macaca和appium在架构和一些应用层面有很多相似的地方. 作为client的我们可以使用不同语言去编写测试脚本,其中测试脚本遵循webdriver协议,client向测试框架启动的server发送http请求.正因为client和server是基于http进行通讯的

桌面端的移动计算(四)

Launching an Application有很多原因使你要从一个桌面程序启动设备上的一个应用程序.在下面情况下,你可以使用这个技术:· 安装一个新版本的应用程序.简单地拷贝CAB文件到设备上,然后在设备上运行CAB安装程序来提供安装.这项技术被经常用在你想自动发布和安装应用程序更新的情况下.注意 另一个相似的发法是自动话桌面端的安装过程,使用ActiveSync内置的功能.· 在安装了新版本应用程序后重起你的移动应用程序.· 开始一个设备应用程序处理新更新的数据,在更新了文本或者XML文件

[android]android自动化测试四之Monkey与MonkeyRunner

请大家用下面的范例来做Monkey test . 时间延迟设为300毫秒,基本上符合实际上的触摸间隔.各位只需要改变标记为黄色的部分.  adb shell monkey -p com.xxxx.news -s 12345 --pct-trackball 0 --pct-nav 0 --throttle 300 --pct-anyevent 4 --ignore-crashes 30000 & adb shell monkey -p com.xxxx.systeminfo -s 12345 --

python接口自动化测试(四)-Cookie&Sessinon

掌握了前面几节的的内容,就可以做一些简单的http协议接口的请求发送了,但是这些还不够.HTTP协议是一个无状态的应用层协议,也就是说前后两次请求是没有任何关系的,那如果我们测试的接口之前有相互依赖关系怎么办呢(比如我要在博客园发文章,是需要先登录的),这时我们就要用到cookie和session技术来保持客户端与服务器端连接的状态,这也就是本节要介绍的内容:   一.Cookie: 1.获取cookie: # -*- coding:utf-8 -*- #获取cookie import requ

腾讯Android自动化测试实战

腾讯Android自动化测试实战 丁如敏 盛娟 等著 图书在版编目(CIP)数据 腾讯Android自动化测试实战 / 丁如敏等著. -北京:机械工业出版社,2016.10 ISBN 978-7-111-54875-1 Ⅰ. 腾-   Ⅱ. 丁-   Ⅲ. 移动终端-应用程序–程序设计   Ⅳ. TN929.53 中国版本图书馆CIP数据核字(2016)第223713号 腾讯Android自动化测试实战 出版发行:机械工业出版社(北京市西城区百万庄大街22号 邮政编码:100037) 责任编辑:

Macaca基础原理解析

导语 前面几篇文章介绍了在Macaca实践中的一些实用技巧与解决方案,今天简单分析一下Macaca的基础原理.这篇文章将以前面所分享的UI自动化Macaca-Java版实践心得中的demo为基础,进行一下实例讲解. Macaca的基本组成 通过对源码各个模块的分析,可以帮助我们对Macaca的整体构成有一个基础的认识.Macaca已经开源,相关的源码在对应的github上都可以下载: https://github.com/macacajs. 大家会在alibaba集团的开源github上找到ma

java-【求】android 银联支付 服务端demo

问题描述 [求]android 银联支付 服务端demo 如题,现在我们APP提供银联支付,我是后台开发,也就是服务端,以前从没弄过这个 ,不知道服务端要干些什么,求一个详细的demo,感谢了. (如果有IOS也可以提供,因为我们也有IOS版的) 解决方案 你查查银联支付的PHP或者Java SDK 解决方案二: Android 银联支付Demo 解决方案三: [求]android 银联支付 服务端demo 解决方案四: 你查查银联支付的PHP或者Java SDK

Android应用自动化测试——理论、工具和实践(上)

摘要 桌面应用程序与浏览器端的自动化测试都已经历了十年的发展,无论是从工具上还是项目管理方 法论上都已经趋于成熟.而移动设备端应用程序的自动化测试近两年才刚起步,似乎一切尚处于探讨与研究阶段.但我们似乎已经看到其爆炸性的需求增长势头.可 以从这两方面着眼分析:其一,移动应用从数量上和逻辑复杂程度上的增长,以及产品发布周期的紧缩,使得快速回归测试迫在眉睫:其二,安卓系统的开放性造成 硬件厂商百家争鸣的局面,设备款式之多,迫使移动应用的兼容性测试提上日程.纵观当前智能手机两 大主流阵营iPhone与