robotframework安装_软件测试工程师必备:Robot Framework实现接口自动化实践

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

98acc85a8483a8934143ac9309b77b95.png

对于公司层面:现在市面上很多都要求app、web自动化,但是浅层面的都是基于UI自动化,对很多产品来说基于UI的自动化脚本运行过程中容易出现出现找不到定位元素而错误,且版本更新迭代快,脚本维护成本高,此时可以进行接口自动化测试,通过保证接口逻辑,数据传输正确,提高产品的质量。

本文简单的介绍下通过Robot Framework做一个简单的接口自动化测试实践过程,包括环境准备和简单的一个接口自动化测试实例。

环境准备

1.安装依赖的库:requests、requestsLibrary

1.1使用python2的pip安装requests,安装成功后如下图:

5a85a305ca3d6214831288c1f4dc8ed0.png

1.2使用python2的pip安装requestsLibrary,安装成功后如下图:

74309a23f17ed6f52565408f0c5729b4.png

2.RIDE的测试套件上导入接口测试脚本依赖的库library

682590eaefe42b27bd4f87d8329c4cd5.png

接口自动化测试的过程一般有以下几个步骤:

1.接口分析:拿到一个接口,先分析接口的组成和参数含义(一般公司内部都会有接口平台或者可以找开发提供接口数)

2.编辑脚本:通过关键字编辑脚本内容,除了编辑接口请求的脚本基础上,加上必要的断言脚本,验证请求的结果

3.运行脚本

4.测试报告

接口分析

接口的请求方式比较常见的是post和get请求。如果公司没有规范的接口文档,可以通过charles抓包分析接口的相关入参和规则,或者请教对应的开发给出各个参数的含义。

接口请求url:

http://【域名】/mmcapiproxy//action/fcar/extensionApplyResultNotice

请求方式:post

入参:(通过charles获取的数据)

_en=00、

q={"saleNo": "SO1810251683600","extensionNo": "2504573445104","result": 1,"msg": ""}

c=400

v=100

脚本内容:

dab380712df8d8e52ddca275d1c5af6f.png

脚本说明:

1.首先使用关键字create session创建一个会话,连接到服务器的host,脚本格式:

74c38b4c67e78310780393cfe2de1a08.png

1.通过关键字creat dictionary创建一个变量${header},用于存放请求的头文件

2.通过关键字creat dictionary创建一变量${param},用于存放多个入参

3.通过关键字post request(如果是get方式,则使用关键字get request)发起请求,并将请求的结果返回给变量${response}

增加断言

为了验证请求是否成功,需要通过增加断言来验证,一般会断言请求状态码或者响应结果。

思路:

将接口请求结果的返回值存储到字典dictionar内

通过关键字should be equal/ should be equal strings匹配返回值,如果一致,则表示通过,否则表示失败

导入依赖库:

49dbe01ad494f9ae6a86f3654a4c91f6.png

脚本内容:

5d41c3ce4725aa23f429ff57d442ec01.png

脚本解析:

1.将请求返回值转换成json格式,${response.json()}

2.将转化后的返回值赋值给变量${r}

3.从返回值内取出代表接口运行成功的字段code,赋值给变量${code}

c9475394f9ff4befaf5f543945fc373a.png

1.从开发那得知,若code=1,则表示接口运行成功,故使用关键字判断变量${code}=1  

260a9717d570e9393d14fcdcc69cee43.png

脚本运行成功结果:

bc8d15b382113920331ea98d3f5cfc9e.png

如果开发设定code值是string类型,则需要使用关键字:should be equal strings

实例:

47fd88cbba1b6c19db1c2eed071602e6.png

若使用should be equal则会报错如下:

17541b2532546e167f6c38aac9a1ff30.png

四、结语

随着自动化测试成为测试工程师必备技能之一。拥有了该项技能在面对功能、模块日趋复杂和迭代频繁的软件开发项目时,测试人员可以从容不迫的解决和应对这些问题。本文基于此种考虑,结合作者在项目中的实践分享了接口自动化测试过程中的几点感悟,希望对想要迈入和初步迈入的自动化测试领域的同志们有所帮助。


我是一名从事了多年软件测试的老测试员,今年年初我花了一个月整理了一份最适合2020年学习的软件测试学习干货,可以送给每一位对软件测试感兴趣的小伙伴,想要获取的可以关注我的头条号并在后台私信我:【资料】,即可免费获取。

5d3ab21d8207babfe6a2f72197514a6c.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值