定义
自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。
通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。
前提条件
自动化的收益=使用次数*全手动执行成本-首次自动化成本-维护次数*维护成本
观察其是否适合使用自动化测试。通常需要同时满足以下条件:
1.自动化脚本编译成本低
(业务逻辑相对简单、需求变动不频繁、项目周期长)
2.自动化测试脚本可以重复使用
(可以用于多个相似项目平台,回归测试,版本迭代测试)
自动化在测试系统中的定位
性能测试:主要是使用测试工具,Loadrunner、Jmeter等,对软件进行压力测试、负载测试、强度测试等等,因为这些无法用手工进行代替,所以必须自动化。
功能测试:包括单元测试、接口测试、UI测试。主要是编写代码、脚本,让软件自动运行,发现缺陷,代替部分的手工测试。但一般只有大的项目才需要进行自动化,中小型项目不推荐使用自动化测试。
基于robot framework 框架
Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发。
RIDE是一款专门用来编辑Robot Framework用例的软件,用Python编写并且开源。当我们针对一个系统编写好一套脚本后,每当我们对系统做一些更改的时候,便可以把已经写好的脚本拿出来稍作修改,通过执行这些脚本就可以检测系统的功能是否依旧完好。系统需要一个不断完善的过程,而RIDE用例也将随着系统的变更做着相应的修改。
1、特点:
a.测试用例使用文本文件(txt)保存;
b.测试用例支持变量的使用,也可使用if语句和for循环,测试人员可根据自身情况创建自己需要的测试库;
c.测试执行报告和日志是html格式的,容易阅读;
d.支持关键字驱动、数据驱动和行为驱动等等
2、架构图:
1.最底层的Keyword和Data,组成了测试用例脚本,一般都文件夹下面的txt文档编写保存。
2.Robot Framework框架通过解析txt文档内容,按着里面的配置信息来执行测试用例脚本,也就是执行自动化测试用例
3. Library是执行Python脚本的所要用到的方法库,编写底层keyword时常常会用到这些方法
3、基本概念:
测试用例集Test Suite
测试用例Test Case
关键字库Library
关键字Keyword
变量 Variable
资源 Resource
1)测试用例集 表示具有相同模块或者功能的测试用例的组合,一般是文件夹或者文本文件
2)测试用例 表示可执行测试用例最小单元,是个文本文件(txt)
3)关键字库 表示执行Python脚本的所要用到的方法库(一般都是引用开源库)
4)关键字 表示基于关键字库所开发封装成测试需要的关键步骤(例如登录、查询等方法)
5)变量 表示测试过程中需要反复用到的复杂数据,可以用变量名称代替
6)资源 表示在其他测试项目的用例中封装的关键字,可以导入进来使用
4、关系图:
5、测试用例编写规范:
a.一个产品或项目的用例尽量分成多层来写:
最1层:文件夹:项目或产品名称+"测试用例"
第2层:文件夹:模块名称
第3层:文件:子功能
第4层:用例:用例名称会直接转换成测试项
b.变量表的变量名称尽可能一致:
eg. *** Variab*** ${IP} 172.10.2.10 ${Port} 8000
1.1、创建一个工程
首先点击菜单栏的 File->New Project。(这里选择Directory,因为我们要创建一个文件夹来存放用例,其实用File也可以,看自己需求吧)
1.2、创建测试套(Suite)
右击新建的文件"自动化解析"-->点击"New Suite(可以理解为创建了相似测试用例的文件夹)
1.3、创建测试用例(Test Case)
右击新建的文件"New Test Case"-->点击"New Suite"
(创建一个天气查询的接口测试用例)
1.4、引用库文件
选中Suite,点击右边的library,引用会使用的库
添加好以后文件名是黑色的,如果是红色,则说明加载不成功,需要检查库文件是否已安装,或者名称是否正确。
1.5、编写脚本
输入相关字后,可以按空格键查找,出现使用提示
按照RequestsLibrary库的语法规则,创建出执行用例的测试脚本
1.6、运行脚本
选择测试用例,点击菜单栏的"Tools"->"Run Tests",或者直接点击运行图标,在运行过程中可暂停、终止。
分别点击Log和Report可以查看测试日志及报告
一般也可以使用Log来检查脚本是否编写成功
用例层次结构一般从低到高设置创建:测试对象层->测试操作层->测试步骤层->测试用例层。
前三个放在测试资源模块(Resource)的对象-操作-步骤目录下面,测试用例放在相应的测试套件(Suite)下。
另外,每个模块会有它内部公用的对象和操作。
2.1、创建对象
如果要反复使用到操作对象,可以用变量的形式进行表示,并保存到对象文件中。
下面以有道和必应词典翻译的API举例:
点击'对象',在右边点击'Add Scalar',创建变量。
可以依次将下面的请求参数全部转变为对象,方便随时调用:
2.2、创建操作、步骤(关键字)
为了使刚刚编写的脚本用于更多的场景,为了以后的测试用例执行简便,可以通过创建关键字的方法实现
选中脚本,右键点击选择Extract Keyword,新建为Get请求
点击Get请求,在右边进行变量设置
其中某些参数的意义(初始化、触发条件、返回值设置):
将创建的关键字拖动到'操作'里面,方便以后脚本编写及方法调用:
2.3、应用
在 "接口自动化"中创建测试用例(Test Case)"词典查询":
点击'接口自动化',在Library中添加使用到的包,在Resource中添加对象、操作、步骤。
在"词典查询"中将创建好的对象、关键字应用于实际接口测试内容:
注意事项:
1.支持中英文书写变量
2.变量不区分英文字母大小写
3下划线会被忽略掉(${port1}==${port_1})
4.RIDE中默认变量都是字符型(对象后面可直接加参数变成字符: ${yd翻译}hello)
版权声明:本文出自51Testing原创,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。