简介

云测测试全新AI测试产品iTestin,将AI智能化作为测试技术升级的重要推力,把AI 和机器学习技术等领先技术落地于测试行业,进一步提升产品的智能化水平,从自动化测试、增强人工测试人员的能力等方面革新软件测试工作,应用AI技术为行业赋能。iTestin推出业界首款基于自然语言的脚本录制功能,支持用自然语言的交互方式,完成测试自动化操作,全面提升测试产品的易用性和自动化效率,通过人工智能技术,大大降低脚本调试和脚本维护成本。

降低操作门槛:
自然语言录入文字即可生成自动化脚本,通过基于自然语言的脚本录制功能,测试人员只需要用自然语言即可实现测试编程,只需在界面中输入点击、等待、检查、长按、输入等自然语言的文字描述,后台的AI就能准确实时的在真机上进行完整无误的操作和相关指令,完成测试自动化操作。 iTestin这种全新的自然语言脚本大幅降低了脚本录制的难度,也极大提升了产品易用性和脚本维护效率。

降低脚本维护成本:
脱离控件方式,相同流程下,实现一套脚本跨平台使用,Testin云测通过只依赖UI界面截图的OCR和图标识别技术,使得Android端和iOS端使用同一套UI自动化测试脚本成为可能,实现跨平台脚本能力,大大降低脚本维护成本。

降低脚本调试成本:
无需对控件信息进行调试,提升跨终端执行通过率,通过AI深度学习算法使自动化脚本越来越“聪明”,采用智能的、自适应的测试自动化方案让自动化变得更加“智能”。

快速入门

界面概述

    录制页面分为顶部功能栏、工具栏、映射屏、步骤列表、步骤属性编辑五个区域。
    其中工具栏主要包含脚本录制中需要用到的高级函数和组件,映射屏为手机屏幕显示区域,
    所有生成的步骤在步骤列表中显示,步骤属性编辑区域可针对每一步进行自定义属性调整。

开始录制

    开通专享设备后,通过脚本管理页面进入iTestin Online页面。
    在录制页面,可以通过操作手机屏幕、屏幕右键操作、功能操作三种方式来生成步骤。
    所有产生的新步骤均插入到当前选中步骤的后面。

操作流程

原有录制方式(指控件、OCR、图像识别)与自然语言-NLP录制方式的主要区别如下

  • 原有录制方式:主要在手机上进行操作,遇到复杂的操作场景,使用工具栏种的高级函数和组件进行录制;
  • 自然语言-NLP录制(Beta):主要在步骤列表区域进行自然语言操作内容书写

设置脚本信息

  • 脚本描述和标签:初始化时设置,或者点击工具栏的【重命名】设置脚本信息。
  • 清除数据:勾选“清楚数据”后,每次在脚本执行后会清除应用数据,恢复到安装初始状态。
  • 安装卸载:勾选” 安装/卸载“后 ,每次在脚本执行后会将应用卸载;这样能保证每次应用是以第一次启动的状态运行,适用于录 制程序第一次使用时的场景。

启用手机并开启录制

    每次录制,必须手动启动手机,可选手机是您所在企业已开通的所有独享设备或公有云设备(公有云设备按远程真机扣费规则进行相应费用扣除)。
    启用手机后直接操作手机并不会自动生成步骤,必须点击开启录制后,才会生成步骤。
    如调整脚本时,可以点击暂停,这样可以在修改脚本时避免所有手机屏幕操作都产生多余步骤。

编辑脚本步骤

    如果录制的步骤需要修改,点击待编辑步骤后,右侧会显示步骤信息,并支持直接编辑,编辑结果将自动保存;
    并且可以为每一个步骤添加步骤描述,相当于代码中的注释,方便后期维护理解。

步骤的复制、剪切、粘贴、删除

  • 复制/剪切:选中一个步骤,可以对步骤进行复制/剪切操作;目前只支持单步骤操作。
  • 粘贴:将复制和剪切的步骤粘贴到选中脚本的下方。
  • 删除:删除当前选中的步骤;目前只支持单步骤删除。

脚本的保存

录制过程中,脚本会自动将更改内容保存到服务器; 完成录制后,点击工具栏的【保存】按钮保存本次录制,系统将给本次录制创建新的版本号。

单步调试

单步调试按钮在脚本列表的上面,选中一个步骤点击单步调试后,系统将立刻执行该步骤,以验证所选步骤是否能够成功执行。 这样也就不需要为了验证某一个步骤而去回放整个脚本。

