首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

requests做接口测试

Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner。

一、安装

使pip安装:

pip install requests

安装完后,运行一个简单的例子查看是否安装成功:

二、几种请求类型

①get请求:requests.get(‘url‘)

②post请求:requests.post("url/post")

③put请求:requests.put("url/put")

④delete请求:requests.delete("url/delete")

⑤head请求:requests.head("url/get")

⑥options请求:requests.options("url/get")

三、get请求

传递url参数

在get请求中,允许使用params关键字,以一个字典来传递这些参数,例如:

如果字典中存在None的值,是不会添加到url请求中的

ps:不使用params的话,也可在请求中输入全部的地址,效果相同,如:

r=requests.get(‘http://m.xxxxx.com/api/v2/activities?pageIndex=1&pageSize=10&categoryId=9‘)

注意:在某些get请求中,需要辨别用户身份,因此会需要在请求中发送cookie内容,如某些需要用户登录才能访问的页面,在接下来的文章中会进行讲解

四、post请求

1.以表单形式传递参数:

想要发送一些表单形式的数据,只需简单的传递一个字典给data关键字,在发送请求的时候,会自动编码为表单的形式,例如:

2.以json形式传递参数:

在很多情况下,想要发送的数据并非为表单形式,而是一个json格式的字符串,如果传递给data关键字的内容不是一个dict,而是

一个string,那么在发送的时候,数据会被直接发送出去,不会自动编码为表单形式。

为了将一个数据结构转换为json格式的字符串,首先得需要导入一个json包,两种常用的方法为:json.dumps()与json.loads()

注意:1.json编码支持的基本类型有:None, bool, int, float, string, list, tuple, dict。对于字典,json会假设key是字符串(字典中的任何非字符串key都会在编 码时转换为字符串),要符合JSON规范,应该只对python列表和字典进行编码。此外,在WEB应用中,把最顶层对象定义为字典是一种标准做法。 2.json编码的格式几乎和python语法一致,略有不同的是:True会被映射为true,False会被映射为false,None会被映射为null,元组()会被映射为列表[],如:

想要在post请求中使用data关键字来传递json格式的字符窜,首先得把dict转为string,例如:

除了可以对dick编码后以string的方式传递参数外,还可以直接使用json关键字直接传递,在传递时会自行进行编码为string类型

在post请求中用到的head部分和cookie部分。在之后的文章中会进行讲解

五、响应

1.响应状态

在请求发送成功后,可以用status_code来查看相应状态

下面是常见的HTTP状态码:

200 - 请求成功

301 - 资源(网页等)被永久转移到其它URL

404 - 请求的资源(网页等)不存在

500 - 内部服务器错误

HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用。HTTP状态码共分为5种类型:

2.响应内容

在上面的内容中,已经展示了用text来获取相应的内容,返回的内容为string

除此之外,requests中也带有带有一个内置的json解码器,将返回的内容转换为dict

那么通过json解码器转为dict后,想要查看到返回内容中某个具体参数的值,就比较方便啦!

3.响应内容编码格式

在获取响应内容的时候,可以使用r.encoding来查看相应内容的编码格式

也可以进行指定编码,当改变了编码方式是后,每次获取响应内容,都会使用新的编码方式(建议在所有情况下都使用utf-8,如果你对编码一点都不了解,那使用utf-8就对了!)

4.响应头内容

5.cookies

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181221G0QYZE00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券