python调用robotframework api_Python3+RobotFramework自动化测试十:接口测试

本篇使用roboot framework编写简单的接口测试用例。

接口文档

下面分别是get类型和post类型的接口:

接口1(这是一个会议信息查询接口):

请求参数:

eid      --会议id

name  --会议名称

返回值:

{

"data": {

"start_time":"2020-05-23T14:00:00",

"name":"发布会1",

"address":"北京"

}

"message":"success",

"status":200

}

接口2(这是一个参加会议人员签到接口):

请求参数:

eid      --会议id

name  --签到人员手机号

返回值:

{

"message":"sign success",

"status":200

}

接口测试用例

下面分别针对上面的2个接口编写一个简单测试用例,内容如下:

*** Settings ***Library RequestsLibrary

Library Collections*** Test Cases ***test_interface_get

${payload}= Create Dictionary eid=1Create Session event http://127.0.0.1:8000/api

${r}= Get Request event /get_event_list params=${payload}

Should Be Equal As Strings ${r.status_code}200log ${r.json()}

${dict} Set variable ${r.json()}

#断言结果

${msg} Get From Dictionary ${dict} message

Should Be Equal ${msg} success

${sta} Get From Dictionary ${dict} status

${status} Evaluateint(200)

Should Be Equal ${sta} ${status}

test_interface_post

Create Session sign http://127.0.0.1:8000/api

${headers} Create Dictionary Content-Type=application/x-www-form-urlencoded

${payload}= Create Dictionary eid=11 phone=13111111111${r} Post Request sign/user_sign/ data=${payload} headers=${headers}

Should Be Equal As Strings ${r.status_code}200log ${r.json()}

${dict} Set variable ${r.josn()}

# 断言结果

${msg} Get From Dictionary ${dict} message

Should Be Equal ${msg} sign success

${sta} Get From Dictionary ${dict} status

${status} Evaluateint(200)

Should Be Equal ${sta} ${status}

简单分析

首先,引用RequestsLibrary和Collections库。RequestsLibrary就是安装robotframework-requests,提供接口操作相关的关键字。Collections库是用来操作字典的,因为接口返回的数据是json格式,必须转化成字典才能进行断言。

先看下test_interface_get用例的前3行:

${payload}= Create Dictionary eid=1Create Session event http://127.0.0.1:8000/api

${r}= Get Request event /get_event_list params=${payload}

通过Create Dictionary关键字定义字典变量${payload},字典有一个键值eid=1,该字典将会作为接口的参数。

Create Session关键字用来创建一个http会话服务器,通过event指定http://127.0.0.1:8000/api为该会话的基础URL。

Get Request关键字用来发起一个Get请求,接口URL=event+/get_event_list/,接口参数为${payload},最后将接口返回数据赋值给变量${r}

Should Be Equal As Strings ${r.status_code} 200log ${r.json()}

通过${r.status_code}可以得到请求的HTTP状态码,通过Should Be Equal As Strings关键字判断其是否为200。

通过${r.json()}可以将json格式的数据转化为字典,并通过log关键字打印。

${dict} Set variable ${r.json()}

#断言结果

${msg} Get From Dictionary ${dict} message

Should Be Equal ${msg} success

${sta} Get From Dictionary ${dict} status

${status} Evaluateint(200)

Should Be Equal ${sta} ${status}

这里主要是对返回数据进行验证:

将${r.json()}通过Set variable关键字赋值给变量${dict}

c关键字由前面引入的Collections提供,可以取到字典中key对应的value,这里获取到的message对应的值给变量${msg}。

Should Be Equal关键字用于比较${msg}是否等于success

通过Get From Dictionary关键字获取status对应的值,并赋值给变量${sta}

上一步获取到的status状态码是整数类型200,但是在robot framework中直接编写的内容为字符串,所以这里借用Evauate关键字,直接调用python的方法int()。

最后比较接口返回的状态码是否等于200

第2个post接口用例是post接口,与第1个接口用例基本类似,相信大家已经可以自行分析了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值