小小小提姆 发表于 2017-4-27 10:23: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.新增被测应用
只需要在程序路径中选择被测应用即可(名称、应用名称、初始窗口名称都会自动获取)

3.基本操作步骤
业务模块---被测应用管理---新增---添加程序路径---保存
4.check
保存成功后会在被测应用管理列表看到之前维护的信息

进阶2:达人1.1——达人1.2
进阶内容:新增设备管理
进阶秘籍:
1.前提
1.1将安卓设备连接电脑,确认打开开发者选项和USB调试
1.2安装手机驱动
1.3获取Android 设备的设备标识
方法一:
首先将手机以开发者模式连接至 PC(电脑安装了该型手机的驱动),然后打开
Windows 命令提示符,执行命令“adb devices”, 输出结果第二行第一列的字符串几位
设备标识(如图)

方法二:
打开手机设置 > 关于手机 > 状态信息 > 序列号,序列号内容即为设备标识,
此方法路径只针对小米手机系统,其他品牌型号的手机请参考。(如图)

2.添加设备
填写设备名称、操作系统版本、设备标识

注意事项:
有些同学可能不知道操作系统版本怎么选,通过下面的“Android系统版本与API等级对应关系表” 就一目了然了。平台的版本通过手机设置---关于手机---Android版本可以获取。
(Android官网目前被屏蔽了,想要自己登录的同学可以点击链接,获取解决方法https://zhidao.baidu.com/question/1574372881007933460.html)

3.基本操作步骤:
业务模块---设备管理---新增---添加---保存
4.check
保存成功后会在设备管理列表看到之前维护的设备信息

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


进阶4:达人1.3——达人1.4
进阶内容:新增测试对象(录制)
进阶秘籍:
1.前提
被测应用和设备管理已存在
注意:录制的时候,手机是打开的状态
2.新增测试对象
点击录制后,界面会弹出一个录制工具的对话框,点击测试设备的下拉框,选择之前已经维护好的设备,同样的点击被测应用,选择之前维护好的APP应用,点击启动。
启动成功后,系统提示“正在启动引擎,请稍后”,出现下图就可以开始录制了。

3.基本操作步骤:
业务模块---测试对象管理---录制---录制

4.录制秘籍
在录制的时候,很多同学不知道用什么操作类型,每一个操作的实际执行结果是什么样的,可能因此无法继续进行下去。当然可以在录制好之后再进行调试,但是在后期会发现这样有稍许麻烦。所以这里建议同学们可以在录制界面,设置好操作类型和一些输入值之后,直接执行,这样可以清楚的看到手机上的执行过程,其实就是把调试放在前面,这样就不用后期一个一个调试了。


进阶5:达人1.4——达人1.5
进阶内容:新增测试步骤
进阶秘籍:
1.前提
已录制好测试对象
2.新增测试步骤
3.基本操作步骤:
业务模块---测试步骤管理---新增---添加---确定
4.注意事项
4.1APP应用的第一个测试步骤要进行应用的启动,操作选择“Launch”即可

4.2根据测试对象进行每一个操作步骤的维护


4.3如果测试对象中有对页面进行校验的,可以选择“检验制定元素中是否含有制定文本”


进阶6:达人1.5——达人1.6
进阶内容:新增测试用例
进阶秘籍:
1.前提
已新增好测试步骤
2.新增测试用例
点击全部移至左边的按钮,点击确认按钮即可

3. 基本操作步骤
业务模块---测试用例管理---新增---确定
4.check
保存成功后会在测试用例管理列表看到测试用例的信息


进阶7:达人1.6——达人1.7
进阶内容:新增执行计划
进阶秘籍:
1.前提
2.新增执行计划
2.1填写计划基本信息,将待选用例模板移至到模板信息,作为用例模板

2.2填写测试目的设置
点击测试目的所需设备空白处,选择所需设备,填写名称后点击确定按钮即可

3.基本操作步骤
业务模块---执行计划管理---新增---执行
点击“执行”按钮,确定执行,系统提示计划调度成功
4.check
保存成功后会在执行计划管理列表看到执行计划的信息



注意事项:
1. 执行了测试计划,执行结果就一直是待分配

解决方法:
该问题是一个已知bug,到群文件中下载下图的文件,再将该文件替换掉。替换完重启一下服务器的TW服务,再重启本机的agent服务

如何重启agent服务?
快捷键调出任务管理器---打开服务---找到Agent代理服务---重启动此服务(如图)



在Android录制的过程中会经常用到一些操作类型,这里主要分享一下几种测试类型:
一.文本框(例:登录名/password/搜索)
操作类型:Type、Typewithoutclear
Type的执行过程:
将当前文本框内容通过选中剪切,将输入值再进行粘贴(即每次执行输入值)
Typewithoutclear的执行过程:
1、如果文本框初始状态为空,或者在为空的情况下进行输入值(不为空)的第一次执行,执行结果和Type是一致的;
2、在进行输入值(不为空)第二次或者更多次执行时会发现,Typewithoutclear操作是选中当前文本框内容,进行当前文本框内容的剪切和粘贴上一次的文本内容。(即每次反复执行同一个输入值)
这么说可能很多同学还是不理解,为了更直观的理解,大家参考下面的栗子~
举个栗子:
第一步:初始状态为空的时候,选择Typewithoutclear操作类型,编辑输入值,点击执行

第二步:查看执行结果

第三步:再次编辑输入值,点击执行,并查看执行结果

二.数据来源类型
数据来源类型主要分为5种:数据常量、全局变量、执行变量、参数化变量、随机数
在测试步骤中,很多同学不太清楚这五种数据来源类型的区别,下面是找来的资料,大家看完之后应该就会有一个清晰的认识了。
1.数据常量
就是测试步骤在执行时,只使用你设定的常量作为数据 ;
2. 参数化变量
是用来实现“用不同的数据反复执行同一个步骤”的;
3.全局变量
在步骤管理模块有单独的功能按钮来管理,可以在软件中找到;全局变量设置之后,项目中所有的测试步骤都可以引用,和编程语言中的全局变量很相似。
4.执行变量
是在执行过程中产生的变量,比如通过一些操作获取到的元素的属性值,就可以保存到执行变量中供后面的步骤使用。
5. 随机数
也属于全局变量,使用方式和全局变量相同。

在测试过程中,用的最多的应该就是数据常量和参数化变量,数据常量比较简单,所以这里重点分享参数化变量。
整体的步骤就如上面讲的一样进行操作,唯一有区别的,就是在测试步骤和测试计划的部分
1.测试步骤中选择type类型,数据源选择参数化变量,变量名和调试默认值自定义。
2.添加执行计划:
数据验证消息默认是NOK,点击“数据维护”按钮

选中本次的执行计划,右边就会出现变量的名称

这时只要录入需要测试的登录名和密码即可

保存之后,我们会发现数据验证消息变成了OK,下面执行测试计划即可

因为我们设置了5组变量,所以在测试任务管理里面会出现5组case

但是在执行的时候会发现另外一个问题:在进行第二组测试数据时提示找不到元素,无法继续执行。

解决方法:
在测试步骤里增加退出注销账户的步骤即可;经过多次调试,最终测试步骤调整如下:

执行的时候是一组一组参数执行的,所以会发现从第一组到第二组执行,中间差不多隔了几秒钟,因此在执行的过程不建议中断

三.界面滑动(例如:启动页滑动/进度条按住滑动/左右手势滑动/上下滑动)

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

四.上传文件
APP的上传和web的上传还是有区别的,相对而言,APP的更简单一些,只需要一连串的click的操作就可以解决了。这里的话主要分享一下web的文件(图片、Excle、Word等)上传。
举个栗子:(某云盘上传图片)

首先先了解一下UploadDialogSetFile操作的执行过程:
1. 根据文件路径,找到需要上传的文件
2.上传文件
基本的操作方法:
先录制定位上传文件的控件,再增加UploadDialogSetFile操作即可

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

梦想家 发表于 2017-4-27 10:42:03

:)

