51Testing软件测试论坛

标题: TW征文|TestWriter——自动化测试达人进阶之Android客户端 [打印本页]

作者: 小小小提姆    时间: 2017-4-27 10:23
标题: TW征文|TestWriter——自动化测试达人进阶之Android客户端
本帖最后由 小小小提姆 于 2017-4-27 11:18 编辑

大家好!我叫小小小提姆,是一名在IT行业的洪流中力争上游的软件测试媛,个人软件测试擅长方向:
1.功能测试(熟悉Fiddler)
2. jmeter&loadrunner压力测试
目前的研究方向:
1. Ruby
2. QTP
欢迎志同道合的同学们一起交流学习,我的51testing论坛账号:小小小提姆
【摘要】
继上次分享了TestWriter(Web平台)的自动化使用,文章链接:(http://bbs.51testing.com/thread-1110501-1-1.html),相信很多和我一样的小菜鸟们,应该在这个过程中,找到了那么一丢丢的成就感。但是,这个还远远不够,因为学习不仅要宽度,更需要深度。
在我们测试的过程中,除了web平台,当然也会涉及Android&iOS客户端的自动化测试。所以,本文主要给大家分享Android的录制使用方法,除了最基本的操作步骤,还包括了常用的操作类型Type(文本框)、Swipe(滑动)、UploadDialogSetFile(上传文件)的使用,同时也分享了自己对操作类型执行过程的理解,便于小达人们更容易理解。
希望通过本次的本次,可以让更多的初级小达人们向中级达人更迈进一步。
本文干货多多,千万不要错过哦~(当然,如果有不理解的地方,我们也可以一起学习交流)
【操作使用过程】
进阶1:达人1.0——达人1.1
进阶内容:新增被测应用
进阶秘籍:
1.前提
将被测应用的apk文件放在桌面(或者自己指定路径)
注意:这里的被测应用的版本和手机上安装的APP应用版本要保持一致哦!
2.新增被测应用
只需要在程序路径中选择被测应用即可(名称、应用名称、初始窗口名称都会自动获取)
[attach]105638[/attach]
3.基本操作步骤
业务模块---被测应用管理---新增---添加程序路径---保存
4.check
保存成功后会在被测应用管理列表看到之前维护的信息

进阶2:达人1.1——达人1.2
进阶内容:新增设备管理
进阶秘籍:
1.前提
1.1将安卓设备连接电脑,确认打开开发者选项和USB调试
1.2安装手机驱动
1.3获取Android 设备的设备标识
方法一:
首先将手机以开发者模式连接至 PC(电脑安装了该型手机的驱动),然后打开
Windows 命令提示符,执行命令“adb devices”, 输出结果第二行第一列的字符串几位
设备标识(如图)
[attach]105639[/attach]
方法二:
打开手机设置 > 关于手机 > 状态信息 > 序列号,序列号内容即为设备标识,
此方法路径只针对小米手机系统,其他品牌型号的手机请参考。(如图)
[attach]105640[/attach]
2.添加设备
填写设备名称、操作系统版本、设备标识
[attach]105641[/attach]
注意事项:
有些同学可能不知道操作系统版本怎么选,通过下面的“Android系统版本与API等级对应关系表” 就一目了然了。平台的版本通过手机设置---关于手机---Android版本可以获取。
(Android官网目前被屏蔽了,想要自己登录的同学可以点击链接,获取解决方法https://zhidao.baidu.com/question/1574372881007933460.html
[attach]105642[/attach]
3.基本操作步骤:
业务模块---设备管理---新增---添加---保存
4.check
保存成功后会在设备管理列表看到之前维护的设备信息

进阶3:达人1.2——达人1.3
进阶内容:新增Agent
进阶秘籍:
如果这个操作遗漏掉,会出现测试计划调度成功,但是状态一直是待分配的情况。
[attach]105643[/attach]

进阶4:达人1.3——达人1.4
进阶内容:新增测试对象(录制)
进阶秘籍:
1.前提
被测应用和设备管理已存在
注意:录制的时候,手机是打开的状态
2.新增测试对象
点击录制后,界面会弹出一个录制工具的对话框,点击测试设备的下拉框,选择之前已经维护好的设备,同样的点击被测应用,选择之前维护好的APP应用,点击启动。 [attach]105644[/attach]
启动成功后,系统提示“正在启动引擎,请稍后”,出现下图就可以开始录制了。
[attach]105645[/attach]
3.基本操作步骤:
业务模块---测试对象管理---录制---录制
[attach]105646[/attach]
4.录制秘籍
在录制的时候,很多同学不知道用什么操作类型,每一个操作的实际执行结果是什么样的,可能因此无法继续进行下去。当然可以在录制好之后再进行调试,但是在后期会发现这样有稍许麻烦。所以这里建议同学们可以在录制界面,设置好操作类型和一些输入值之后,直接执行,这样可以清楚的看到手机上的执行过程,其实就是把调试放在前面,这样就不用后期一个一个调试了。


进阶5:达人1.4——达人1.5
进阶内容:新增测试步骤
进阶秘籍:
1.前提
已录制好测试对象
2.新增测试步骤
3.基本操作步骤:
业务模块---测试步骤管理---新增---添加---确定
4.注意事项
4.1APP应用的第一个测试步骤要进行应用的启动,操作选择“Launch”即可
[attach]105647[/attach]
4.2根据测试对象进行每一个操作步骤的维护
[attach]105648[/attach]
[attach]105649[/attach]
4.3如果测试对象中有对页面进行校验的,可以选择“检验制定元素中是否含有制定文本”
[attach]105650[/attach]

进阶6:达人1.5——达人1.6
进阶内容:新增测试用例
进阶秘籍:
1.前提
已新增好测试步骤
2.新增测试用例
点击全部移至左边的按钮,点击确认按钮即可
[attach]105651[/attach]
3. 基本操作步骤
业务模块---测试用例管理---新增---确定
4.check
保存成功后会在测试用例管理列表看到测试用例的信息
[attach]105652[/attach]

进阶7:达人1.6——达人1.7
进阶内容:新增执行计划
进阶秘籍:
1.前提
2.新增执行计划
2.1填写计划基本信息,将待选用例模板移至到模板信息,作为用例模板
[attach]105653[/attach]
2.2填写测试目的设置
点击测试目的所需设备空白处,选择所需设备,填写名称后点击确定按钮即可
[attach]105654[/attach]
3.基本操作步骤
业务模块---执行计划管理---新增---执行
点击“执行”按钮,确定执行,系统提示计划调度成功
4.check
保存成功后会在执行计划管理列表看到执行计划的信息
[attach]105672[/attach]
[attach]105655[/attach]

注意事项:
1. 执行了测试计划,执行结果就一直是待分配
[attach]105656[/attach]
解决方法:
该问题是一个已知bug,到群文件中下载下图的文件,再将该文件替换掉。替换完重启一下服务器的TW服务,再重启本机的agent服务
[attach]105657[/attach]
如何重启agent服务?
快捷键调出任务管理器---打开服务---找到Agent代理服务---重启动此服务(如图)
[attach]105658[/attach]


在Android录制的过程中会经常用到一些操作类型,这里主要分享一下几种测试类型:
一.文本框(例:登录名/password/搜索)
操作类型:Type、Typewithoutclear
Type的执行过程:
将当前文本框内容通过选中剪切,将输入值再进行粘贴(即每次执行输入值)
Typewithoutclear的执行过程:
1、如果文本框初始状态为空,或者在为空的情况下进行输入值(不为空)的第一次执行,执行结果和Type是一致的;
2、在进行输入值(不为空)第二次或者更多次执行时会发现,Typewithoutclear操作是选中当前文本框内容,进行当前文本框内容的剪切和粘贴上一次的文本内容。(即每次反复执行同一个输入值)
这么说可能很多同学还是不理解,为了更直观的理解,大家参考下面的栗子~
举个栗子:
第一步:初始状态为空的时候,选择Typewithoutclear操作类型,编辑输入值,点击执行
[attach]105659[/attach]
第二步:查看执行结果
[attach]105661[/attach]
第三步:再次编辑输入值,点击执行,并查看执行结果
[attach]105660[/attach]
二.数据来源类型
数据来源类型主要分为5种:数据常量、全局变量、执行变量、参数化变量、随机数
在测试步骤中,很多同学不太清楚这五种数据来源类型的区别,下面是找来的资料,大家看完之后应该就会有一个清晰的认识了。
1.数据常量
就是测试步骤在执行时,只使用你设定的常量作为数据 ;
2. 参数化变量
是用来实现“用不同的数据反复执行同一个步骤”的;
3.全局变量
在步骤管理模块有单独的功能按钮来管理,可以在软件中找到;全局变量设置之后,项目中所有的测试步骤都可以引用,和编程语言中的全局变量很相似。
4.执行变量
是在执行过程中产生的变量,比如通过一些操作获取到的元素的属性值,就可以保存到执行变量中供后面的步骤使用。
5. 随机数
也属于全局变量,使用方式和全局变量相同。

在测试过程中,用的最多的应该就是数据常量和参数化变量,数据常量比较简单,所以这里重点分享参数化变量。
整体的步骤就如上面讲的一样进行操作,唯一有区别的,就是在测试步骤和测试计划的部分
1.测试步骤中选择type类型,数据源选择参数化变量,变量名和调试默认值自定义。
2.添加执行计划:
数据验证消息默认是NOK,点击“数据维护”按钮
[attach]105662[/attach]
选中本次的执行计划,右边就会出现变量的名称  
[attach]105663[/attach]
这时只要录入需要测试的登录名和密码即可
[attach]105664[/attach]
保存之后,我们会发现数据验证消息变成了OK,下面执行测试计划即可
[attach]105665[/attach]
因为我们设置了5组变量,所以在测试任务管理里面会出现5组case
[attach]105666[/attach]
但是在执行的时候会发现另外一个问题:在进行第二组测试数据时提示找不到元素,无法继续执行。
[attach]105667[/attach]
解决方法:
在测试步骤里增加退出注销账户的步骤即可;经过多次调试,最终测试步骤调整如下:
[attach]105668[/attach]
执行的时候是一组一组参数执行的,所以会发现从第一组到第二组执行,中间差不多隔了几秒钟,因此在执行的过程不建议中断

三.界面滑动(例如:启动页滑动/进度条按住滑动/左右手势滑动/上下滑动)
[attach]105669[/attach]
如果界面要录制滑动操作,需要勾选“滑动录制动作”,用鼠标在当前界面进行滑动操作,页面会获取当前的操作类型和滑动参数(也可以自己自定义)
注意:
默认的操作类型是如上图所示的“Swipe”操作,但是这里建议使用具体的滑动操作类型。例如:向上滑(Swipe Up),向下滑(Swipe Down),向左滑(Swipe Left),向右滑(Swipe Right)因为在执行的过程中发现,如果使用swipe,可能没有执行滑动的操作,但是执行结果显示是成功的。

四.上传文件
APP的上传和web的上传还是有区别的,相对而言,APP的更简单一些,只需要一连串的click的操作就可以解决了。这里的话主要分享一下web的文件(图片、Excle、Word等)上传。
举个栗子:(某云盘上传图片)
[attach]105670[/attach]
首先先了解一下UploadDialogSetFile操作的执行过程:
1. 根据文件路径,找到需要上传的文件
2.上传文件
基本的操作方法:
先录制定位上传文件的控件,再增加UploadDialogSetFile操作即可

优化建议:
1.测试步骤中的操作支持英文模糊匹配
因为常用的的操作类型都能记住首字母,这样可以提高工作效率,不用一直下拉寻找
[attach]105671[/attach]

作者: 梦想家    时间: 2017-4-27 10:42

作者: 小小小提姆    时间: 2017-4-27 10:55
梦想家 发表于 2017-4-27 10:42

每次我发帖,你好像都是第一个来顶贴的,谢谢你
作者: 梦想家    时间: 2017-4-27 11:06
小小小提姆 发表于 2017-4-27 10:55
每次我发帖,你好像都是第一个来顶贴的,谢谢你

嘻嘻每次你发帖都恰巧我在
作者: 小小小提姆    时间: 2017-4-27 11:13
梦想家 发表于 2017-4-27 11:06
嘻嘻每次你发帖都恰巧我在

谢谢支持
作者: TestWriter    时间: 2017-4-27 12:52
给楼主大大的赞!!!
作者: 小小小提姆    时间: 2017-4-27 14:15
TestWriter 发表于 2017-4-27 12:52
给楼主大大的赞!!!

谢谢小编支持
作者: wuxiaochun1987    时间: 2017-4-27 15:17
写的不错,谢谢大神
作者: 小小小提姆    时间: 2017-4-27 15:19
wuxiaochun1987 发表于 2017-4-27 15:17
写的不错,谢谢大神

感谢支持
作者: hejian5621    时间: 2017-5-2 09:43

作者: 小小小提姆    时间: 2017-5-3 09:32
hejian5621 发表于 2017-5-2 09:43

谢谢支持
作者: hejian5621    时间: 2017-5-3 11:26
什么时候写一下操作的用法
作者: 杰jie    时间: 2017-5-5 16:11
请问一下aapt是什么东西?你说的装手机驱动是装什么驱动
作者: 小小小提姆    时间: 2017-5-6 09:35
杰jie 发表于 2017-5-5 16:11
请问一下aapt是什么东西?你说的装手机驱动是装什么驱动

就是手机usb插在电脑上的时候会自动安装手机驱动
作者: 小小小提姆    时间: 2017-5-6 09:38
hejian5621 发表于 2017-5-3 11:26
什么时候写一下操作的用法

后面有时间,尽量每一种操作方式写一个栗子吧,但是发帖的时间不确定,也有可能分几次
作者: ronnie.sun    时间: 2017-5-9 10:32
TW这个工具还没用过,准备研究一下。
作者: JasonJue    时间: 2017-5-23 12:09
小小小提姆 发表于 2017-5-6 09:35
就是手机usb插在电脑上的时候会自动安装手机驱动

aapt是Android sdk里的一个工具组件,主要用它来解析apk的程序应用名称、Activity等信息。该组件主要在被测应用管理里面会常用到。
作者: 小小小提姆    时间: 2017-5-23 13:47
JasonJue 发表于 2017-5-23 12:09
aapt是Android sdk里的一个工具组件,主要用它来解析apk的程序应用名称、Activity等信息。该组件主要在被 ...

感谢大神纠正
作者: 小小小提姆    时间: 2017-7-19 10:30
ronnie.sun 发表于 2017-5-9 10:32
TW这个工具还没用过,准备研究一下。

可以研究一下的,还可以互相学习交流
作者: mahongbin    时间: 2018-2-22 15:08
学习了!谢谢大神分享
作者: DYMM    时间: 2018-3-17 07:00
学习学习
作者: 小米大米    时间: 2018-5-25 11:00
请问录制点击按钮会弹出密码框,然后输入密码的操作,选择哪些元素进行录制呢?
作者: lxj666    时间: 2018-9-1 19:06
楼主可以发下来了TW安装的相关安装包吗,谢谢!
作者: lxj666    时间: 2018-9-1 19:07
楼主可以可以发下TW安装的相关环境吗谢谢




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2