【转载】robotframework-接口测试详解

【转载】robotframework-接口测试详解

点击查看原文
最近做接口自动化测试的项目组越来越多了,打算后面写一个RF+requests做接口测试的系列文档,总结遇到的问题,也帮助新入门的同学有个了解,如发现我文档中的不足,请提出意见或建议,以期共同进步!!!
一、环境准备
1、安装robotframework环境
2、相关库:requests,RequestLibrary
3、会抓包,不论是工具或者F12
二、接口实例
比如我们要做一个testerhome的相关接口:https://testerhome.com/topics/8746
首先我们用工具抓到此接口的相关信息,下图是用F12得到的
在这里插入图片描述

在上面的接口请求中可以获得以下几个信息
协议:https
host:testerhome.com
URI:/topics/8746
method:get
无传参
三、测试代码以及详解
根据抓包信息写自动化代码如下
在这里插入图片描述

第一步:创建一个别名为testerhome的session
第二步:get请求,因为没有参数所以只加一个uri
第三步:断言接口返回code
第四步:打印接口返回信息,以便其他断言
开始做接口测试的时候会对resp.status_code、resp.content等这样的写法感到迷茫,因为返回值信息里面并没有看到,搞不清是从哪里来的,其实在requests/models/Response的方法中可以看到
在这里插入图片描述

全部的属性你可以顺着这个方法往下找,其他的:
[‘attrs’, ‘bool’, ‘class’, ‘delattr’, ‘dict’, ‘doc’, ‘format’, ‘getattribute’, ‘getstate’, ‘hash’,
 ‘init’, ‘iter’, ‘module’, ‘new’, ‘nonzero’, ‘reduce’, ‘reduce_ex’, ‘repr’, ‘setattr’,
 ‘setstate’, ‘sizeof’, ‘str’, ‘subclasshook’, ‘weakref’, ‘_content’, ‘_content_consumed’, ‘apparent_encoding’,
 ‘close’, ‘connection’, ‘content’, ‘cookies’, ‘elapsed’, ‘encoding’, ‘headers’, ‘history’, ‘is_permanent_redirect’, ‘is_redirect’, ‘iter_content’,
 ‘iter_lines’, ‘json’, ‘links’, ‘ok’, ‘raise_for_status’, ‘raw’, ‘reason’, ‘request’, ‘status_code’, ‘text’, ‘url’]

频繁用到的:
content: 响应body的内容,二进制编码,如果返回只有文本内容,和text差不多
cookies:响应回写的cookies,cookieJar类对象
headers: 响应头内容
json(): 响应body内容,json格式
status_code: 状态码
text: 响应body的内容,默认unicode编码
这次就先写到这里吧,后面会写一下上传附件接口相关的,有感兴趣的也可以留言给我,谢谢!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RobotFramework-常⽤断⾔讲解 常⽤断⾔讲解 RobotFramework带有丰富的系统关键,使⽤时⽆需导⼊,直接使⽤,为写⾃动化⽤例带来了极⼤的⽅便;不能停留在知道或者是会得程度,只有熟练使⽤各关键字,才能 提升⾃动化⽤例的写作效率。 下⾯将逐个举例介绍:为⽅便讲解,⾸先创建三个list变量:list_a、list_b、list_c;以及两个scalar变量:string和name。 @{list_a} create list 1 a ${21} 21 12 @{list_b} set variable 1.0 a ${21} 21 21 @{list_c} create list ${string} set variable fighter is in shenzhen ${name} set variable luruifeng 备注:以下提供的⽤例都是断⾔成功。 01、should contain 、 should not contain 与should contain x times should contain ${list_b} 1.0 should not contain ${list_b} 1 should contain x times ${list_b} 21 2 说明:变量${list_b}包含对象1.0⽽不包含对象1,且对象21在变量${list_b}出现了两次。 02、should be empty 与 should not be empty should be empty ${list_c} should not be empty ${list_a} 说明:变量${list_c}没有赋值,所以为空;相反,变量${list_a}有赋初始值,故为⾮空。 03、should be equal 与 should not be equal should be equal ${list_a[1]} ${list_b[1]} should not be equal ${list_a} ${list_b} 说明:${list_a[1]}=a,${list_b[1]}=a故两个对象相等;⽽${list_a}和${list_b}有元素不⼀致,这两个对象不相等。 04、Should Be Equal As Numbers 与 Should not Be Equal As Numbers Should Be Equal As Numbers ${list_b[0]} 1.0000 Should not Be Equal As Numbers ${list_b[0]} 1.1 说明:${list_b[0]}=1,忽略精度,故与1.0000相等;⽽即使是忽略精度,1与1.1还是不相等的; 05、Should Be Equal As Integers与Should not Be Equal As Integers Should Be Equal As Integers ${list_a[3]} ${list_b[3]} Should not Be Equal As Integers ${list_a[4]} ${list_b[4]} 说明:${list_a[3]}=21,${list_b[3]}=21,⽽系统默认为字符串格式的"21",故需要转化为整数类型,转化为整数后两个对象相等; ${list_a[4]}=12,${list_b[4]}=21,即使转化为整数后两个对象依旧是不相等; 06、Should Be Equal As Strings与Should not Be Equal As Strings Should Be Equal As Strings ${list_a[2]} ${list_b[2]} Should not Be Equal As Strings ${list_a[0]} ${list_b[0]} 说明:${list_a[2]}=${21},${list_b[2]}=${21},⽽均为数值型的21,故需要转化为字符串类型,转化为字符串后两个对象相等;

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值