Python requests接口测试实现代码


Posted in Python onSeptember 08, 2020

1、get方法请求接口

url:显而易见,就是接口的地址url啦

headers:请求头,例如:content-type = application/x-www-form-urlencoded

params:用于传递测试接口所要用的参数,这里我们用python中的字典形式(key:value)进行参数的传递。

举个例子:

import requests
url="http://api.shein.com/login"
header={"content-type":"application/x-www-form-urlencoded"}
param={"user_id":123456,"email":"123456@163.com"}
timeout=0.5
response = requests.get(url, headers=header, params=param, timeout=timeout)
# response = requests.request("get",url,headers=header,params=body,timeout=timeout)
print (response.text)

2、post方法请求接口

import requests

url="http://api.shein.com/login"

header={"content-type":"application/x-www-form-urlencoded"}

param={"user_id":123456,"email":"123456@163.com"}

timeout=0.5

response = requests.post(url, headers=header, data=param, timeout=timeout)

# response = requests.request("post",url,headers=header,data=param,timeout=timeout)

print (response.text)
import requests

url = "https://apipc.xinqgj.com/user/login"
payload = {"phone":"17779828887","pwd":"Ty+coun/mUj1saGV2OCK6p5kN9MNt8Uznj"}
headers = {'Content-Type': 'application/json'}

response = requests.request("POST", url, headers=headers, json = payload)
print(response.text)

3、requests.Session()请求接口

import requests

session = requests.Session()  #定义全局session,通过 session 保持会话
class Cms():

  def login(self):
    url = "http://192.168.1.110:8080/cms/manage/loginJump.do"
    header = {"Content-Type": "application/x-www-form-urlencoded"}
    parmas = {"userAccount": "admin", "loginPwd": "123456"}
    #通过全局 session 请求接口
    res = session.post(url=url, headers=header, data=parmas)
    print(res.json())

  def queryUserList(self):
    url = "http://192.168.1.110:8080/cms/manage/queryUserList.do"
    header = {"Content-Type": "application/x-www-form-urlencoded"}
    parmas = {"startCreateDate":"",
         "endCreateDate":"",
         "searchValue":"",
         "page":"1"}
    # 通过全局 session 请求接口
    res = session.post(url=url, headers=header, data=parmas)
    print(res.json())

if __name__ == '__main__':
  Cms().login()
  Cms().queryUserList()

注意:Python requests模块params、data、json的区别

  • requests 模块发送请求有 data、json、params 三种携带参数的方法。
  • params 在 get 请求中使用,data、json 在 post 请求中使用
    • 常见的 form 表单可以直接使用 data 参数进行报文提交,data 的对象则是 python 中的字典类型
    • 如果数据是 json 格式的参数,可直接使用 json 参数进行报文提交

4、接口的返回值操作

text:获取接口返回值的文本格式

json():获取接口返回值的json()格式

status_code:返回状态码(成功为:200)

headers:返回完整的响应头信息(headers['name']:返回指定的headers内容)

encoding:返回字符编码格式

url:返回接口的完整url地址

import requests

url = "https://xxxx.com/user/login"
payload = {"phone":"1777982xxxx","pwd":"Ty+coun/mUj1saGV2OCK6p5kN9MNt8UznjaGsQ5A/nKPSH1NZW"}
headers = {'Content-Type': 'application/json'}

response = requests.request("POST", url, headers=headers, json = payload)

print(response.text)
print(response.json())
print(response.status_code)
print(response.url)
print(response.headers)
print(response.encoding)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python类的基础入门知识
Nov 24 Python
python如何实现excel数据添加到mongodb
Jul 30 Python
Python 函数基础知识汇总
Mar 09 Python
详解python3中tkinter知识点
Jun 21 Python
如何用C代码给Python写扩展库(Cython)
May 17 Python
使用PyQt4 设置TextEdit背景的方法
Jun 14 Python
python文本数据处理学习笔记详解
Jun 17 Python
Python企业编码生成系统总体系统设计概述
Jul 26 Python
python获取array中指定元素的示例
Nov 26 Python
python二维键值数组生成转json的例子
Dec 06 Python
python多线程使用方法实例详解
Dec 30 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
Apr 14 Python
Python unittest装饰器实现原理及代码
Sep 08 #Python
Python selenium环境搭建实现过程解析
Sep 08 #Python
Python unittest生成测试报告过程解析
Sep 08 #Python
Python使用Selenium模拟浏览器自动操作功能
Sep 08 #Python
Python unittest如何生成HTMLTestRunner模块
Sep 08 #Python
Django模型验证器介绍与源码分析
Sep 08 #Python
Python unittest discover批量执行代码实例
Sep 08 #Python
You might like
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
2011/06/04 PHP
ecshop 批量上传(加入自定义属性)
2012/03/20 PHP
PHP中数组合并的两种方法及区别介绍
2012/09/14 PHP
php动态生成版权所有信息的方法
2015/03/24 PHP
Nginx下配置codeigniter框架方法
2015/04/07 PHP
php生成验证码,缩略图及水印图的类分享
2016/04/07 PHP
laravel项目利用twemproxy部署redis集群的完整步骤
2018/05/11 PHP
php curl操作API接口类完整示例
2019/05/21 PHP
NodeJS的模块写法入门(实例代码)
2012/03/07 NodeJs
JS 作用域与作用域链详解
2015/04/07 Javascript
Javascript闭包与函数柯里化浅析
2016/06/22 Javascript
JS实现iframe自适应高度的方法(兼容IE与FireFox)
2016/06/24 Javascript
js 提交form表单和设置form表单请求路径的实现方法
2016/10/25 Javascript
怎样在vue项目下添加ESLint的方法
2019/05/16 Javascript
Vue路由模块化配置的完整步骤
2019/08/14 Javascript
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
[01:47]2018年度DOTA2最佳教练-完美盛典
2018/12/16 DOTA
基于wxpython开发的简单gui计算器实例
2015/05/30 Python
小议Python中自定义函数的可变参数的使用及注意点
2016/06/21 Python
Python实现PS滤镜的旋转模糊功能示例
2018/01/20 Python
python 中字典嵌套列表的方法
2018/07/03 Python
python实现知乎高颜值图片爬取
2019/08/12 Python
Python 测试框架unittest和pytest的优劣
2020/09/26 Python
python中四舍五入的正确打开方式
2021/01/18 Python
html5唤起app的方法
2017/11/30 HTML / CSS
小程序canvas中文字设置居中锚点
2019/04/16 HTML / CSS
预订全球最佳旅行体验:Viator
2018/03/30 全球购物
2014教师年度工作总结
2014/11/10 职场文书
2014年电话销售工作总结
2014/12/01 职场文书
工作能力自我评价2015
2015/03/05 职场文书
婚宴主持词
2015/06/30 职场文书
学校扫黄打非工作总结
2015/10/15 职场文书
房屋转让协议书(标准范本)
2016/03/21 职场文书
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS
《极主夫道》真人电影正式预告 定档6月3日上映
2022/04/05 日漫
Python matplotlib安装以及实现简单曲线的绘制
2022/04/26 Python