当前位置: 首页 > news >正文

接口测试基础三--python完成接口调用

   前面的接口测试基础一文章有讲到,一次http接口调用,包含了httprequest(http请求)和httpresponse(http响应)两部分,要想做好接口测试,就需要对这两部分内容进行学习,再简单介绍下:

一、http request剖析

请求方法:即http请求的提交方式,一般以get和post居多

URI:请求自愿的表示,可以理解为一个请求的路径信息

协议:http协议

版本:1.1

请求正文:请求参数

请求头:告诉服务器关于客户端环境和请求正文相关的一些信息,例如浏览器版本,请求参数的长度。

请求头包含:user-agent:告诉浏览器客户端的相关信息;refer:告诉服务器次请求是从哪个页面上发出来的额 x-requested-with:高速服务器这个是一个ajax请求 cookie:带给服务器的cookie信息。

    请求头可以在代码中指定,添加,通过键值对的形式,调用:addheader(请求头参数键值对)

二、http response剖析

响应状态码:标记响应状态的标识,例如:200-成功,404资源找不到,500服务器异常,302重定向

响应头信息:告诉客户端关于服务器环境和请求正文相关的一些信息,例如服务器类型,响应报文格式。

响应报文:针对请求从服务器相应回来的数据,比如 HTML,xml,json等

响应头包含:server:告诉客户端服务器的环境,如 Apache set-cookie:告诉浏览器需要缓存的cookie数据。location:告诉浏览器跳到哪里 content-type:告诉浏览器返回的数据类型和编码

三、python request完成接口请求

1.request安装

安装好python环境后,在cmd直接输入:pip install requests 就可以安装成功

2.request之get请求,如下所示:

2.1发送带参数的请求

import requests

url=要访问的地址

param={参数以键值对传入}

res=requests.get(url,param)

print("请求结果是:",res.json())

 

2.2发送带cookie的请求

import requests

url_1=要访问的地址

param_1={参数以键值对传入}

res_1=requests.get(url,param)

print("请求结果是:",res_1.json())

url_2=要访问的地址

param_2={参数以键值对传入}

res_2=requests.get(url_2,param_2,cookies=res_1.cookies)

print("请求结果是:",res_2.json())

 

2.3发送带定制头的请求

import requests

url_1=要访问的地址

param_1={参数以键值对传入}

headers_1={"user-agent":"Mozilla/5.0"}

res_1=requests.get(url,param=param_1,headers=headers_1)

print("请求结果是:",res_1.json())

print("请求头是:",res_1.headers)

 

请求方式为post时,发送请求res=requests.post(url,params,headers)即可

 

转载于:https://www.cnblogs.com/123blog/p/10294572.html

相关文章:

  • echarts适配移动端
  • nginx 优化
  • vue复习
  • 操作数组的方法
  • MySQL安装失败,提示需安装MicroSoft Visual C++ 2013 Redistributable
  • HashMap源码分析笔记(一)
  • redis 学习笔记-cluster集群搭建
  • Java定义三个点Object...
  • Python学习链接
  • js给图层添加动态样式
  • LaTeX :font size 修改字体大小的几种方式
  • 4.1链表
  • 信号(SIGNAL)与槽(SLOT)
  • 类的约束 和 异常处理
  • jzoj3208. 【JSOI2013】编程作业(kmp)
  • JavaScript-如何实现克隆(clone)函数
  • (十五)java多线程之并发集合ArrayBlockingQueue
  • AHK 中 = 和 == 等比较运算符的用法
  • CentOS7简单部署NFS
  • crontab执行失败的多种原因
  • css系列之关于字体的事
  • isset在php5.6-和php7.0+的一些差异
  • Java 9 被无情抛弃,Java 8 直接升级到 Java 10!!
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • Linux链接文件
  • magento 货币换算
  • MD5加密原理解析及OC版原理实现
  • Mysql优化
  • React+TypeScript入门
  • 阿里云购买磁盘后挂载
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 番外篇1:在Windows环境下安装JDK
  • 给第三方使用接口的 URL 签名实现
  • 聊聊redis的数据结构的应用
  • 深度学习入门:10门免费线上课程推荐
  • 算法-图和图算法
  • 详解NodeJs流之一
  • 《天龙八部3D》Unity技术方案揭秘
  • 进程与线程(三)——进程/线程间通信
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #pragma预处理命令
  • (02)Cartographer源码无死角解析-(03) 新数据运行与地图保存、加载地图启动仅定位模式
  • (06)Hive——正则表达式
  • (办公)springboot配置aop处理请求.
  • (初研) Sentence-embedding fine-tune notebook
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (论文阅读26/100)Weakly-supervised learning with convolutional neural networks
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (一)SpringBoot3---尚硅谷总结
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • .Net 4.0并行库实用性演练
  • .NET C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
  • .NET CORE 2.0发布后没有 VIEWS视图页面文件