回放脚本

录制的脚本,可以及时回放以检查是否能够成功执行。

  • 开启回放:点击【回放】按钮后执行回放,回放后系统会自动从第一个步骤开始执行整个脚本。
  • 回放中:回放过程中,会高亮显示当前执行中的步骤,并在左侧显示执行界面的截图结果。
  • 中断回放:再次点击【回放】按钮,终止当前回放。

自然语言-NLP语法规则介绍

概述

目前系统支持7大类自然语言语法规则,目前涉及到的名词解释如下

  • 操作类:目前支持7大类操作动作,点击、等待、超时时间、检查…存在/不存在、如果…则…、手势密码、输入;
  • 内置词:目前共有4个内置词,分别为元素、返回键(系统按键)、Home键、回车键;
  • 名词:指操作的对象或参照物,如设置or设置右侧元素;
  • 位置词:目前支持4种方位词,上侧、下侧、左侧、右侧;
  • 数量词:如第一个or第1个

点击

  • 语法样例:==点击==目标语义 或 ==点击$==变量名称
  • ==点击设置== (点击+名词)
  • ==点击${test}== (点击+${变量})
  • ==点击第一个消息== (点击+数量词+对象)
  • ==点击扫一扫右侧元素== (点击+名词+位置词+内置词)
  • ==点击扫一扫右侧搜索== (点击+名词+位置词+对象)
  • ==点击扫一扫右侧第二个元素== (点击+名词+位置词+数量词+内置词)
  • ==点击扫一扫右侧第二个下载== (点击+名词+位置词+数量词+名词)

等待

  • 语法样例:==等待== 时间值
  • 等待时间单位为秒,支持1位小数点,最大输入数字为600秒
  • ==等待5秒==
  • ==等待1.5秒==

超时时间

  • 语法样例:==任意语句#==超时时间值
  • 适用于任意自然语言后添加
  • ==点击设置#10秒==
  • ==点击$test#10秒== ~ps:默认超时时间为30秒,自行添加超时时间后,默认超时时间数值会被覆盖~

