自动化功能测试是帮助企业在短时间内执行大量的重复性测试任务和多终端测试任务,提供7x24小时的服务,提高测试效率和产能,消除人工执行时的结果误差,确保App在功能回归、兼容、性能等各方面的可靠性。
依托Testin云测自动化技术,以租赁端口提供移动端自动化测试Saas服务,包括对移动端真机调试、自动化测试脚本录制、自动化测试执行及测试报告展示功能。
专享运维:集Testin云测多年自动化移动设备维护经验,专业的运维团队为您的服务和设备进行专享运维,让您免去设备&平台维护的烦恼。
专业机房:针对移动设备自动化建设的专业机房,7*24小时值守,有效保障测试稳定性。
录制页面包括工具栏、映射屏、步骤列表、以及属性区。
其中工具栏包含脚本基本操作、高级函数和组件,映射屏为手机屏幕显示区域,所有生成的步骤在步骤列表中显示,属性区可以对单个步骤进行详细设置。
通过Testin Pro自动化测试系统的脚本管理页面进入iTestin Online页面,可以通过操作手机屏幕、屏幕右键操作、功能操作三种方式生成步骤,新产生的步骤插入到当前选中步骤的后面。
每次录制,必须手动启动手机,可选手机是您所在企业已开通的所有独享设备。
启用手机后直接操作手机并不会自动生成步骤,必须点击开启录制后,才会生成步骤。这样可以在修改脚本时避免所有手机屏幕操作都产生多余步骤。
开启录制后需要选择应用,可以通过应用名和版本下拉菜单进行查询,也可以通过本地上传应用进行录制。
1.脚本描述和标签:初始化时设置,或者点击工具栏的【重命名】设置脚本信息。
2.清除数据:勾选“清除数据”后,每次在脚本执行前会清除应用数据,恢复到安装初始状态。
3.安装卸载:勾选”安装/卸载“后
,每次在脚本执行前会将应用卸载;这样能保证每次应用是以第一次启动的状态运行,适用于录制程序第一次使用时的场景。
4.录制模式:
普通录制提供基于UIAutomator控件识别、图像识别和坐标轨迹三种录制模式。
普通录制的特点:
1. 普通录制过程中不对应用进行重新签名,多用于游戏的录制。
2. 控件识别率比精准录制时小些。控件识别使用UIAutomator框架,支持Android 4.1以上设备,Android 4.1以下图像识别与坐标轨迹依然可使用。
3. 支持跨应用的录制,如可以通过微博、微信分享等。
精准录制提供基于Robotium和UIAutomator的控件识别(支持WebView中的Web控件识别)、图像识别和坐标轨迹三种录制模式。
精准录制的特点:
1. 控件识别率比普通录制更高,多用于应用的录制。Android应用的控件识别使用Robotium框架,iOS应用控件识别使用的UIAutomation框架。
2. 需要被测应用与测试包签名一致,如果您未提供签名文件时,客户端会使用默认签名文件对被测应用进行重签名。建议最好提供自己的签名文件,因为如果应用是签名加固的情况下,使用默认签名对应用进行重新签名可能会导致应用的功能异常。
3. 支持跨应用的录制,如可以通过微博、微信分享等。
如果录制的步骤需要修改,点击待编辑步骤后,可以在上方工具栏进行编辑,编辑结果将自动保存。
复制/剪切:选中一个步骤,可以对步骤进行复制/剪切操作;目前只支持单步骤操作。
粘贴:将复制和剪切的步骤粘贴到选中脚本的下方。
删除:删除当前选中的步骤;目前只支持单步骤删除。
撤销删除:撤销上一次删除。
截图点:可在脚本步骤中插入截图操作,截取执行脚本当前显示页面,在测试报告中可用于测试结果的对比,辅助定位问题。
注释:将一个步骤注释掉,相当于代码中的注释,注释后的步骤将不会被执行。
录制过程中,脚本会自动将更改内容保存到服务器;
完成录制后,点击工具栏的【保存】按钮保存本次录制,系统将给本次录制创建新的版本号。
录制的脚本,可以及时回放以检查是否能够成功执行。
开启回放:点击【回放】按钮后执行回放,回放后系统会自动从第一个步骤开始执行整个脚本。
回放中:回放过程中,会高亮显示当前执行中的步骤,并在左侧显示执行界面的截图结果。
中断回放:再次点击【回放】按钮,终止当前回放。
单步回放:选中一个步骤点击单步回放后,系统将立刻执行该步骤,以验证所选步骤是否能够成功执行。这样也就不需要为了验证某一个步骤而去回放整个脚本。
从当前步骤回放:选中一个步骤点击从当前步骤回放后,系统将从当前步骤开始回放,已验证接下来的步骤能否成功执行。
启用手机并开启录制后,
操作手机屏幕时将自动生成步骤到步骤列表。
包括点击、双击、长按、左滑、右滑、上滑、下滑。
同时,可以通过屏幕右键进行上述各类操作,右键操作可以避免鼠标操作时的一些误操作。
所有操作基于控件录制,在不同尺寸、分辨率、版本的机型上均可正常执行。
1.安全键盘输入:选中整个键盘,通过安全键盘进行输入,可以更改键盘显示比例和按键相对坐标。
2.检查点:检查所选控件是否存在(断言)。
3.if(存在该控件):插入if判断该控件是否存在。
4.循环开始:插入循环逻辑。
5.性能埋点结束:在所选控件插入性能埋点收集性能数据。
6.滑动轨迹:对所选控件进行滑动操作,可以设置轨迹。
7.赋值给变量:给选中控件的变量赋值。
8.输入:右键输入框可以输入文本、变量、随机文本、随机字母、随机数字、短信验证码。属性中可以设置输入间隔时间。
9.手机按键:包括方向键、确认/播放键、音量+/-键。
10.标准滑屏:提供标准化的滑屏操作,可以控制滑屏方向、次数、速度和时间间隔。
标准滑屏对比鼠标滑屏更能减少误操作。
11.滚轮控件设值:右键某一控件,在控件内选择一滚动区域进行滚动操作,可以设置期待文本作为终点。(仅在精准录制模式下)
使用取图的方式框出被识别的区域(取图区域不能小于16*16),然后再选中区域内鼠标右键,会显示图像模式操作列表。
1. 点击、双击、长按、滑动轨迹、性能埋点结束、检查点、if、循环开始、安全键盘输入与控件操作相同,只是对象由控件变为图像。
2. 输入:图片输入是在所框图内标识的一点进行输入,输入类型与控件相同,以回车/返回确认。
3.区域监控:对比x秒前后页面的变化,多用于股票场景点击映射屏右上方的“取图”,用鼠标框中需要对比的区域,然后右键选择“区域监控”配置监控时间、对比间隔等信息后开始监控,其中对比策略=保留对比不一致时,报告中只会出现对比不一致的截图。
4.特征色检查/点击:主要针对一些具有滚动banner的程序,在其滚动过程中可以通过特征色识别来获取特定控件进行检查/点击操作。
OCR识别支持获取页面控件与图片上的文字,可以作为文字操作的辅助功能使用,比如需要识别图片中的文字的需求场景;
点击选中映射屏右上角切换录制模式开启OCR模式,开启OCR后系统会自动通过OCR方式识别界面的文字,我们可以对OCR识别文字内容进行点击、存在判断、识别文字赋值给变量、IF判断、OCR识别循环的操作。
色阶:OCR默认会对特征明显的内容进行识别,当页面文字与背景色色值相近时,可以降低色阶值来提高OCR的识别能力(识别精准度可能会有所下降),一般在录制的时候能够OCR识别的区域,在这里不需要特殊设置。
开启OCR后,由于页面文字跟背景色的对比度差异,一些文字色与背景色相近的页面可能会存在无法识别的情况,我们可以通过调节右侧的“色阶”来提高识别能力,色阶值越小(往下拉),能识别的范围越广,不过随之精准度可能会有所降低,所以并不是调的越小越好,建议按照需求将色阶调整到适当的位置。
1. 点击:与控件、图像模式相同。
2. 检查存在:开启OCR状态下右键选择【检查存在】操作,该步骤将通过OCR识别的方式获取页面文本与期望文本做比对,判断文本是否存在,如果存在则继续执行,如果不存在则会判断为执行失败。
3. 检查不存在:开启OCR状态下右键选择【检查无】操作,该步骤将通过OCR识别的方式获取页面文本与期望文本做比对,判断文本是否存在,如果不存在则继续执行,如果存在则会判断为执行失败。
4. OCR赋值给变量:通过OCR识别的方式获取页面控件中的文本赋值给变量。
5. OCRIF是否存在文本:通过OCR识别的方式获取页面控件中的文本与期望文本进行比对,如果存在则执行IF体,如果不存在则跳过IF体执行后续步骤。
6. OCR循环开始:通过OCR识别的方式获取页面控件中的文本与期望文本进行比对,如果存在则执行循环体,如果不存在则跳过循环体执行后续步骤。
iTestin Online可以在属性与功能区对脚本步骤进行编辑,在属性栏可以对控件、图像和OCR操作进行详细编辑,在功能区可以手动添加没有在录制期间进行的常用操作。
对于控件操作,属性栏可以更改控件文本、坐标、控件ID、控件class、控件xpath以及当找到多个时的选择,超时设置、滚屏查找、滚屏次数、尝试再次点击和尝试移动控件到屏幕中间。
对于图像操作,属性栏可以设置一定分辩率内的查找范围、容错率、超时设置和滚屏查找。
对于OCR操作,属性栏可以更改期待文本、查找范围、相似度、色阶、以及超时设置和滚屏查找设置。
工具栏包括一系列常用功能,可以在录制期间或录制结束后进行操作。
1. 录制:点击开始或暂停录制。
2. 回放:包含全部回放、单步回放和当前步骤回放。
3. 脚本步骤编辑:包含复制、剪切、粘贴、删除、撤销、截图点和注释。
4. 调用脚本:可以在本脚本调用其他脚本进行插入操作,可以通过搜索脚本id、描述、标签和更新人进行查询。
5. 等待
等待:插入等待时间。
等待界面稳定/持续变化:插入带有界面稳定/持续变化条件的等待。
6. 点击:包括点击文本、OCR点击文本和点击变量文本,其中点击变量文本支持偏移点击。
7. 赋值:包含对已声明的变量进行赋值、处理、数据库操作等。
赋值:与控件中的变量赋值相同。
日期赋值:可将当前的年、月、日等时间或当前时间之前/后的一段时间赋值给一个变量,在一些需要输入日期或者时间计算的情况下,都可以使用日期变量赋值。
变量处理:可以对指定变量进行截取字符串/字符、转为控件序列、只保留数字、处理金额、去掉千位分隔符、计算字符数、正则表达式处理。
Web接口请求赋值:可以用get/post方法对指定URL进行请求测试。用户可以根据接口地址和参数,得到接口返回信息,即可以自定义截取返回信息,也可赋值给变量,便于执行任务时参数化。
a)请求方法:支持get和post两种请求方法。
b)URL:接入的ip地址。
c)参数选择:提供直接输入参数和来自变量两种方式。来自变量,即参数取变量的值。
数据库操作:用户可以根据私有云后台配置好的数据库来操作数据库的信息,并且可以将结果信息赋值给变量,使得变量赋值更加丰富、更加灵活。如将数据库用户表中的信息赋值给某变量,然后登录输入用户名时,可以直接输入该变量。
数据库操作支持Select&Update&Delete。
a)数据库:选择需要查询的数据类型以及数据名称。
b)Sql语句:您需要自己输入要查询的数据库语句。目前只支持select语句且只支持4个字段的查询(select与from只能有3个逗号)。您可通过’$变量‘使用变量的值。
c)执行:您输入完Sql语句,便可点击“执行”。这样操作结果便展示在Sql结果列表中。
d)Sql结果:用来展示Sql语句执行结果信息。
e)变量赋值:将结果信息赋值给变量,默认显示一个变量,最大可添加至4个。
短信验证码变量赋值。
随机文本/数字/字母/中文变量赋值。
8. IF判断:即带判断条件的脚本组。当判断条件成立时执行IF逻辑内的操作步骤;当判断条件不成立时,则跳过IF逻辑内的操作步骤,执行后续步骤。判断条件可以是文本、控件、图片、变量值、表达式等。
9. for循环:for循环可以带判断条件也可以无条件执行循环次数操作。当有判断条件时,如果为true,循环体被执行;如果为false,循环终止,开始执行循环体后面的语句。每执行一次循环后更新循环控制变量。
10. 检查点:即检查控件、文本是否存在或是否满足条件。当执行失败时,根据选择的下一步操作进行处理。
检查包名可以检查包名是否存在。
检查界面持续变化:检查判断界面持续变化,可以设定间隔时间、持续次数、判断方式、相似度和超时时间。
11. 其他:包括一些不常用功能。
开启X5调试:开启X5内核调试模式,针对使用x5
webview的android设备。
段落描述:段落可以将一系列步骤分割开来,加入用户的描述可以更直观地表现出脚本步骤的联系和层次感。
Monkey测试:提供在当前应用下的Monkey测试,可自定义测试时间,最长测试时间为8小时,高级设置中还提供了随机序列和事件间隔等设置,您可以根据需要填写。
安装应用:从本地选择一个安装包,并且可以配置安装策略。
启动应用:选择需要启动应用的包名即可完成启动,当手机处于录制状态会自动获取手机下安装的包。
卸载/关闭应用、清理应用数据与启动应用使用逻辑相同。
忽略/监听崩溃:插入忽略/监听崩溃脚本步骤。
性能埋点:当我们需要获取某个/组动作的具体性能时,可在脚本步骤中插入性能埋点,首先在我们需要开始计时的位置插入性能埋点-开始。
我们可以对性能埋点-开始进行命名,来帮助我们标识出他的用途,起点的名称仅用做步骤中的标识,不会按照该名称进行上报和统计。
在我们需要结束统计的步骤,插入性能埋点-结束,来终止本次统计。需要选择对应的开始埋点并确定结束的条件(某个控件的出现)以及埋点上报的名称。
文本监听:查找特定文本,可以填写依赖文本来缩小查找范围。
取消文本监听:插入取消文本监听,设置查找终点。
业务检查点开始/结束:可以插入业务检查点开始,并在需要检查的业务步骤结尾插入结束,设置下一步操作。
Try/Catch:插入测试起点和终点进行异常测试,并可以对异常进行处理。
继续/暂停监控系统框:可以控制对系统框的监控。
步骤编辑完成后可以将完成的脚本保存到云。
变量声明:变量隶属于脚本,全局变量具备脚本间的传递性,局部变量不具备脚本间传递性。在参数化时全局变量只能在全局表中被一次赋值,局部变量可在每个不同脚本表中被多次赋值(每个脚本中的局部变量被参数化为不同值)。
设置:可以设置超时时间。
重命名:同设置脚本信息,可以在任何时间进行操作。
保存:保存脚本并结束录制,可以对脚本增加更新描述便于后续维护。
退出后在私有云脚本管理页面就可以看到刚刚录制的脚本。
1. 列表内容:展示用户所在项目组下的所有应用包。
2. 其他功能:上传新应用。
3. 筛选条件:同应用列表。
1. 默认显示选中应用的关联脚本,如图
2. 可选择脚本的其他历史版本进行提测,如图
3. 支持脚本排序、删除;支持脚本运行前清除应用数据或者卸载安装应用,如图
4. 支持批量添加,支持脚本组选择。
1. 设备筛选:可根据品牌、系统版本、屏幕大小、分辨率、内存、CPU主频、空闲状态进行筛选。
2. 实时显示设备占用状态。
3. 支持批量添加所有设备。
1. 完善信息页根据任务类型展现不同的输入信息。
2. 功能测试:
a) 任务描述(必填)
b) 脚本参数:
i. 输入项显示规则:当已选脚本中有参数使用时显示。
ii. 参数填写规则:填写参数不仅支持不同设备同一参数指定不同的值,而且还支持同一设备多次运行一个脚本情况下,同一参数指定不同的值。如果填写了参数则运行时用填写的参数,如果没有填写则执行任务时用默认值,如某一脚本需要在不同设备执行或者时使用不同的账号和密码等。
c) 执行选项:普通执行、快速执行。(每个脚本只执行一次,脚本随机分配到某一设备上执行,注意:待测脚本相互存在依赖关系时,请谨慎使用)
d) 脚本重测:任意步骤出错时,将会对该步骤所在的脚本进行重测。重测次数可配置。
e) 执行时间:立即执行、定时执行。(可选择具体日期或者每天固定时间执行)
f) 网络环境:
i. 默认选wifi,可切换成sim卡信号或者模拟网络。
ii. sim信号网络执行时,如果已选设备未插入sim卡则使用wifi网络。
iii. 模拟网络只有当后台系统配置完成才会出现。
iv. 网络环境在功能测试与兼容测试为单选,只可使用一种网络环境。
g) 报文截取: 默认OFF状态,隐藏参数输入框,切换到ON状态时,默认展开1行输入框,IP/域名+端口(IP/域名不可为空,本行不可删除,可增加最大10个输入框)。
h) 通知:是否短信通知、是否邮件通知、通知人员选择。
i) 其他:待测app-icon+版本+系统类型、测试脚本列表、测试设备列表。
1. 列表信息:应用名称(icon+名称+版本+系统类型)、渠道名称、任务描述、任务类型、创建人、创建时间、执行时间、状态。
2. 检索条件:应用名称+包名、应用版本、渠道名称、系统类型、任务描述、创建人。
3. 列表分为两个Tab页
a) 实时任务:
i. 展示正在运行或者已完成运行的任务。
ii. 执行中任务可终止。
iii. 定时任务执行时会在实时任务tab中创建一条记录,且在任务类型栏有图标标识该任务是由定时任务触发的。
b) 定时任务:展示执行策略=定时任务的任务列表,任务可编辑。
4. 实时任务重测:
a) 支持任务重测,点击后,进入提测流程最后一步-完善信息页,且带入所有任务的已选信息。
b) 用户可点击上一步进行任务信息调整。
c) 重测任务相当于重新提测,会新生成一个任务ID。
5. 定时任务操作:
a) 修改:只可修改执行时间。
b) 立即执行:立即发起该任务,对已过期任务同样有效。
c) 暂停/恢复:暂停/恢复定时任务的发起。
d) 删除:逻辑删除定时任务。
1. 功能报告概述页包含任务基本信息及统计图表,并从四个维度展现统计内容。(脚本执行情况、设备执行情况、脚本截图横向对比、性能埋点)
2. 任务基本信息:应用ICON、应用版本、build号、包名、渠道名称、创建人、创建时间、耗时、完成时间、任务描述、网络环境。
3. 支持报告分享:无登陆链接分享。
4. 统计图表:执行状态(已完成、未完成)、脚本列表结果分布。(通过、未通过、未执行)
5. 脚本列表
a) 内容:脚本ID、脚本描述、已通过设备数、未通过设备数、未执行设备数。(超时、取消、等待、执行中均按未执行处理)
b) 点击事件:点击设备数量,跳转至设备列表Tab,带入过滤条件。(脚本ID&设备状态)
6. 终端列表
a) 内容:设备名称、系统版本、分辨率、执行起始时间、耗时、完成时间、状态,错误原因。
b) 操作:终止(执行中设备可终止)、观察。(执行中设备可观察)
7. 截图对比:
a) 以脚本步骤维度对比每个设备的截图
1. 功能报告详情页展现单个设备执行脚本情况概述,内容包含脚本执行概况、脚本执行步骤,脚本执行详情。
2. 脚本执行概况包含
a) 任务描述。
b) 通过情况:所有脚本均执行通过才按通过统计。
c) 执行总耗时。
d) 脚本通过状态及数量:分别展示已通过/未通过/未执行的脚本数量。
e) 脚本出错的错误信息。
f) 设备信息:点击可查看设备详细信息。
g) 性能数据:CPU占有率、内存占有率、FPS、流量消耗、电池温度。
3. 脚本执行步骤展示:首先展示任务初始化的步骤,然后依次展示所有脚本的ID、脚本描述及状态;点击任意脚本展开该脚本的所有步骤 ,且对所有步骤进行状态(通过/未通过/未执行)标注。
4. 测试结果:点击页面左侧的任意脚本步骤,右侧显示该步的执行结果,其内容包含:
a) 步骤描述。
b) 执行状态:通过、未通过、未执行。(不予显示)
c) 执行耗时:单位“毫秒”。
d) 执行截图、预期截图。
e) monkey参数:当脚本步骤中存在monkey中显示。
f) 埋点信息:当脚本步骤中存在性能埋点中显示。
g) 出错重测信息:支持展示每一次错误信息。
5. LOG:概述TAB栏日志显示全部日志且坐标点置顶,脚本详情TAB栏日志显示全部日志且坐标为步骤对应日志坐标。
3.1.1.
同一个应用,新版本的安装包是否可以选择旧版本的安装包的脚本进行测试?
A:可以。提测选择脚本页可以切换筛选条件中的应用版本到旧版本,点击查询按钮即可显示旧版本安装包的脚本,正常添加选择即可提测。
Tips:使用此方式提测前,请确认此部分提测脚本可在新版本安装包上跑通。
3.1.2.
数据源一般用于哪些场景?
A:主要用于同一批脚本在多台设备上执行测试时,账号密码之类的数据需要使用不同值参数化的场景。目前也可用于一个脚本需要在一台设备上执行多次,脚本中某个数据每次执行需要使用不同的值这种场景。
3.1.3.
是否支持异常状况处理机制?
A:支持。目前系统弹框类支持默认自动点击,可在脚本中录制是否监控系统弹框步骤,自由选择是否监控点击;监听功能(包括文本监听和控件监听)可监控脚本执行中某一步或全脚本中出现的应用内弹框等;脚本执行时的异常状态支持try-catch(录制中称为业务检查点)自由选择脚本执行出错时如何处理。
3.1.4.
正在执行中的任务删除后,设备是否会停止执行此任务?
A:不会。删除任务没有停止任务的功能,设备会执行完任务后才被释放,应先停止任务,再删除任务。
3.2.1.
安全键盘输入功能如何使用?
A:在键盘存在的情况下选择键盘区域控件或者键盘区域图片右键选择安全键盘输入功能;点击数字键盘或者字母键盘识别位置,随机点击列表中的坐标,确认红色的坐标点在键盘上的位置与识别到的字母或者数字相符;点击+按钮添加一些特殊的键盘操作,比如收起键盘,在键盘区域点击收起键盘按钮生成坐标点;在最上方选择输入的文本或者变量,在最下方选择完成输入后的操作,比如收起键盘。
Tips:安全键盘输入步骤执行成功的前提是存在键盘,所以如果进入输入界面时不会自动调起键盘,需要在安全键盘输入步骤前录制点击输入框的步骤,以调起键盘。
3.2.2.
是否支持获取短信验证码?
A:支持。目前支持三种方式获取短信验证码:(1)手机设备中装备有效SIM卡,右键输入框选择输入短信验证码功能可读取手机收到的短信验证码;(2)通过提供的专有的短信验证码web接口服务请求获取最新短信验证码,赋值后进行输入;(3)连接提供的数据库,从数据库中查询读取最新短信验证码,赋值后进行输入。
3.2.3.
是否支持连接其他类型的数据库?
A:支持。目前我们支持连接MySQL数据库,Oracle数据库。默认支持连接MySQL数据库,如需连接Oracle数据库,请联系您的专属技术支持。
3.2.4. 控件选取优先原则。
A:建议优先选择存在控件id的控件,其次选择存在控件文本的控件;为保证存在控件id或控件文本,建议选择更小的文本类控件,尽量不选取图标类控件。
若界面控件既无控件ID也无控件文本,多台设备执行脚本的情况下可考虑采取其它录制方式,如偏移点击,图像识别,OCR识别,坐标录制等。
3.2.5.
是否支持微信公众号小程序录制测试?
A:支持。点击【其他】-【开启X5】后,录制其他后续步骤即可