robotframework接口自动化测试实现案例

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即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值