乐趣区

关于自动化测试:浅谈自动化测试

本文首发于: 行者 AI

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员依据测试用例中形容的规程一步步执行测试,失去理论后果与冀望后果的比拟。在此过程中,为了节俭人力、工夫或硬件资源,进步测试效率,便引入了自动化测试的概念。

1. 前提条件

1.1 需要变动不频繁

测试脚本的稳定性决定了自动化测试的保护老本。如果软件需要变动过于频繁,测试人员须要依据变动的需要来更新测试用例以及相干的测试脚本,而脚本的保护自身就是一个代码开发的过程,须要批改、调试,必要的时候还要批改自动化测试的框架,如果所破费的老本不低于利用其节俭测试老本,那么自动化测试便是失败的。我的项目中的某些模块绝对稳固,而某些模块需要变动性很大。咱们便可对绝对稳固的模块进行自动化测试,而变动较大的仍是用手工测试。

1.2 我的项目周期够长

自动化测试需要的确定、自动化测试框架的设计、测试脚本的编写与调试均须要相当长的工夫来实现,这样的过程自身就是一个测试软件的开发过程,须要较长的工夫来实现。如果我的项目的周期比拟短,没有足够的工夫去反对这样一个过程,那么自动化测试便成为笑谈。

1.3 自动化测试脚本可重复使用

如果费尽心思开发了一套近乎完满的自动化测试脚本,然而脚本的反复使用率很低,以致其间所消耗的老本大于所发明的经济价值,自动化测试便成为了测试人员的练手之作,而并非是真正可产生效益的测试伎俩了。另外,在手工测试无奈实现,须要投入大量工夫与人力时也须要思考引入自动化测试。比方性能测试、配置测试、大数据量输出测试等。

2. 应用场合

通常适宜于软件测试自动化的场合:

(1)回归测试,反复繁多的数据录入或是击键等测试操作造成了不必要的工夫节约和人力节约;

(2)测试人员对程序的了解和对设计文档的验证通常也要借助于测试自动化工具;

(3)采纳自动化测试工具有利于测试报告文档的生成和版本的连贯性;

(4)自动化工具可能确定测试用例的笼罩门路,确定测试用例集对程序逻辑流程和管制流程的笼罩。

3. 实用工具

目前适宜初学者接触的自动化测试软件便是 Airtest IDE。AirtestIDE 是一个跨平台的 UI 自动化测试编辑器,实用于游戏和 App。自动化脚本录制、一键回放、报告查看,轻而易举实现自动化测试流程反对基于图像识别的 Airtest 框架,实用于所有 Android 和 Windows 游戏反对基于 UI 控件搜寻的 Poco 框架,实用于 Unity3d,Cocos2d 与 Android App,可能运行在 Windows 和 MacOS 上。

启动 Android 模拟器或者用 PC 连贯一台手机。通过 adb 命令查看挪动设施。

>adb devices 
List of devices attached 
emulator-5554 device 

在 Android 模拟器中操作时,Airtest IDE 右侧的界面是同步的,这一点比很多挪动测试工具做的优良,例如,appium desktop 必须手动刷新能力获取最新的界面。

Airtest IDE 反对 Airtest 脚本的录制,用法非常简单,你甚至能够先不必看它的 API,通过录制来相熟它的 API。右侧 Airtest 窗口以及 API,点击右上角录制按钮,而后,就能够在映射的 Android 模拟器界面上点点点了。

这种脚本更适宜游戏,因为游戏界面很难定位,图片辨认(截图)的形式的确是不错的抉择。

上面将介绍一下罕用控件函数:

(1)touch 这个函数是一个进行点击的函数,能够设置本人须要点击的图片,次数,长按工夫和右键点击。

(2)wait 这个函数的意思就是期待,依照肯定条件期待某样货色。这里能够设置等待时间,等待时间中的每次匹配距离,图片没找到时能够调用的函数以及自身函数返回的值。

(3)swipe 这个函数是一个进行滑动的函数,从图片 1 滑动到图片 2,咱们须要设定好两张图片来进行滑动。在 swipe 函数中有一个值为 duration,该值决定了滑动的时长,有的滑动操作对滑动的速度有肯定的要求,快和慢会有不同的后果。在理论应用 swipe 函数时,设置多少个插值点,想要多快的滑动就成了这个函数应用的调试重点。

(4)exists 这个函数是一个判断存在的函数,判断一个图片是否存在,返回一个布尔值,不便判断的一个函数。

(5)keyevent 这个函数是一个进行手机控件点击的函数,例如手机上的“home”、“back”、“power”。

(6)text 这个函数是进行文本输出的函数,能够在被关上的输入框内输出文字。

(7)snapshot 这个函数是进行截图作用的函数。

(8)sleep 这个函数是进行提早进行设置的函数。

(9)assert_exists 断言截图是否存在于以后页面,了解为如果这个截图内容存在,让他再测试报告中生成出什么文案。

(10)assert_not_exists 断言截图是否不存在于以后界面,了解为如果这个截图内容不存在,让他再测试报告中生成出什么文案。

(11)assert_equal 断言以后页面中是否蕴含设置好的文案,如果蕴含就通过。

(12)assert_not_equal 断言以后页面中是否不蕴含设置好的文案,如果不蕴含就通过。

退出移动版