我们之前使用 Postman,Jmeter 做接口的测试。
接口本质就是 发送一个请求给服务器,服务器请求的数据,返回结果。


不管使用什么工具,或者使用代码做接口测试,最重要的就是将请求发送服务器,拿到服务器返回的结果。

requests 简介

参考文档:
中文版: https://docs.python-requests.org/zh_CN/latest/
英文版:https://docs.python-requests.org/en/master/index.html

requests 是Python中的一个专门进行 模拟发送请求的 第三方库,使用 reqeusts 可以非常方便的将请求发送到服务器。

安装requests

打开【File 文件】—【Settings 设置】
image.png
找到 项目配置,点击【+】进行搜索安装。
image.png
搜索 requests 进行安装
image.png
安装成功之后会有对应的提示。
image.png

发送第一个Get请求

api_demo.py

  1. # 导入requests 模块
  2. import requests
  3. # 发送get 请求
  4. url = "http://47.100.175.62:3000/api/v1/topics"
  5. # 发送get请求,将请求结果保存到r中
  6. r = requests.get(url)
  7. # 打印http状态码
  8. print(r.status_code) # 200
  9. # 打印服务器返回的结果
  10. print(r.json())

get请求如果请求的有参数,在代码中应该这样来做

发送Get请求(带有请求参数)

  1. # 导入requests 模块
  2. import requests
  3. # 发送get 请求
  4. # 请求url
  5. url = "http://47.100.175.62:3000/api/v1/topics"
  6. #设置请求参数
  7. query_data = {
  8. "limit":1,
  9. "tab":"ask"
  10. }
  11. # 发送get请求,带上请求参数,请求参数传递给params (params 固定的)。 将请求结果保存到r中
  12. r = requests.get(url,params=query_data)
  13. # 打印http状态码
  14. print(r.status_code) # 200
  15. # 打印服务器返回的json结果
  16. print(r.json())

发送Post请求

api_post_demo.py

  1. # 导入 requests
  2. import requests
  3. # 设置请求地址
  4. u = "http://49.233.108.117:28019/api/v1/user/register"
  5. # 请求的body
  6. body = {
  7. "loginName": "17018991988",
  8. "password": "123456"
  9. }
  10. # 发送post请求, post请求使用json格式,json(固定的)
  11. r = requests.post(u,json=body)
  12. # 打印状态码
  13. print(r.status_code)
  14. # 打印返回结果
  15. print(r.json())

练习

根据如下接口文档,使用Python的方式发送请求。


请求方式:Post
请求路径:http://47.100.175.62:3000/api/v1/topics
请求参数

  • accesstoken String 用户的 accessToken
  • title String 标题
  • tab String 目前有 ask share job dev。开发新客户端的同学,请务必将你们的测试帖发在 dev 专区,以免污染日常的版面,否则会进行封号一周处理。
  • content String 主体内容
    1. {
    2. "accesstoken":"",
    3. "title":"",
    4. "tab":"",
    5. "content":""
    6. }
    可以使用token值: d204ec39-c0ad-4366-8663-3246b1364d90
  1. import requests
  2. url = "http://47.100.175.62:3000/api/v1/topics"
  3. body_data = {
  4. "accesstoken":"d204ec39-c0ad-4366-8663-3246b1364d90",
  5. "title":"a"*10,
  6. "tab":"ask",
  7. "content":"helloworld"*1000
  8. }
  9. r = requests.post(url,json=body_data)
  10. print(r.status_code)
  11. print(r.json())