iTestin Online使用手册
简介
云测测试全新AI测试产品iTestin,将AI智能化作为测试技术升级的重要推力,把AI 和机器学习技术等领先技术落地于测试行业,进一步提升产品的智能化水平,从自动化测试、增强人工测试人员的能力等方面革新软件测试工作,应用AI技术为行业赋能。iTestin推出业界首款基于自然语言的脚本录制功能,支持用自然语言的交互方式,完成测试自动化操作,全面提升测试产品的易用性和自动化效率,通过人工智能技术,大大降低脚本调试和脚本维护成本。
降低操作门槛:
自然语言录入文字即可生成自动化脚本,通过基于自然语言的脚本录制功能,测试人员只需要用自然语言即可实现测试编程,只需在界面中输入点击、等待、检查、长按、输入等自然语言的文字描述,后台的AI就能准确实时的在真机上进行完整无误的操作和相关指令,完成测试自动化操作。 iTestin这种全新的自然语言脚本大幅降低了脚本录制的难度,也极大提升了产品易用性和脚本维护效率。
降低脚本维护成本:
脱离控件方式,相同流程下,实现一套脚本跨平台使用,Testin云测通过只依赖UI界面截图的OCR和图标识别技术,使得Android端和iOS端使用同一套UI自动化测试脚本成为可能,实现跨平台脚本能力,大大降低脚本维护成本。
降低脚本调试成本:
无需对控件信息进行调试,提升跨终端执行通过率,通过AI深度学习算法使自动化脚本越来越“聪明”,采用智能的、自适应的测试自动化方案让自动化变得更加“智能”。
界面概述
录制页面包括工具栏、映射屏、步骤列表、属性。
其中工具栏包含脚本基本操作和高级函数,映射屏为手机屏幕显示区域,所有生成的步骤在步骤列表中显示,属性包含了脚本录制中需要用到的组件。
开始录制
通过Testin Pro自动化测试系统的脚本管理页面进入iTestin Online页面,可以通过操作手机屏幕、屏幕右键操作、功能操作三种方式生成步骤,新产生的步骤插入到当前选中步骤的后面。
操作流程
启动手机并开启录制
每次录制,必须手动启动设备,可选设备是您所在企业已开通的所有独享设备。
启用设备后直接操作设备并不会自动生成步骤,必须点击开启录制后,才会生成步骤。这样可以在修改脚本时避免所有手机屏幕操作都产生多余步骤。
选择录制应用
开启录制时需要选择应用,可以通过应用名和版本下拉菜单进行查询,也可以通过创建应用本地上传应用包进行录制。
设置脚本信息
- 脚本描述和标签: 初始化时设置,或者点击工具栏的【重命名】设置脚本信息。
- 清除数据: 勾选“清除数据”后,每次在脚本执行前会清除应用数据,恢复到安装初始状态。
- 安装卸载: 勾选”安装/卸载“后,每次在脚本执行前会将应用卸载;这样能保证每次应用是以第一次启动的状态运行,适用于录制程序第一次使用时的场景。
编辑脚本步骤
如果录制的步骤需要修改,点击待编辑步骤后,可以在上方工具栏进行编辑,编辑结果将自动保存。
- 目前支持Ctrl连选进行多步骤编辑操作。
- 复制/剪切:选中一个步骤,可以对步骤进行复制/剪切操作;目前只支持单步骤操作。
- 粘贴:将复制和剪切的步骤粘贴到选中脚本的下方。
- 删除:删除当前选中的步骤。
- 撤销:是撤销删除,撤销上一次删除操作。
- 注释:将一个步骤注释掉,相当于代码中的注释,注释后的步骤将不会被执行。
保存脚本
录制过程中,脚本会自动将更改内容保存到服务器;
完成录制后,点击工具栏的【保存】按钮保存本次录制,系统将给本次录制创建新的版本号。
回放及调试
录制的脚本,可以及时回放以检查是否能够成功执行。
回放有三种回放模式,全部回放,单步回放,从当前回放。默认为全部回放,下拉选择回放模式后点击上方回放按钮开始回放。
- 全部回放: 默认全部回放模式下,点击回放按钮后选择脚本初始化策略执行回放,回放后系统会自动从第一个步骤开始执行整个脚本。
- 回放中: 回放过程中,会高亮显示当前执行中的步骤,并在左侧显示执行界面的截图结果。
- 中断回放: 再次点击回放按钮,终止当前回放。
- 单步回放: 选中一个步骤点击单步回放后,系统将立刻执行该步骤,以验证所选步骤是否能够成功执行。这样也就不需要为了验证某一个步骤而去回放整个脚本。
- 从当前回放: 选中一个步骤点击从当前步骤回放后,系统将从当前步骤开始回放,以验证接下来的步骤能否成功执行。
==注释:5.7.0版本以后回放调用脚本,会打开新的页签展示调用脚本内容,回放完成后,会关闭对应调用脚本页签,如在回放前已打开调用脚本或在回放过程中点击停止回放则不会关闭该调用脚本页签==
控件相关的指令
简单屏幕操作
- 启用设备并开启录制后, 操作设备屏幕时将自动生成步骤到步骤列表。
- 包括点击、双击、长按、左滑、右滑、上滑、下滑。
- 同时,可以通过屏幕右键进行上述各类操作,右键操作可以避免鼠标操作时的一些误操作。
- 所有操作基于控件录制,在不同尺寸、分辨率、版本的机型上均可正常执行。
屏幕右键操作
检查点:检查所选控件是否存在(断言)。
if(存在该控件):插入if判断该控件是否存在。
循环开始:插入循环逻辑。
性能埋点结束:在所选控件插入性能埋点收集性能数据,即出现该控件时结束性能数据采集。
赋值给变量:把选中控件的值赋给变量。
滚轮控件设值:右键某一控件,在控件内选择一滚动区域进行滚动操作,可以设置期待文本作为终点。
操作:对所选控件进行点击、双击、长按、上滑、下滑、左滑、右滑。滑动轨迹,标准滑屏操作操作。
滑动轨迹:对所选中控件执行可控滑屏操作。
标准滑屏:提供标准化的滑屏操作,可以控制滑屏方向、次数、速度和时间间隔。标准滑屏对比鼠标滑屏更能减少误操作。
电视盒子:模拟电视遥控器按键,可模拟上、下、左、右、确认/播放、音量+、音量-等操作。
输入:右键输入框可以输入文本、变量、随机文本、随机字母、随机数字、短信验证码、模拟键盘输入、.安全键盘输入。
短信验证码输入:支持对短信中关键字获取指定短信并截取验证码进行输入操作。
安全键盘输入:选择整个键盘控件,通过安全键盘进行输入,可以控制键盘显示比例来更改按键坐标。
图像模式
点击映射屏右上角录制模式切换为图像模式,使用取图的方式框出被识别的区域(取图区域不能小于16\*16),然后在选中区域内鼠标右键,会显示图像模式操作列表。
点击、双击、长按、滑动轨迹、性能埋点结束、检查点、if(存在该图像)、循环开始、安全键盘输入
- 与控件操作相同,只是对象由控件变为图像。
- 图像滑动轨迹功能支持速度倍数调整,及单双指操作。
输入: 图片输入是在所框图内标识的一点进行输入,输入类型与控件相同,以回车/返回确认。
区域监控: 对比x秒前后页面的变化,多用于股票场景点击映射屏右上方的“取图”,用鼠标框中需要对比的区域,然后右键选择“区域监控”配置监控时间、对比间隔等信息后开始监控,其中对比策略=保留对比不一致时,报告中只会出现对比不一致的截图。
特征色识别: 包括特征色检查和特征色点击两个功能,主要针对一些具有滚动banner的程序,在其滚动过程中可以通过特征色识别来获取特定控件进行检查/点击操作。
坐标模式
在进行组件/混合录制的时候,也可以进行坐标操作,控件模式下,按住Alt,操作映射屏时,生成的步骤为坐标模式。
坐标模式也可进行屏幕右键操作,支持双击,长按,输入文本、账号、密码、变量、随机文本、随机字母、随机数字以及回车操作。
- 坐标模式下的输入,内容将显示在存在光标的输入框里。
AI赋能自动化测试
功能简介
AI-自动化测试是基于NLP语义解析、OCR、图像识别能力,进行UI自动化测试。
AI-自然语言输入模式
用户可以在界面右侧脚本内容展示区域内,在空白步骤处使用鼠标【双击】或点击键盘【回车】进行AI-自然语言输入
在输入时会有语法联想,用户可直接选择需要的语法,将目标对象、方位词进行修改即可。
语法规则说明
目前共支持13大类语法操作。
点击
- 点击 目标对象
- 点击 ${变量名称}
- 点击 第x个 目标对象
- 点击 目标对象 上/下/左/右侧 目标对象
- 点击 目标对象 上/下/左/右侧 第x个 目标对象
- 偏移点击 目标对象
- 点击HOME键
- 点击返回键
- 点击屏幕任意区域
双击
- 双击 目标对象
- 双击 ${变量名称}
- 双击 第x个 目标对象
- 双击 目标对象 上/下/左/右侧 目标对象
- 双击 目标对象 上/下/左/右侧 第x个 目标对象
长按
- 长按 目标对象
- 长按 ${变量名称}
- 长按 第x个 目标对象
- 长按 目标对象 上/下/左/右侧 目标对象
- 长按 目标对象 上/下/左/右侧 第x个 目标对象
等待
- 等待x秒
输入
- 输入 预期内容
- 输入 ${变量名称}
- 在 目标对象 输入 预期内容
- 在 目标对象 输入 ${变量名称}
- 在 目标对象 上/下/左/右侧 输入预期内容
- ß在 目标对象 上/下/左/右侧 输入 ${变量名称}
- 在 目标对象 安全键盘输入 预期内容
- 在 目标对象 安全键盘输入 ${变量名称}
滑动
- 向 上/下/左/右 滑动
- 向 上/下/左/右 滑动,直到 目标对象 出现
- 滑动 目标对象A 到 目标对象B
手势密码
- 手势密码 九宫格密码图形对应的数字
如:手势密码3791
- 手势密码 九宫格密码图形对应的数字
如:手势密码3791
安全键盘 安全键盘输入 预期内容
- 安全键盘输入 ${变量名称}
变量赋值 以下所有语法都需要找到固定锚点,也就是第一个目标对象:
- 将目标对象上/下/左/右侧的文字,赋值给${变量名称}
- 将目标对象上/下/左/右测的第X个文字,赋值给${变量名称}
- 将${变量名称} 上/下/左/右侧的文字,赋值给${变量名称}
- 将第X个目标对象上/下/左/右侧的第X个文字,赋值给${变量名称}
- 将${变量名称}上/下/左/右侧的第X个文字,赋值给${变量名称}
检查...存在
- 检查目标对象存在
- 检查目标对象A&目标对象B存在
- 检查目标对象A&目标对象B&目标对象C存在
- 检查目标对象上/下/左/右侧目标对象存在
- 检查目标对象上/下/左/右侧第X个目标对象存在
检查...不存在
- 检查目标对象不存在
- 检查目标对象A&目标对象B不存在
- 检查目标对象A&目标对象B&目标对象C不存在
- 检查目标对象上/下/左/右侧目标对象不存在
- 检查目标对象上/下/左/右侧第X个目标对象不存在
如果...存在,则点击...
- 如果目标对象存在,则点击目标对象
如果...不存在,则点击...
- 如果目标对象不存在,则点击目标对象
属性语义说明
目前支持在上述语法最后增加自定义超时时间设置,如不进行单独设置,则按默认超时时间30秒进行执行
- 超时时间
x秒
自定义滑动
选中滑动步骤后,鼠标右键点击【自定义滑动】,可调整滑动位置和滑动力度(长短)
自定义操作区域
选中非滑动或等待步骤以外的其他步骤,鼠标右键点击【自定义操作区域】,可调整对目标对象查找范围
==注释:考虑到跨分辨率执行,框选区域范围不要过于严丝合缝。==
AI-映射屏操作模式
开通AI功能的客户,在新建脚本后,可以看到AI录制模式。在这个模式下,用户可以直接点击屏幕识别的文本,会在右侧生成对应自然语言的语法步骤。
区域变量赋值
为覆盖所有赋值场景,客户可通过框选区域,对区域内需要赋值内容使用字符串或正则表达式进行赋值数据查找
- 操作步骤:
- 点击设备栏的框选区域按钮,进入框选模式
- 在【映射屏】框选要进行赋值的区域(考虑到分辨率问题,需要框选的区域相对宽泛一些)
- 在框选区域点击【鼠标右键-选择区域变量赋值】
- 在弹框选择变量、赋值方式(根据赋值方式输入相关内容,目前支持正则和字符串两种查找方式)
- 进行【单步回放】验证是否获取预期内容
==注释:该功能只有在AI模式下才能使用==
OCR模式
OCR识别支持获取页面控件与图片上的文字,可以作为文字操作的辅助功能使用,比如需要识别图片中的文字的需求场景;
点击选中映射屏右上角切换录制模式开启OCR模式,开启OCR后系统会自动通过OCR方式识别界面的文字,我们可以对OCR识别文字内容进行点击、存在判断、识别文字赋值给变量、IF判断、OCR识别循环的操作。
色阶:OCR默认会对特征明显的内容进行识别,当页面文字与背景色色值相近时,可以降低色阶值来提高OCR的识别能力(识别精准度可能会有所下降),一般在录制的时候能够OCR识别的区域,在这里不需要特殊设置。
开启OCR后,由于页面文字跟背景色的对比度差异,一些文字色与背景色相近的页面可能会存在无法识别的情况,我们可以通过调节右侧的“色阶”来提高识别能力,色阶值越小(往下拉),能识别的范围越广,不过随之精准度可能会有所降低,所以并不是调的越小越好,建议按照需求将色阶调整到适当的位置。
- 点击:与控件、图像模式相同。
- 检查存在:开启OCR状态下右键选择【检查存在】操作,该步骤将通过OCR识别的方式获取页面文本与期望文本做比对,判断文本是否存在,如果存在则继续执行,如果不存在则会判断为执行失败。
- 检查不存在:开启OCR状态下右键选择【检查无】操作,该步骤将通过OCR识别的方式获取页面文本与期望文本做比对,判断文本是否存在,如果不存在则继续执行,如果存在则会判断为执行失败。
OCR赋值给变量:通过OCR识别的方式获取页面控件中的文本赋值给变量。
OCRIF是否存在文本:通过OCR识别的方式获取页面控件中的文本与期望文本进行比对,如果存在则执行IF体,如果不存在则跳过IF体执行后续步骤。
OCR循环开始:通过OCR识别的方式获取页面控件中的文本与期望文本进行比对,如果存在则执行循环体,如果不存在则跳过循环体执行后续步骤。
多脚本编辑
Online V5.7.0版本开始支持开个多个脚本同时编辑
打开新脚本
- 点击页签右侧+号,点击【打开新脚本】,输入脚本名称(必填)和标签内容(可选填),选择保存位置
打已有脚本
- 点击页签右侧+号,点击【打开已有脚本】,选择对应文件夹下的脚本名称
生成调用脚本
- 进行多选后,右键点击【生成调用脚本】,输入脚本名称(必填)和标签内容(可选填),选择保存位置,点击确定,当前脚本内容变更为新生成的调用脚本。
- Windows:支持shit+鼠标左键
- Mac:+鼠标左键
步骤编辑
iTestin Online可以在属性与功能栏对脚本步骤进行编辑,在属性栏可以对控件、图像和OCR操作进行详细编辑,在功能栏可以手动添加没有在录制期间进行的常用操作。
属性
对于控件操作,属性栏可以更改控件文本、坐标、控件ID、控件class、控件xpath以及当找到多个时的选择,超时设置、滚屏查找、滚屏次数、尝试再次点击和尝试移动控件到屏幕中间。
对于图像操作,属性栏可以设置一定分辩率内的查找范围、容错率、超时设置和滚屏查找。
容错率即为精准度指标,容错率越小,精准度越高。
对于OCR操作,属性栏可以更改期待文本、查找范围、相似度、色阶、以及超时设置和滚屏查找设置。
对于电视盒子操作,属性栏可以更改按键名称,执行方式,延迟时间,持续时间。
功能栏
功能栏包括一系列常用功能,可以在录制期间或录制结束后进行操作。
截图点:将当前映射屏显示内容截屏。
调用脚本:可以在本脚本调用其他脚本进行插入操作,可以通过搜索脚本id、描述、标签和更新人进行查询。
等待:插入等待时间,等待界面稳定及等待界面持续变化步骤。
等待界面稳定:等待所有控件都刷新出来后再尝试操作,可以设置间隔时间、持续次数、判断方式、相似度和超时时间。
等待界面持续变化:
点击操作、if判断、for循环、:与控件/OCR操作类似,都是在脚本中插入逻辑控制操作。
赋值:使得脚本输入数据更加灵活且更好地执行结果的判断。
赋值:表达式赋值,对变量进行处理赋给另外一个变量
日期赋值:可将当前的年、月、日等时间或当前时间之前/后的一段时间赋值给一个变量,在一些需要输入日期或者时间计算的情况下,都可以使用日期变量赋值。
变量处理:可以对指定变量进行截取字符串、只保留数字、正则替换、金额处理、去掉千位分隔符处理。
- web接口请求赋值:可以用get/post方法对指定URL进行请求测试。用户可以根据接口地址和参数,得到接口返回信息,即可以自定义截取返回信息,也可赋值给变量,便于执行任务时参数化。支持自定义header。
- 请求方法:支持get和post两种请求方法。
- URL:接入的ip地址。
- 参数选择:提供直接输入参数和来自变量两种方式。来自变量,即参数取变量的值。
- web接口请求赋值:可以用get/post方法对指定URL进行请求测试。用户可以根据接口地址和参数,得到接口返回信息,即可以自定义截取返回信息,也可赋值给变量,便于执行任务时参数化。支持自定义header。
数据库操作:用户可以根据管理平台-数据库管理中配置好的数据库来操作数据库的信息,并且可以将结果信息赋值给变量,使得变量赋值更加丰富、更加灵活。如将数据库用户表中的信息赋值给某变量,然后登录输入用户名时,可以直接输入该变量。 数据库操作支持Select&Update&Delete。
- 数据库:选择需要查询的数据类型以及数据名称。
- Sql语句:您需要自己输入要操作的数据库语句。目前只支持4个字段的查询(select与from只能有3个逗号)。您可通过’$变量‘使用变量的值。
- 执行:您输入完Sql语句,便可点击“执行”。这样操作结果便展示在Sql结果列表中。
- Sql结果:用来展示Sql语句执行结果信息。
- 变量赋值:将结果信息赋值给变量,默认显示一个变量,最大可添加至4个。
短信验证码变量赋值:从设备接收短信中取出关键词指定短信内容赋值给变量。
随机文本/数字/字母/中文赋值:集成了四种随机赋值的功能,可控制长度。
检查点:一系列检查操作。
检查包名:检查包名是否存在。
检查变量文本:检查变量文本是否存在,断言第几次检查界面是否存在多个变量文本。
检查界面持续变化:检查当前界面是否持续变化,可设置检查间隔时间,持续次数,判断方式,相似度。
检查满足表达式条件:检查满足某一表达式条件是否为真
OCR检查文本:OCR模式检查目标文本是否存在
其它:其它未归类功能。
开启X5:开启X5内核调试模式,针对使用x5 webview的android设备。
段落描述:段落可以将一系列步骤分割开来,加入用户的描述可以更直观地表现出脚本步骤的联系和层次感。
Monkey测试:提供在当前应用下的Monkey测试,可自定义测试时间,最长测试时间为8小时,高级设置中还提供了随机序列和事件间隔等设置,您可以根据需要填写。
应用操作:录制工具支持在自动化脚本任意一个步骤中对应用的安装&启动&卸载&停止&清除数据进行相应操作,用以适配多应用测试、测试默认应用、应用卸载测试等不同的场景和终端;
安装应用:从本地选择一个安装包,并可配置是否覆盖安装策略
启动应用:输入需要启动的应用的包名即可完成启动,当手机处于录制状态会自动获取手机下安装的包
卸载应用:输入需要卸载的应用的包名即可完成卸载,当手机处于录制状态会自动获取手机下安装的包
清理应用数据:输入需要清除数据的应用的包名即可完成清除数据,当手机处于录制状态会自动获取手机下安装的包
关闭应用:输入需要关闭的应用的包名即可完成关闭,当手机处于录制状态会自动获取手机下安装的包
忽略/监听崩溃:插入忽略/监听崩溃脚本。
性能埋点:当我们需要获取某个/组动作的具体性能时,可在脚本步骤中插入性能埋点,首先在我们需要开始计时的位置插入性能埋点-开始。
我们可以对性能埋点-开始进行命名,来帮助我们标识出他的用途,起点的名称仅用做步骤中的标识,不会按照该名称进行上报和统计。
在我们需要结束统计的步骤,插入性能埋点-结束,来终止本次统计。需要选择对应的开始埋点并确定结束的条件(某个控件的出现)以及埋点上报的名称。
文本监听:用于监听一些不定时出现的文本弹框,当出现时能及时进行处理。
- 取消文本监听:取消对指定文本的监听,需要在被监听步骤前插入。
- 取消文本监听:取消对指定文本的监听,需要在被监听步骤前插入。
业务检查点:业务检查点步骤为异常处理步骤,如果监控范围内的步骤发生异常,可以选择忽略异常继续执行、结束当前脚本和执行某一条特定的脚本; 选择”忽略异常,继续执行”时,会继续执行对应的“业务检查点结束”后面的步骤,但是脚本结果显示执行未通过,会计入任务未通过结果中进行统计。 如果选择“结束当前脚本”则会立即结束脚本执行,不再执行后续步骤;如果选择“处理脚本”,会在发生异常后执行所选择的脚本。另外,业务检查点步骤在报告中可以通过List查看当条脚本下各个检查点的执行结果和错误信息。
- try-catch: 同业务检查点。
但是,当选择”忽略异常,继续执行”时,会继续执行对应的“t结束”后面的步骤,出错步骤显示报错,脚本结果显示执行通过,会计入任务通过结果中进行统计。
- try-catch: 同业务检查点。
但是,当选择”忽略异常,继续执行”时,会继续执行对应的“t结束”后面的步骤,出错步骤显示报错,脚本结果显示执行通过,会计入任务通过结果中进行统计。
系统框监控: 针对安装应用时的弹窗,继续监控系统框默认点击继续,完成应用安装。暂停监控系统框对弹窗不做操作。
结束录制
步骤编辑完成后可以将完成的脚本保存。
设置: 可以设置默认等待时间和超时时间。
变量声明: 变量隶属于脚本,全局变量具备脚本间的传递性,局部变量不具备脚本间传递性。在参数化时全局变量只能在全局表中被一次赋值,局部变量可在每个不同脚本表中被多次赋值(每个脚本中的局部变量被参数化为不同值)。
- 添加全局变量可以看到声明过的变量。
- 全局变量名称必须全部为大写,可新增、编辑、删除。
- 局部变量首字母小写其他无限制,可新增、编辑、删除。
重命名: 同设置脚本信息,可以在任何时间进行操作。
保存: 保存脚本并结束录制,可以对脚本增加更新描述便于后续维护。
退出后在私有云脚本管理页面就可以看到刚刚录制的脚本。