postman接口压力测试都能测试什么类型的接口

接口测试&-&postman接口测试学习笔记!
接口测试理论:
1.程序内部接口:方法与方法之间,模块与模块之间的交互,程序内部抛出的接口,比如bbs系统,有登录模块,发帖模块等等,那你要发帖就必须先登录,那么这两个模块就得有交互,它就会抛出一个接口供内部系统进行调用。
2.系统对外接口:比如你要从别的网站或服务器上获取资源和信息,别人肯定不会把数据库共享给你,他只能给你提供一个他们写好的方法来获取数据,你引用他提供的接口就能使用他写好的方法,从而达到数据共享的目的,比如说咱们的app,网址这些它在进行数据处理的时候都是通过接口进行调用的。
二.接口的分类
service接口,soap协议,请求报文和返回报文都是xml格式的,我们在测试的时候通过工具才能进行调用,测试。
api接口,http协议,通过路径来区分调用方法,请求报文都是key-value形式的,返回报文一般都是json串,有get和post等方法,这也是最常用的两种请求方式。
三.接口测试
1.接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。
2.其实接口测试就和普通功能测试没什么区别,区别就是功能测试是在页面上点点点,在页面上输入值,提交数据看结果,而接口测试没有页面,通过接口规范文档上的调用地址,请求参数,拼接报文,然后发送请求,检查返回结果。
四.接口测试的必要性
1.发现页面上发现不了的bug
2.检查系统的异常处理能力
3.检查系统的安全性,稳定性
4.前端随便变,接口测好了,后端不用变
五.接口测试流程
1.需求评审,熟悉业务和需求
2.开发提供接口文档
3.编写接口测试用例
4.用例评审
5.提测后开始测试
6.提交测试报告
六.接口测试测什么
1.单一接口的测试:接口的输入输出,数据合法性,异常处理
2.多接口组合测试:业务逻辑,业务场景
3. 结构检查
(1)​检查返回值的结构是否正确,如是json类型还是xml类型的数据
(2)字段名称是否正确​等
七.接口文档
接口测试的重要依据
包括:接口说明、调用url、请求方法(get\post)、请求参数,参数类型,参数说明,返回参数说明
八.通用接口用例设计
1.通过性验证:首先肯定要保证这个接口功能是好使的,也就是正常的通过性测试,按照接口上的参数,正常传入,是否可以返回正确的结果。
2.参数组合:现在有一个操作商品的接口,有个字段type,传1的时候代表修改商品,商品id、商品名称和价格有一个是必传的,这时候就要参数组合了。
3.接口安全
(1)绕过验证,比如购买了一个商品,它的价格是300元,那我在提交订单的时候,我把这个商品的价格改成-3元,后端如果没有做验证,那是不是我的余额还要增加?
(2)绕过身份权限,比如修改商品信息的接口,那必须得是卖家才能修改,那我传一个普通用户,能不能修改成功,我传一个其他卖家能不能成功?
(3)参数是否加密,比如说登录接口,用户名和密码是不是加密,如果不加密,别人拦截你的请求,就能获取到你的信息了,加密规则是否容易破解
(4)密码安全规则,密码的复杂程度校验
(5)异常验证:异常的,也就是我不按照你接口文档上的要求输入参数,来验证接口对异常情况的校验,必传非必传,参数类型,入参长度。
4.根据业务逻辑设计用例
列出测试点,造数据测试对应测试点
九.接口测试用例模板
项目,模块,用例id,接口名称,用例标题,请求方式,请求url,请求参数,前置条件,结果验证,请求报文,返回报文,测试结果,测试人员
二:操作说明:
:在chrome中安装好postman插件后,通常会在桌面上生成一个Postman的快捷方式,再次打开它时可以直接通过快捷方式也可以在chrome浏览器中的应用中打开它
2、打开后,在红圈里面输入需要测试的接口地址,选择post方式,然后在下面的Headers中手动添加一个相应的键值。这个很关键,一定要填写正确。
(如:json格式的提交数据需要添加:Content-Type
:application/x-www-form-urlencoded,否则会导致请求失败)
在地址栏里输入请求url:https://api.douban.com/v2/book/search?q='小王子'
选择“GET”方式,
点击"Url params",添加url
params key:id , value:1
点击“send”得到json数据如下:
Post请求:
在地址栏里输入请求url:http://localhost:9998/api/user/1
选择“POST”方式,
点击"application/x-www-form-urlencoded",
添加key:name ,
value:baidu-lulee007
添加key:sex ,
点击Send即可提交请求,然后在下面查看请求结果,并且可以以Pretty、Raw、Preview三种方式查看。如图:
返回数据进行json解析:
知识点说明:
一:Postman正确区分参数的几种类型
而body的类型可以有:
form-data、x-www-form-urlencoded、raw、binary.&
1. form-data
对应着http请求中的Content-Type为multipart/form-data.&
它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件File。当上传的字段是文件时,会有Content-Type来表名文件类型;content-disposition,用来说明字段的一些信息;
因为multipart/form-data类型有boundary隔离,可以上传多个文件,也可以上传键值对,它采用了键值对的方式。
2. x-www-form-urlencoded
application/x-www-from-urlencoded,会将表单内的数据转换为键值对,比如,name=Java&age
3. raw(支持各种原生的类型)
4. binary(二进制 )
通过上图可以看出,只能上传一个图片,
相当于Content-Type:application/octet-stream
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。&>&postman接口测试工具
postman接口测试工具
上传大小:1.07MB
postman接口测试工具,附安装说明,google浏览器插件
综合评分:0(0位用户评分)
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有0条
tianshanii
综合评分:
积分/C币:3
综合评分:
积分/C币:0
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
postman接口测试工具
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
(仅够下载10个资源)
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
postman接口测试工具&|&&|&&|&&|&&
当前位置: >
使用postman做接口测试
作者:wangxin1982314 & 来源:转载 &
浏览次数:
摘要: 1.在google应用商店搜索"postman"并添加如下插件到chrome浏览器中:点击postman图标启动postman:Postman操作界面如下:输入请求的接口地址,并选择请求方法,配置请求参数数据,请求头设置等,以POST请求为例子,如下:Postman经常使用的功能点: 补充:form的enctype属性为编码方式,常用有两种:application/x-www-form-urlen
1.在google应用商店搜索"postman"并添加如下插件到chrome浏览器中:
点击postman图标启动postman:
Postman操作界面如下:
输入请求的接口地址,并选择请求方法,配置请求参数数据,请求头设置等, 以POST请求为例子,如下:
Postman经常使用的功能点:
form的enctype属性为编码方式,常用有两种:application/x-www-form-urlencoded和multipart/form-data,默认为application/x-www-form-urlencoded。 当action为get时候,浏览器用x-www-form-urlencoded的编码方式把form数据转换成一个字串(name1=value1&name2=value2...),然后把这个字串append到url后面,用?分割,加载这个新的url。 当action为post时候,浏览器把form数据封装到http body中,然后发送到server。 如果没有type=file的控件,用默认的application/x-www-form-urlencoded就可以了。 但是如果有type=file的话,就要用到multipart/form-data了。浏览器会把整个表单以控件为单位分割,并为每个部分加上Content-Disposition(form-data或者file),Content-Type(默认为text/plain),name(控件name)等信息,并加上分割符(boundary)。
点击"Send"按钮返回结果:
接下来就可以按照接口文档 及业务文档做 详细的接口测试了。如参数超长,参数类型不符合要求,返回字段数,返回字段值等等做详细测试。
版权所有 IT知识库 CopyRight (C)
IT知识库 IT610.com , All Rights Reserved.Postman做各种类型的http接口测试
首先,做接口测试前要有明确的接口文档(e.g. ) ,假设已经在PC上安装好了Postman。
1. 普通的以key-value传参的get请求
e.g. 获取用户信息
Get请求,写入url拼好参数,发送请求,查看结果。
2. 以Json串传参的post请求
e.g. 获取用户余额
Post请求,写入url,点击Body-&raw, 写入Json串参数,发送请求
返回Authorization查看结果
3.& 请求时需要http权限验证
e.g. 修改用户余额
Post请求,写入url和参数,Type选Basic Auth ,填写用户名和密码(如有需要接口文档会给出),发送请求
4. &请求时需要添加请求标头
e.g. 获取用户信息2
Get请求,写入url和参数,点击Headers并添加header(如有需要接口文档中会给出),发送请求,查看结果
5.& 请求时需要添加Cookie
e.g. 修改用户余额2
Post请求,写入url和参数,打开插件Interceptor(如果提示安装需要在外网环境下安装,安装一次一劳永逸),在Headers里写入Cookie,值按接口文档所给的填写好,发送请求,查看结果。
6. 请求通过某个接口上传文件
&&& e.g.上传文件
&&& Post请求,写入url,在Body中修改text为File,填入参数名,选择本地文件,发送请求,查看结果
Postman管理请求
我们可以在Postman 创建Collection(可以按照项目,按照功能模块等看实际情况定)然后把多个请求保存在Collection里,这样就可以实现简单的管理。另外我们可以对Collection做一些简单的操作,比如把Collection导出到本地备份,批量运行Collection中的请求,等等,批量运行的速度好像很慢啊,这可能就是没人用Postman做批量接口测试的原因吧,可以大胆尝试看看,还会有更多的收获。
阅读(...) 评论()关注51Testing
你应该学会的接口调试神器—Postman高级用法
发表于: 08:40 &作者:IT米粉 & 来源:简书
推荐标签:
  这个神器相信大家都用过,程序员作为非专业的人员,非常需要这么一款简单轻量级的restful测试工具,但是不知道你是否知道,postman的强大之处不只是测试一下接口,还有其他非常赞的使用方式。  批量执行接口  入门级功能,但是被很多人忽略。postman左侧有个collections的tab,可以将接口进行分组,而且可以将分组以后的接口进行批量的执行,是一个非常赞的功能。当然,点击Runner也是可以的。  · 批量执行入口    ·&批量执行界面    可以设置环境、重复次数、每个接口延迟等,并且会显示批量执行的结果。  这个是非常基础的功能,有了这个基础以后,批量的测试以及自动化的测试都可以实现。  认证authorization  接口认证是所有接口必须做的事情,postman已经帮我们帮一些常用的接口认证机制可视化了,使用起来非常简单。  加入需要用的基础的auth认证,不管是auth1.0,还是auth2.0都能很好的支持。  当然,有的时候认证方式完全是自定义的,在authorization功能找不到认证的方式,例如很多的身份认证是需要通过时间戳、密码或者其他参数根据一定的算法规则,算出一个结果,那么是不是我们就没有办法使用了?当然不是,那就需要重点介绍的功能——postman脚本,但这之前,我们先介绍一下还有一个非常重要的概念:环境变量  环境变量  对于一个程序员来说,环境变量这个概念还是很好理解,这里的环境变量就是大家理解的那样了,设置了环境变量以后,所有的接口都可以使用这个变量,而且这个变量是可以通过代码进行修改的。  设置环境变量:  postman.setEnvironmentVariable("sign", mdmauth.toString());  使用如上环境变量,只要在参数中用{{sign}},如图:    执行前脚本  postman界面有个名叫pre-request script 的tab,从这里开始就介绍一下postman最重要的功能之一,脚本功能。pre-request script就是在请求之前执行的脚本。    执行前脚本我一般的用法就是用来修改环境变量,因为执行前做的事情,主要就是对请求的参数做一些处理。这里举个简单的例子:  某接口的接口认证规则,主要是通过header中的authentication来进行身份的认证,authentication的值是根据秘钥(key),时间戳(timeStamp),传入的参数(param),以及key、timeStamp和param组成生成字符串md5以后生成的sign,最终的结果类似于:  {"timeStamp": " 10:06:08",sign": "99f8d869d6a105afddd9d152c5894418"}  其实这是一个很常用场景,很多接口都是当前的参数和时间戳联合进行处理,来确保接口参数时效性,这样的场景直接通过参数或者环境变量肯定是有问题的,因为时间是动态的,只能动过程序来处理。我来处理方式大概就是:  ·&脚本计算出需要的值,将值设为环境变量  ·&参数设置的value为当前的环境变量  ·&执行测试  脚本如下:var date=new Date();var y = date.getFullYear();var m = date.getMonth() + 1;m = m & 10 ? ('0' + m) :var d = date.getDate();d = d & 10 ? ('0' + d) :var h = date.getHours();h=h & 10 ? ('0' + h) :var minute = date.getMinutes();minute = minute & 10 ? ('0' + minute) :var second=date.getSeconds();second=second & 10 ? ('0' + second) ://获取时间,格式为yyyy-mm-dd HH:mm:ssvar timespan=y + '-' + m + '-' + d+' '+h+':'+minute+':'+var key='dfc96ds8-e5a0-45aa-a2ec-2611cds71d4e';//通过request.data获取body的内容,这个是postman内置变量var param=request.console.log(key);console.log(timespan);console.log(param);//CryptoJS,postman的内置js库var sign=CryptoJS.MD5(key+timespan+param).toString();console.log(sign);var mdmauth="{\"timeStamp\": \""+timespan+"\",\"sysCode\": \"EUH\",\"sign\": \""+sign+"\"}";console.log(mdmauth);//设置环境变量postman.setEnvironmentVariable("mdmauth", mdmauth.toString());  postman的脚本是大家非常熟悉的javascript脚本,而且postman还内置了一些重用的js库,基本能满足所有的使用场景,我们常用内置的函数包括:  · Lodash,一个基础的函数库,大家应该都用过  ·&cheerio,可以理解为另一个jquery  ·&BackboneJS,js的mvc框架  ·&CryptoJS,js加密库,支持几乎所有的常用加密方式  使用过程中我们也需要获取请求的值,或者请求的结果,post有几个内置的变量可以直接获取:  ·&request 获取请求的参数,包括头和请求体  ·&responseHeaders 返回值的header  ·&responseBody 返回值的body  ·&responseCode 返回值的http code  除此之外,还有几个内置的全局动态环境变量:  ·&{{$guid}}: 生成一个guid  ·&{{$timestamp}}: 获取当前时间戳  ·&{{$randomInt}}: 获取一个动态整数  说真的,postman考虑的是在是太周到了,有了以上的神器,不只是可以自动化的编写脚本,而且还能非常方便的编写脚本,测试任何类型的接口。  具体内容,建议详细阅读:https://www.getpostman.com/docs/postman/scripts/postman_sandbox ,这个页面的内容非常重要。  测试脚本  前文介绍了批量执行接口,执行前脚本能相关内容,只要能支持编程,接口的测试就变得很灵活,容易定制。其实,正常的测试还有一个场景,接口的测试都是有依赖的,如接口的测试都依赖于token接口来获取脚本,或者批量测试的时候,后面的接口需要前面接口的返回值等,postman肯定也是支持的,批量执行接口结合测试脚本,使用就非常简单了。  测试的代码在Test这个tab中,这里的结果是测试完成后执行的内容。pre-request script是执行前,test是执行后,这样就能构成一个闭环了。(完美!!!)    示例代码:var jsonData = JSON.parse(responseBody);//tests的内容会在测试的时候展示tests["http code"] = responseCode.code === 200;tests["返回值正常"] = jsonData.Result===postman.setEnvironmentVariable("authtoken",CryptoJS.MD5(request.headers["UserName"]+jsonData.Data.FranchiseeCode));//执行成功后调用下一个接口postman.setNextRequest("获取待处理");  其中,有个函数postman.setNextRequest 会调用下一个接口,这两就可以让接口执行的有顺序,这就是我们需要的流程测试。  调试  既然涉及到编程,那么肯定也会涉及到调试,postman对调试的支持也是非常好的,只需要简单的设置,结合chrome就能进行调试。  首先,开启下chrome的调试。在chrome地址栏中输入:chrome://flags/#debug-packed-apps ,开启Debugging for packed app。(设置栏目较多,建议搜索找到)    接着,输入chrome://inspect/#apps,选择postman的inspect,就弹出我们熟悉的postman的调试框  我们在postman中的console.log或者断点都是可以进行调试的,和chrome调试一样的。  总结  以上只是介绍了部分关于postman使用中,稍微高级一点的功能,其实postman还有很多好的功能,如文档导出、纯脚本测试,这些功能如果大家有用到,建议仔细阅读官网的doc,postman绝对不是简单的一个测试接口的工具,是一个完全覆盖开发人员测试场景的接口调试工具。上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-7),我们将立即处理。
搜索风云榜
51Testing官方微信
51Testing官方微博
测试知识全知道

我要回帖

更多关于 postman接口测试实例 的文章

 

随机推荐