《移动App测试的22条军规》——第23章,第19节对微信App进行自动化测试和探索性测试
本节书摘来自异步社区《移动App测试的22条军规》一书中的第23章,第19节对微信App进行自动化测试和探索性测试,作者 黄勇,更多章节内容可以访问云栖社区“异步社区”公众号查看
23.19 对微信App进行自动化测试和探索性测试
我们在对微信App进行测试时,必然会进行自动化和探索性测试。
(1)在编写微信App的自动化测试时,我们还是选用Appium来帮助我们录制对应的脚本;而基于测试金字塔的测试架构设计,我们对于Appium的自动化测试,选择编写“用户登录微信后,在通讯录中添加招商银行公众号”这个用户旅程(如图23.45~图23.55所示)。
打开微信App的主界面(如图23.45所示)。
打开“Contacts”(通讯录)页面(如图23.46所示)。
点击右上角的“+”号按钮(如图23.47所示)。
选择“Add Contacts”( 添加朋友)(如图23.48所示)。
点击搜索框(如图23.49所示)。
在搜索框中输入“cmb”(如图23.50所示)。
点击“Search: cmb”(如图23.51所示)。
选择搜索结果中的第一个公众号“招商银行”(如图23.52所示)。
在招商银行公众号的“Profile”(详细资料)页面点击“Follow”( 关注)(如图23.53所示)。
在弹出的“Note”提示框中选择“Cancel”(取消)(如图23.54所示)。
在我们编写针对这个用户旅程的自动化测试时,可以使用Appium的inspector来帮助我们录制对应的脚本(如图23.56所示)。
我们可以使用Appium的inspector来帮助我们录制自动化测试的脚本
Appium inspector生成的脚本如下。 require 'rubygems' require 'Appium_lib' capabilities = { 'Appium-version': '1.0', 'platformName': 'Android', 'platformVersion': '4.4', 'App': '/Users/huangyong/Downloads/weixin600android501.apk', } server_url = "http://0.0.0.0:4723/wd/hub" Appium::Driver.new(caps: capabilities).start_driver Appium.promote_Appium_methods Object find_element(:xpath, "//android.view.View[1]/android.widget.FrameLayout[2]/android.widget.FrameLayout[1]/android. widget.LinearLayout[1]/android.widget.RelativeLayout[1]/android.widget. LinearLayout[1]/android.widget.RelativeLayout[2]/android.widget.LinearLayout[1]/android.widget.TextView[1]").click find_element(:name, "More function buttons").click find_element(:xpath, "//android.widget.ListView[1]/android.widget.LinearLayout[2]/ android.widget.LinearLayout[1]/android.widget.TextView[1]").click find_element(:xpath, "//android.view.View[1]/android.widget.FrameLayout[2]/ android.widget.FrameLayout[1]/android. widget.LinearLayout[1]/android.widget. ListView[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/ android.widget.RelativeLayout[1]/ android.widget.TextView[1]").click find_element(:xpath, "//android.view.View[1]/android.widget.FrameLayout[1]/ android.view.View[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.RelativeLayout[1]/android.widget.LinearLayout[2]/android.widget.EditText[1]").send_keys "cmb" find_element(:xpath, "//android.view.View[1]/android.widget.FrameLayout[2]/ android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/android.widget.LinearLayout[1]/android.widget.ListView[1]/ android.widget.RelativeLayout[1]/android.widget. LinearLayout[1]/android.widget.TextView[1]").click find_element(:xpath, "//android.view.View[1]/android.widget.FrameLayout[2]/android. widget.FrameLayout[1]/android. widget.LinearLayout[1]/android.widget.ListView[1]/ android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.RelativeLayout[2]/android.widget.LinearLayout[1]/android.widget.TextView[1]").click find_element(:xpath, "//android.view.View[1]/android.widget.FrameLayout[2]/ android.widget.FrameLayout[1]/android. widget.LinearLayout[1]/android.widget. ListView[1]/android.widget.LinearLayout[4]/android.widget.TextView[1]").click find_element(:xpath, "//android.widget.FrameLayout[1]/android.widget.FrameLayout[1]/ android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[2]/android.widget.LinearLayout[1]/android.widget.Button[1]").click find_element(:xpath, "//android.view.View[1]/android.widget.FrameLayout[1]/ android.view.View[1]/android.widget.LinearLayout[1]/android.widget.LinearLayout[1]/android.widget.ImageView[1]").click driver_quit
这样我们把脚本保存下来,就能回放执行自动化测试了。当然,我们不仅需要对测试添加断言Assertion,也需要对录制的脚本进行重构,以达到更好的重用性、维护性和可扩展性。
(2)针对微信App的探索性测试,我们选择以“在朋友圈发送消息”这个用户旅程为例。
通过探索性测试,我们发现在朋友圈发送消息,不仅可以发送朋友圈中明确列出的“Images”(照片)和“Sight”(小视频)消息(如图23.57所示)。
也可以通过长按右上角的照相机图标发表文本(Text)(如图23.58所示)。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
《深入解析Android 虚拟机》——第1章,第1.3节编译Android源码
本节书摘来自异步社区《深入解析Android 虚拟机》一书中的第1章,第1.3节编译Android源码,作者 钟世礼,更多章节内容可以访问云栖社区“异步社区”公众号查看 1.3 编译Android源码编译Android源码的方法非常简单,只需使用Android源码根目录下的Makefile,执行make命令即可轻松实现。因为Android L是一个Preview版本,官方并没有公布其完整的内核代码。所以本节中的编译内容将以正式版Android 4.3进行。当然在编译Android源码之前,首先要确定已经完成同步工作。进入Android源码目录使用make命令进行编译,使用此命令的格式如下所示: $: cd ~/Android4.3(这里的“Android4.3”就是我们下载源码的保存目录) $: make 编译Android源码可以得到“~/project/android/cupcake/out”目录,笔者的截图界面如图1-18所示。 整个编译过程也是非常漫长的,需要读者耐心等待。在本节的内容中,将详细讲解编译Android源码的基本过程。 1.3.1 搭建编译环境在编译Android...
- 下一篇
《精通移动App测试实战:技术、工具和案例》一2.2 JUnit在Android开发中的应用
本节书摘来自异步社区《精通移动App测试实战:技术、工具和案例》一书中的第2章,第2.2节,作者 于涌 , 王磊 , 曹向志,更多章节内容可以访问云栖社区“异步社区”公众号查看 2.2 JUnit在Android开发中的应用 2.2.1 单元测试的重要性 前面我们提到了单元测试,那么什么叫单元测试呢?单元测试(Unit Testing),是指对软件中的最小可测试单元进行的检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如在Java中单元指一个类,在C语言里单元指一个函数等。单元测试是在软件开发过程中要进行的最低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。通常,我们在编写大型应用系统的时候,都要写成千上万个方法或函数,这些方法或函数的功能通常都是有限的,但是它们却是这个应用系统的根基,只有确保每一个函数或者方法都实现了其意图,才能保证整个系统能够正常、准确地运行。千里之堤溃于蚁穴,如果我们没有对每一个细小的函数或者方法进行系统的单元测试,很有可能最后直接导致整个系统最终被淘汰的结果。由此可见,单元测试十分重要,也非常必要。 2...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Docker安装Oracle12C,快速搭建Oracle学习环境