• 1
  • 0
分享

自动化测试介绍

定义

自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。

通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。

前提条件

自动化的收益=使用次数*全手动执行成本-首次自动化成本-维护次数*维护成本

观察其是否适合使用自动化测试。通常需要同时满足以下条件:

1.自动化脚本编译成本低

(业务逻辑相对简单、需求变动不频繁、项目周期长)

2.自动化测试脚本可以重复使用

(可以用于多个相似项目平台,回归测试,版本迭代测试)

自动化在测试系统中的定位

1.png

性能测试:主要是使用测试工具,Loadrunner、Jmeter等,对软件进行压力测试、负载测试、强度测试等等,因为这些无法用手工进行代替,所以必须自动化。

功能测试:包括单元测试、接口测试、UI测试。主要是编写代码、脚本,让软件自动运行,发现缺陷,代替部分的手工测试。但一般只有大的项目才需要进行自动化,中小型项目不推荐使用自动化测试。

技术方案

基于robot framework 框架

Robot Framework是一款python编写的功能自动化测试框架。具备良好的可扩展性,支持关键字驱动,可以同时测试多种类型的客户端或者接口,可以进行分布式测试执行。主要用于轮次很多的验收测试和验收测试驱动开发。

RIDE是一款专门用来编辑Robot Framework用例的软件,用Python编写并且开源。当我们针对一个系统编写好一套脚本后,每当我们对系统做一些更改的时候,便可以把已经写好的脚本拿出来稍作修改,通过执行这些脚本就可以检测系统的功能是否依旧完好。系统需要一个不断完善的过程,而RIDE用例也将随着系统的变更做着相应的修改。

1、特点:

a.测试用例使用文本文件(txt)保存;

b.测试用例支持变量的使用,也可使用if语句和for循环,测试人员可根据自身情况创建自己需要的测试库;

c.测试执行报告和日志是html格式的,容易阅读;

d.支持关键字驱动、数据驱动和行为驱动等等

2、架构图:

2.png

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、关系图:

3.png

5、测试用例编写规范:

a.一个产品或项目的用例尽量分成多层来写:

最1层:文件夹:项目或产品名称+"测试用例"

第2层:文件夹:模块名称

第3层:文件:子功能

第4层:用例:用例名称会直接转换成测试项

b.变量表的变量名称尽可能一致: 

eg. *** Variab***
  ${IP}             172.10.2.10
  ${Port}           8000

基本操作步骤

1.1、创建一个工程

首先点击菜单栏的 File->New Project。(这里选择Directory,因为我们要创建一个文件夹来存放用例,其实用File也可以,看自己需求吧)

4.jpg

1.2、创建测试套(Suite)

右击新建的文件"自动化解析"-->点击"New Suite(可以理解为创建了相似测试用例的文件夹)

6.png

1.3、创建测试用例(Test Case)

右击新建的文件"New Test Case"-->点击"New Suite"

(创建一个天气查询的接口测试用例)

7.png

1.4、引用库文件

选中Suite,点击右边的library,引用会使用的库

8.png

添加好以后文件名是黑色的,如果是红色,则说明加载不成功,需要检查库文件是否已安装,或者名称是否正确。

1.5、编写脚本

输入相关字后,可以按空格键查找,出现使用提示

11111111111.png

按照RequestsLibrary库的语法规则,创建出执行用例的测试脚本

9.png

1.6、运行脚本

选择测试用例,点击菜单栏的"Tools"->"Run Tests",或者直接点击运行图标,在运行过程中可暂停、终止。

10.jpg

分别点击Log和Report可以查看测试日志及报告

一般也可以使用Log来检查脚本是否编写成功

11.png

应用规范步骤

用例层次结构一般从低到高设置创建:测试对象层->测试操作层->测试步骤层->测试用例层。

前三个放在测试资源模块(Resource)的对象-操作-步骤目录下面,测试用例放在相应的测试套件(Suite)下。

另外,每个模块会有它内部公用的对象和操作。

12.png

2.1、创建对象

如果要反复使用到操作对象,可以用变量的形式进行表示,并保存到对象文件中。

下面以有道和必应词典翻译的API举例:

点击'对象',在右边点击'Add Scalar',创建变量。

13.jpg

可以依次将下面的请求参数全部转变为对象,方便随时调用:

14.jpg

2.2、创建操作、步骤(关键字)

为了使刚刚编写的脚本用于更多的场景,为了以后的测试用例执行简便,可以通过创建关键字的方法实现

选中脚本,右键点击选择Extract Keyword,新建为Get请求

点击Get请求,在右边进行变量设置


