RobotFramework--接口测试request library关键字

使用Requests库进行API测试
本文详细介绍如何利用Python的Requests库及Robot Framework的Requests Library进行API接口测试,包括环境搭建、常用关键字说明、请求头设置及响应数据解析等关键步骤。

环境准备:

安装request: pip install requests

安装requests library:pip install robotframework-requests

 

Requests library常用关键字:

create session:创建一个session,连接某个服务器

get request:通过get方式发起请求

post request:通过post发起请求

to json:将文本转为json对象

示例:

  1. 导入reuqests library库、request库
  2. 创建session:create session
  3. 发起post请求 :post request
  4. 获取响应结果的文本内容:${response.content}
  5. 将响应结果的文本内容转化为json格式 :to json

 

请求头注意事项:headers

一般用来向服务端提交数据,有四种提交数据的格式,分别是:

Headers的Content-Type

1.application/x-www-form-urlencoded

2.application/json

3.multipart/form-data

4.text/xml

入参注意事项:

data和params的区别,data是HTTP Post请求带的json数据,params是HTTP请求中携带的query string

响应数据response:

content: 响应body的内容,二进制编码,如果返回只有文本内容,和text差不多

cookies:响应回写的cookies,cookieJar类对象

headers: 响应头内容

json(): 响应body内容,json格式

status_code: 状态码

text: 响应body的内容,默认unicode编码

### Robot Framework 关键字概述 Robot Framework 是一种基于关键字的自动化测试工具,支持通过多种方式扩展其功能。关键字可以分为内置关键字和用户自定义关键字两种类型。 #### 内置关键字 Robot Framework 提供了大量的内置库来满足不同的需求。这些库中的函数可以直接作为关键字调用。例如 `BuiltIn` 库提供了通用的操作方法;而像 `Collections`, `String`, `DateTime` 这样的标准库则专注于特定的数据处理任务[^1]。 ```robotframework *** Settings *** Library BuiltIn Library Collections *** Variables *** ${list} Create List apple banana orange *** Test Cases *** Example With Built-in Keywords Log To Console Hello, this is a test. Length Should Be ${list} 3 ``` #### 自定义关键字 为了提高代码重用性和可读性,通常会创建自己的关键字集合。这可以通过 Python 或 Java 编写外部库实现,也可以利用 RF 的内嵌资源文件机制直接在 `.robot` 文件内部定义关键字[^2]。 下面是一个简单的例子展示如何封装 HTTP POST 请求为一个新的关键字: ```python from robot.api.deco import keyword import requests class MyCustomLib(object): @keyword('Send Post Request') def send_post_request(self, url, data=None, json=None, **kwargs): response = requests.post(url=url, data=data, json=json, **kwargs) return response.status_code, response.text ``` 对应的机器人脚本里就可以这样使用这个新加入的关键字了: ```robotframework *** Settings *** Library ./path/to/MyCustomLib.py *** Test Cases *** Test Sending A Post Request Send Post Request http://example.com/api/v1/resource {"key": "value"} ``` 对于开发环境的选择方面,虽然官方自带了一个叫做 RIDE (Robot IDE) 的图形界面编辑器,但是很多开发者更倾向于使用 PyCharm 等集成开发环境中工作,并借助专门针对RF设计的支持插件获得更好的体验,比如语法高亮等功能[^3]. 最后给出一段综合性的实例片段用于说明多个不同来源的关键字是如何在一个实际项目中协同工作的[^4]: ```robotframework *** Settings *** Library RequestsLibrary Resource 接口测试.robot *** Variables *** ${base_url}= https://api.example.com/ *** Test Cases *** DemoCase10-weather [Template] 天气预报接口测试 # 查询的天气预报时间 # 预期结果城市 # 预期结果温度 2020-01-10 天津市 高温 5℃ 2020-01-08 天津市 高温 6℃ ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Miss糖豆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值