小小小提姆 发表于 2017-4-27 10:55:48

梦想家 发表于 2017-4-27 10:42


每次我发帖,你好像都是第一个来顶贴的:P,谢谢你

梦想家 发表于 2017-4-27 11:06:07

小小小提姆 发表于 2017-4-27 10:55
每次我发帖,你好像都是第一个来顶贴的,谢谢你

嘻嘻每次你发帖都恰巧我在

小小小提姆 发表于 2017-4-27 11:13:24

梦想家 发表于 2017-4-27 11:06
嘻嘻每次你发帖都恰巧我在

谢谢支持:loveliness:

TestWriter 发表于 2017-4-27 12:52:33

给楼主大大的赞!!!

小小小提姆 发表于 2017-4-27 14:15:27

TestWriter 发表于 2017-4-27 12:52
给楼主大大的赞!!!

谢谢小编支持:P

wuxiaochun1987 发表于 2017-4-27 15:17:37

写的不错,谢谢大神:lol

小小小提姆 发表于 2017-4-27 15:19:56

wuxiaochun1987 发表于 2017-4-27 15:17
写的不错,谢谢大神

感谢支持:P

hejian5621 发表于 2017-5-2 09:43:05

小小小提姆 发表于 2017-5-3 09:32:57

hejian5621 发表于 2017-5-2 09:43


谢谢支持:P

hejian5621 发表于 2017-5-3 11:26:14

什么时候写一下操作的用法

杰jie 发表于 2017-5-5 16:11:25

请问一下aapt是什么东西?你说的装手机驱动是装什么驱动

小小小提姆 发表于 2017-5-6 09:35:16

杰jie 发表于 2017-5-5 16:11
请问一下aapt是什么东西?你说的装手机驱动是装什么驱动

就是手机usb插在电脑上的时候会自动安装手机驱动

小小小提姆 发表于 2017-5-6 09:38:49

hejian5621 发表于 2017-5-3 11:26
什么时候写一下操作的用法

后面有时间,尽量每一种操作方式写一个栗子吧,但是发帖的时间不确定,也有可能分几次

ronnie.sun 发表于 2017-5-9 10:32:45

TW这个工具还没用过,准备研究一下。

JasonJue 发表于 2017-5-23 12:09:18

小小小提姆 发表于 2017-5-6 09:35
就是手机usb插在电脑上的时候会自动安装手机驱动

aapt是Android sdk里的一个工具组件,主要用它来解析apk的程序应用名称、Activity等信息。该组件主要在被测应用管理里面会常用到。

小小小提姆 发表于 2017-5-23 13:47:44

JasonJue 发表于 2017-5-23 12:09
aapt是Android sdk里的一个工具组件,主要用它来解析apk的程序应用名称、Activity等信息。该组件主要在被 ...

感谢大神纠正:lol

小小小提姆 发表于 2017-7-19 10:30:29

ronnie.sun 发表于 2017-5-9 10:32
TW这个工具还没用过,准备研究一下。

可以研究一下的,还可以互相学习交流

mahongbin 发表于 2018-2-22 15:08:44

学习了!谢谢大神分享
页: [1] 2
查看完整版本: TW征文|TestWriter——自动化测试达人进阶之Android客户端