其中某些参数的意义(初始化、触发条件、返回值设置):


将创建的关键字拖动到'操作'里面,方便以后脚本编写及方法调用:

19.png

2.3、应用

在 "接口自动化"中创建测试用例(Test Case)"词典查询":

点击'接口自动化',在Library中添加使用到的包,在Resource中添加对象、操作、步骤。

在"词典查询"中将创建好的对象、关键字应用于实际接口测试内容:

注意事项:

1.支持中英文书写变量

2.变量不区分英文字母大小写

3下划线会被忽略掉(${port1}==${port_1})

4.RIDE中默认变量都是字符型(对象后面可直接加参数变成字符: ${yd翻译}hello)


版权声明:本文出自51Testing原创,51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像,否则将追究法律责任。

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 敏捷开发迭代速度快?开发完上线之后找不到相应人员?下一轮优化时不知从何下手?相信大家在平时的工作中都遇到过相关的问题,究其原因是没有留足够的时间进行相关文档的沉淀和归档,导致后来人员对于之前的项目不够熟悉,不知道如何下手。所谓好记性不如烂笔头,结束一个项目时抽空整理出相关的特点,给后来人一个大概的论述,相信能很好的发挥承上启下的作用。很感谢我的上一任上司,她督促我们每一个版本都需要养成总结文档的习惯,写功能说明文档的习惯也是从这个时候慢慢继承下来的。这里说的继承者是指——功能说明文档。每个专项开展测试,有新功能的时候都会测的热火朝天,但是测试结束之后,这个功能交接给另外的同学时或者合并到系统项...
            8 5 7438
            分享
          •   备受推崇的主机和 VR 游戏开发商 Ready at Dawn 将立即关闭。据Android Central报道,该开发商的母公司 Meta 今天做出了这一决定。根据报道,Meta 公司的一位发言人表示,做出这一决定是为了让公司的 Reality Labs 能够保持在新设定的预算范围内。  该发言人补充说,受影响的团队成员仍可申请 Reality Labs 的空缺职位,但目前还不清楚有多少人受到了影响。  Ready at Dawn 于 2003 年在加利福尼亚州尔湾市首次推出。该公司的首批游戏是为索尼的PlayStation Portable 游戏机制作的,包括《达斯特》(《Jax &a...
            0 0 499
            分享
          •   前言  相信做了测试一段时间的小伙伴都会开始意识到抓包对于测试的重要性,它涉及到功能测试、性能测试、自动化测试、安全测试和数据库测试等等。可以说我们要想做好测试就必须和抓包打交道,脱离抓包的测试是不合格的。人们都说黑客利用Wireshark等抓包工具监视别人,但是你同时会发现,监视也是测试的重要组成部分。你会通过监视来判断pass或是fail,你会通过监视来定位bug,你会通过监视来分析性能测试的结果……  1、什么是抓包   我们一般所指的“监视”,其实有个专业名称——抓包。抓包是指在计算机网络中,通过使用抓包工具截获(捕获)和分析网络数据包的过程。网络数据包是在计算机网络上传输的基本单...
            0 1 536
            分享
          • 前言接口自动化逐渐成为各大公司投入产出最高的测试技术。但是如何在版本迅速迭代过程中提高接口自动化的测试效率,仍然是大部分公司需要解决的问题。框架定位数据驱动设计模式,无需写测试代码脚本即可实现自动化;等价类非等价类覆盖, E2E(接口流程性测试) Case 覆盖;使用 Excel 的方式进行自动化用例编写,简单,易用,高效。框架架构图框架介绍技术栈Jenkins + Svn + Maven+TestNG+ReportNG+(HttpClien+URLConnection)Case 展示1、单个接口 CaseJson response 解析用的是 Json...
            0 0 769
            分享
          • 当地时间10月25日,彭博社援引知情者消息称,马斯克前一天在与银行开视频会议时承诺,到本周五(10月28日)完成对推特(TWTR,股价52.78美元,市值403.90亿美元)的收购交易。与会的银行由摩根士丹利(MS,股价80.51美元,市值1364亿美元)领头,将为马斯克的收购提供130亿美元的债务融资。据悉,银行已经完成最终的信贷协议,正在走签署文件的流程,这是银行在真正拨款给马斯克之前的最后阶段步骤之一。以上消息意味着,马斯克计划在法官设定的10月28日截止期以前完成交易,避免面临法庭审判,避免真正让收购推特的交易酿成世纪诉讼。消息传出后,推特股价25日午盘加速上涨并一度涨至53.16美元...
            0 0 1062
            分享
      • 51testing软件测试圈微信