检查

  • 语法样例:==检查==目标语义==存在/不存在== 或 ==检查$=={变量名字名称}==存在/不存在==
  • 检查指定语义对应的控件、图标、文字、变量名字等
  • ==检查设置存在/不存在== (检查+名词+存在/不存在)
  • ==检查${test}存在/不存在== (点击+${变量名字}+存在/不存在)
  • ==检查扫一扫右侧设置存在/不存在== (检查+名词+位置词+名词+存在/不存在)
  • ==检查${test}右侧设置存在/不存在== (检查+${变量名字}+位置词+名词+存在/不存在)
  • ==检查第一个消息存在/不存在==(检查+数量词+名词+存在/不存在
  • ==检查扫一扫右侧第二个下载存在/不存在== (检查+名词+位置词+数量词+名词+存在/不存在)

如果

  • 语法样例:==如果== 目标语义 ==存在/不存在,则== 点击目标语义
  • 目前1期如果暂时只支持如果xxxx存在/不存在,则点击xxxx的语法规则,则xxxx输入其他操作语法规则本期将视为语法规则错误
  • 如果下载存在/不存在,则点击下载

系统按键

  • 语法样例:==点击== HOME键/返回键/回车键
  • home键输入时可忽略大小写,输入系统后自动联想后续文字,可直接选择联想内容,也可以输入非联想内容
    • ==点击HOME键==
    • ==点击返回键==
  • ==点击回车键==

手势密码

- **语法样例:**==手势密码==***对应数字***
- 主要用于解决9宫格手势密码解锁问题,如右下三角形,输入手势密码357893或手势密码3793
- ==手势密码xxxxxx== (输入+对应数字)

组件相关的指令介绍

输入

- 语法样例:==输入==***目标语义 or*** ==输入==***${xxxxx}***
- 可在指定位置输入具体文本 或 输入指定变量名字
- ==输入xxxxxx== (输入+名词)
- ==输入${xxxx}== (输入+${变量名字})

简单屏幕操作 :点击 ·双击·长按·左滑·右滑·上滑·下滑

  • 启用手机并开启录制后, 操作手机屏幕时将自动生成步骤到步骤列表。支持点击、双击、长按、左滑、右滑、上滑、下滑 的屏幕操作。同时,可以通过屏幕右键进行上述各类操作,右键操作可以避免鼠标操作时的一些误操作。所有操作基于控件录制,在不同尺寸、分辨率、版本的机型上均可正常执行。

断言 : 断言控件 , 断言文本, 断言变量文本

  • 断言的定义:断言的含义是“存在”,包含“断言存在”与“断言不存在”两种方式。
  • 断言存在:如果断言的控件或者文本内容在当前页面存在,则会继续执行后续的步骤,如果不存在,则会提示失败并终止脚本执行。
  • 断言不存在:如果断言的控件或者文本内容在当前页面不存在,则会继续执行后续的步骤;相反,如果存在,则会提示失败并终止脚本执行。
  • 屏幕右键断言:选中屏幕组件右键断言时,程序会自动识别所选组件是控件还是文本;而控件和文本的区别在于,在执行该步骤时,是根据控件ID还是文本内容去寻找断言内容。
  • 文本断言和文本变量断言:通过功能区的“文本断言”和“变量文本断言”两个组件生成。

if 逻辑 : 文本逻辑 , 变量文本 ,if 结束

  • 使用iTestin Online支持在脚本中添加 if 逻辑,目前支持“文本”和“变量文本”的 if 判断;文本逻辑支持通配符“*”号;而变量文本,还支持应用内与应用外的判断,如果当前页面可以通过手机屏幕的右键操作和功能组件中的“if 文本逻辑”与“if 变量文本”来添加 if 逻辑。每一个 if 逻辑必须有 if 结束,点击功能组件中的“if 结束”添加。

for 循环逻辑 :判断控件循环,无条件循环

  • iTestin Online支持两种方式的循环逻辑:带条件的循环逻辑和无条件的循环逻辑; 其中带条件的循环逻辑是说必须在满足某一条件时才进入循环体,如果不满足循环条件则会直接跳过循环执行后续步骤,目前循环条件仅支持控件存在判断。

按键操作 :上·下·左·右·确认/播放·音量+/-

  • 测试播放器时,相当于播放器上的按键。非播放器场景下,点击后无反应。相当于电视遥控器上的按键,在测试电视盒子时很方便。

变量声明

  • 脚本中需要用到的变量, 必须先声明后才能使用。变量分为全局变量和局部变量,变量名称只能包含字母、数字和下划线,且最多输入30个字符;全局变量的所有字母必须大写;局部变量首字母必须为小写,其他字母无限制。全局变量在任务中,跨脚本时依然生效,而局部变量仅在本脚本中有效。

变量赋值

  • 通过控件变量赋值:映射屏选中控件,右键“变量赋值”;表达式赋值:功能箱点击“变量表达式赋值”,表达式支持“+”、“-”、“*”、“/”;字符串支持“+”。

变量处理 :字符串截取,转为控件序列,只保留数字,去掉千位分隔符,正则表达式

可以在脚本中插入变量处理的步骤

- **字符串截取:**截取变量值,可设置开始和结束标识符。
- **举例:**a=12345,设置开始:1,截止:4,返回结果:23。
- **转为控件序列:**将字符串的每一个字符用“,”分开。 
- **举例:**a=12345,返回结果:a=1,2,3,4,5。
- **只保留数字:**去除变量值中的非数字字符。 
- **举例:**a=a123b123,返回结果:a=123123。
- **去掉千位分隔符:**去除数字变量值中的逗号。 
- **举例:**a=1,000,000,返回结果:a=1000000。
- **正则表达式:**替换变量值中的内容。 
- **举例:**a=1223452,replaceAll(‘2’,‘0’),返回结果:a=10023450。

调用脚本

  • 可以在当前脚本中插入子脚本,其中子脚本是调用关系,不能修改。从功能箱中添加。使用调用脚本功能,可以将通用的操作(比如登录)录制成一个脚本,这样新录制的脚本可以直接使用通用脚本,免除重复录制工作,极大的减少重复工作量,提高录制效率。

插入等待

  • 插入等待后,脚本执行到等待步骤时会自动等待设定的时间后再执行后续操作。在需要等待后台数据返回或者延时操作才进行下一步操作的场景中,可以插入等待,以保证在不通网络环境和机型上能够正常获取数据。

插入截图

  • 通过功能箱插入截图,该步骤会自动截取并保存手机屏幕。

Monkey测试

  • 使用Monkey测试可以测试App的稳定性和容错性能,以及App的强度承载能力。通过功能箱插入Moneky测试,支持自定义测试时间与测试间隔。

results matching ""

    No results matching ""