Requests接口测试流程:
创建会话
create session api 域名
发送请求
r
e
s
p
o
n
s
e
G
e
t
R
e
q
u
e
s
t
a
p
i
?
p
接
收
回
包
回
包
会
放
在
{response} Get Request api?p 接收回包 回包会放在
responseGetRequestapi?p接收回包回包会放在{response}里面
常见问题:
乱码:使用decode解决。使用.content.decode(‘使用的编码’)
警告:disable_warnings=1
在测试套件中导入RequestsLibrary库
接口用例:
*** Settings ***
Library RequestsLibrary
*** Test Cases ***
seven
##### ##### ##### #####
#创建会话 地址名称 基础地址url 取消警告
create session api https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/ disable_warnings=1
#用变量存储发包结果 发起请求地址名称 名称 地址详细路径 地址后参数
${response}= get request api api.php params=query=1.1.1.1&co=&resource_id=5809&t=1609204705656&ie=utf8&oe=gbk&cb=op_aladdin_callback&format=json&tn=baidu&cb=jQuery110206641905065958138_1609203879313&_=1609203879334
#需要用到.text输出文本,否则输出的是一个对象
log ${response.text} #解决乱码问题:${response.content.decode('utf8')}
在后续通过断言判断发送请求后获取的响应信息是否是与预期结果一样的,如果得到的是一样的,则输出true,否则为false
*** Settings ***
Library RequestsLibrary
*** Test Cases ***
seven
##### ##### ##### #####
#创建会话 地址名称 基础地址url 取消警告
create session api https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/ disable_warnings=1
#用变量存储发包结果 发起请求地址名称 名称 地址详细路径 地址后参数
${response}= get request api api.php params=query=1.1.1.1&co=&resource_id=5809&t=1609204705656&ie=utf8&oe=gbk&cb=op_aladdin_callback&format=json&tn=baidu&cb=jQuery110206641905065958138_1609203879313&_=1609203879334
#需要用到.text输出文本,否则输出的是一个对象
log ${response.text} #解决乱码问题:${response.content.decode('utf8')}
${j} set variable ${response.text}
#在python中单引号和双引号是相同的,但是在RF中已经只能使用单引号 切片操作时是左闭右开,如果需要取到后面的,需要+1
${json}= Evaluate '${j}'['${j}'.find('{'):'${j}'.rfind('}')+1]
log ${json}
#此时的json为字典,可以通过键去获取其对应的值
&{json} Evaluate ${json}
log ${json}[status]
#data为列表,列表下存在字典,所以应取列表的第0个,然后再获取其里面的字典的键对应的值
log ${json}[data][0][location]
#通过断言判断是否与预期结果一致:使用run keyword if
run keyword if ${json}[status]==0 log success
... ELSE fail failed #fail断言失败,返回失败信息
在控制台出现乱码问题:
修改testrunnerplugin.py中第565行的encoding[‘SYSTEM’]改为OUTPUT即可