WebAPI接口的自动化测试1
自动化测试要满足四个条件:
1 - 自动化用例能够完成所有测试步骤 -------- postman不支持 没有完整的用例管理系统
2 - 每个用例的输入数据,必须要自动填入 -------- postman支持
3 - 每个用例的结果检查,必须可以用代码自动完成 ------ postman支持
4 - 具备环境初始化和清除功能 ------ postman不支持 postman受到沙盒限制并不能任意引用第三方库
python语言也可以实现web api接口测试。主要是构造出相应的http请求。
* 内置库有 httplib urllib2
* 第三方库 urllib3 requests pyCurl
因此,要想进行接口自动化,我们就来了解下Request库。
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Requests库:第三方库,简单易用、功能强大,是python实现的最简单易用的HTTP库。
需要手动安装: pip install requests 提示successful即安装成功,模块requests就可以使用了 import requests
构建各种http请求:
requests.get('htpps://api.github.com/events') --------- http.get请求
requests.post('http://httpbin.org/post', data={'key':'value'}) ----------- http.post请求
requests.put('http://httpbin.org/put', data={'key':'value'}) ------------ http.put请求
requests.delete('http://httpbin.org/delete') ------------ http.delete请求
构建URL参数:
payload = {'key1':'value1', 'key2':'value2'}
requests.get('http://httpbin.org/get', params=payload)
构建请求头:
只需要简单的传递一个字典给headers参数就可以了,如:
h = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36....'}
requests.get(url, headers=h, params=payload)
定制请求体:
① 请求体类型 Content-Type: application/x-www-form-urlencoded
只需要简单的穿衣一个字典给data参数就可以了,如:
payload1 = {‘action’: 'add_course',
'data':'''{
'name':'数学',
'desc':'数学课程',
'display_idx': '4'
}'''
}
resp = request.post(url, data=payload1)
② 请求体类型 Content-Type: application/json
可以将字典直接传递给json参数 如:
payload2 = {‘action’: 'add_course', 'data':{ 'name':'数学', 'desc':'数学课程', 'display_idx': '4'}}
resp = requests.post(url, json=payload2)
查看响应内容:
先获取到响应对象resp = requests.post(url, data=payload) 就可以查看服务器返回的各种消息内容
查看响应头 ----- resp.headers
查看响应体 ----- resp.text
如果响应体恰巧是json格式 resp.json() 自动把json格式的字符串转成python对象,通常都是字典类型。
那么再获取字典里面具体的值就好操作了。如:
retObj = resp.json()
if retObj['retcode'] == 0:
print('pass')
else:
print(retObj['retcode'])
WebAPI接口的自动化测试1的更多相关文章
- WebAPI接口的自动化测试2
接口认证: 服务器的接口需要通过一个验证机制,这个验证机制可以是session或token 以session为例. session存储与服务器,通常用户登录后,服务器会把配套的sessionid发送给 ...
- WebApi接口 - 如何在应用中调用webapi接口
很高兴能再次和大家分享webapi接口的相关文章,本篇将要讲解的是如何在应用中调用webapi接口:对于大部分做内部管理系统及类似系统的朋友来说很少会去调用别人的接口,因此可能在这方面存在一些困惑,希 ...
- C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解
前言:已经有一个月没写点什么了,感觉心里空落落的.今天再来篇干货,想要学习Webapi的园友们速速动起来,跟着博主一起来学习吧.之前分享过一篇 C#进阶系列——WebApi接口传参不再困惑:传参详解 ...
- C#进阶系列——WebApi 接口参数不再困惑:传参详解
前言:还记得刚使用WebApi那会儿,被它的传参机制折腾了好久,查阅了半天资料.如今,使用WebApi也有段时间了,今天就记录下API接口传参的一些方式方法,算是一个笔记,也希望能帮初学者少走弯路.本 ...
- ASP.NET MVC对WebAPI接口操作(添加,更新和删除)
昨天<怎样操作WebAPI接口(显示数据)>http://www.cnblogs.com/insus/p/5670401.html 既有使用jQuery,也有使作HttpClient来从数 ...
- WebApi 接口参数不再困惑:传参详解
阅读目录 一.get请求 1.基础类型参数 2.实体作为参数 3.数组作为参数 4.“怪异”的get请求 二.post请求 1.基础类型参数 2.实体作为参数 3.数组作为参数 4.后台发送请求参数的 ...
- 利用委托与Lambada创建和调用webapi接口
前言 现在项目中用的是webapi,其中有以下问题: 1.接口随着开发的增多逐渐增加相当庞大. 2.接口调用时不好管理. 以上是主要问题,对此就衍生了一个想法: 如果每一个接口都一个配置文件来管 ...
- 【转】C#进阶系列——WebApi 接口参数不再困惑:传参详解
原文地址:http://www.cnblogs.com/landeanfen/archive/2016/04/06/5337072.html 阅读目录 一.get请求 1.基础类型参数 2.实体作为参 ...
- WebAPI接口测试之matthewcv.WebApiTestClient
WebAPI接口测试之matthewcv.WebApiTestClient matthewcv.WebApiTestClient 1.安装matthewcv.WebApiTestClient包 打开v ...
随机推荐
- 一个类GraphQL的ORM数据访问框架发布
Zongsoft.Data 发布公告 很高兴我们的 ORM 数据访问框架(Zongsoft.Data)在历经两个 SaaS 产品的应用之后,今天正式宣布对外推广! 这是一个类 GraphQL 风格的 ...
- PHP Laravel-包含你自己的帮助函数
你可能想创建一个在应用的任何地方都可以访问的函数,这个教程将帮你实现
- PHP Laravel 队列技巧:Fail、Retry 或者 Delay
当创建队列jobs.监听器或订阅服务器以推送到队列中时,您可能会开始认为,一旦分派,队列工作器决定如何处理您的逻辑就完全由您自己决定了. 嗯……并不是说你不能从作业内部与队列工作器交互,但是通常情况下 ...
- 基于Docker的Mysql主从复制
基于Docker的Mysql主从复制搭建 为什么基于Docker搭建? 资源有限 虚拟机搭建对机器配置有要求,并且安装mysql步骤繁琐 一台机器上可以运行多个Docker容器 Docker容器之间相 ...
- 领扣(LeetCode)最长和谐子序列 个人题解
和谐数组是指一个数组里元素的最大值和最小值之间的差别正好是1. 现在,给定一个整数数组,你需要在所有可能的子序列中找到最长的和谐子序列的长度. 示例 1: 输入: [1,3,2,2,5,2,3,7] ...
- python:Asyncio模块处理“事件循环”中的异步进程和并发执行任务
python模块Asynico提供了管理事件.携程.任务和线程的功能已经编写并发代码的同步原语. 组成模块: 事件循,Asyncio 每个进程都有一个事件循环. 协程,子例程概念的泛化,可以暂停任务, ...
- 解决django或者其他线程中调用scrapy报ReactorNotRestartable的错误
官网中关于ReactorNotRestartable的错误描述(摘自:https://twistedmatrix.com/documents/16.1.0/api/twisted.internet.e ...
- [FPGA]Verilog实现可自定义的倒计时器(24秒为例)
目录 想说的话... 样例_边沿检测计数器 代码讲解 仿真演示 拓展_自定义倒计时数和倒计时间隔 代码讲解 仿真演示 总结 实例_24秒倒计时器 想说的话... 本次实现的是一个24秒倒计时器,功能顾 ...
- 新闻实时分析系统-HBase分布式集群部署与设计
HBase是一个高可靠.高性能.面向列.可伸缩的分布式存储系统,利用Hbase技术可在廉价PC Server上搭建 大规模结构化存储集群. HBase 是Google Bigtable 的开源实现,与 ...
- SpringSecurity环境下配置CORS跨站资源共享规则
一.CORS简述 要说明CORS(Cross Origin Resourse-Sharing) 跨站资源共享,就必须先说同源策略.长话短说,同源策略就是向服务端发起请求的时候,以下三项必须与当前浏览器 ...