这个应该是全网最全的接口测试工具之postman

这篇具有很好参考价值的文章主要介绍了这个应该是全网最全的接口测试工具之postman。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

概念

接口测试是什么?

百度百科给出的解释是: 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。

接口包括内部接口和外部接口:

内部接口:开发人员自己开发的对自身系统提供的接口。

外部接口:开发系统调用外部的,例如:微信、支付宝、其它接口等。

在软件测试工作中,接口统称为API,用来实现数据的交互。接口测试的本质是:测试接口能否正常的交互数据、权限控制以及异常场景。

常用接口测试工具

常用的接口测试工具有postman、jmeter

接口返回数据

接口返回数据的格式一般有:json、html、xml

1、json格式(市面占比85%以上)

一般有三组数据:{"code":200,"message":"请求成功","dataMap":{"..."}

code: 返回状态码

message:对返回信息或者状态错误的解释说明

dataMap:真正的返回数据

2、html格式

<html>
    <title></title>
    <body>
        <code>200</code>
        ......
    </body>
</html>

 3、xml格式

<?xml?version="1.0"encoding="utf-8">
      <code>200</code>
        ......
</xml>

接口测试协议

1.webservice协议:

接口地址:http://......?wsdl

2.dubbo协议:

接口地址以dubbo://......

适用于少量数据的传输

3.http协议(90%):

接口地址:http://.....

http端口为: 80

https = http+ssl 安全传输协议 ,端口为443

市面上主要使用HTTP协议进行数据传输,所以我们主要学习这个协议。

什么是http协议?

http是超文本传输协议,主要用于浏览器和服务器之间传输数据,交互有两个部分:请求和响应。

请求: get、post、put、delete

请求部分一般包含的内容:

1、请求行:请求方式、请求地址和协议

2、请求头:HTTP协议使用HTTP头来传递请求的元信息。HTTP头是一个用冒号分隔的名称/值对,冒号前面是HTTP头发名称,后面是HTTP的值,例如:

accept:application/json ---客户端可以接收的数据格式

X-Requested-with:XMLHttpRequest --异步请求

user-agent: --客户端的用户

Host:--请求的主机地址

cookie:--cookie信息(请求的)

accept-encoding: gzip, deflate, br--压缩方式

3、空行: 发送回车符和退行,通知服务器一下不再有请求头;

4、消息体: HTTP请求中带有查询字符串时,如果是GET方法,查询字符或表单数据附加值请求行中,则消息体中就没有内容;如果是POST方法,查询字符串或表单数据及添加在消息体中。

响应: 这里介绍一下响应状态码

2xx:表示请求发送成功;

3xx:表示资源发生转移,俗称重定向;

4xx: 表示接口的路径找不到,客户端错误;

5xx:表示系统内部异常,一般存在接口缺陷或者请求内容不正确,服务器错误。

响应的部分:

1、响应行:协议、响应码、响应信息

2、响应头:

server:nginx --服务

date ---时间

content-type: application/json;charset=UTF-8

set-cookie: --响应的

3、 空一行

4、响应的具体内容

安装postman

1、进入postman官网www.postman.com/downloads/

2、根据自己的电脑配置下载相关的安装包

 文章来源地址https://www.toymoban.com/news/detail-788530.html

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

3、安装成功打开

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

细化一下postman的页面内容:

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

Params:用于在get请求传参

Authorization:postman自带的鉴权功能

Headers:请求头

Body:post请求传参

- none:没有参数

-- form-data:既有文件又有键值对

-- x-www-form-urlencoded:只传输键值对

-- raw:创建JSon、TXT、xml、HTML、js传输

-- binary:把文件以二进制方式传输

Pre-request Script:接口请求之前的脚本,用js格式写

Tests:断言的代码

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

响应部分

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

 

Body:返回的数据

-- Pretty:以json的格式展示

-- Raw:以文本的格式展示

-- Preview:以网页的格式展示

cookie:返回的cookie信息

Header:响应头

Test Results:断言结果

内置的动态参数

时间戳:{{$timestamp}}

生成0-1000的随机整数:{{$randomInt}}

生成一个GUID的字符串:{{$guid}}

环境变量和全局变量

在企业当中,一般有开发环境、测试环境和线上环境,有一些企业也会有预发布环境,我们在做接口测试的时候会发现,这些环境中接口的地址除了ip地址不一样,其他的地方都是一样的,我们在实际测试中,不可能每个环境都写一套测试逻辑,这个时候就需要使用到环境变量,环境变量为全局变量。

新增三个环境,在环境变量中添加对应的ip地址变量:

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

将接口地址中的IP地址参数化格式为{{ip}},试着运行一次:

接口关联

在实际工作中,有一些变量的值是动态变化的,并且下一个接口请求的时候需要传入该参数的值,比如token。

我们需要先在上一个接口的响应中获取token的值,并将该值设置为全局变量,再在下一个接口中使用参数化的形式将该值传入,即可实现了接口的关联。

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

1、接口关联方法一:json提取器

//把responseBody转为json字符串
var jsvalue = JSON.parse(responseBody);
//将jsvalue的值打印到控制台上
console.log(jsvalue)
// 提取token的值,并保存到全局变量
pm.globals.set("token", jsvalue.token);
复制代码

 

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

postman也提供了常用的Tests编写方法,如下图所示:

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

2、接口关联方法二:正则表达式提取器 

{
    "tag":{
        "id":100,
        "name":"张三"
    }
}

假如响应数据的内容如上,我们现在要提取100,则在Tests中使用正则表达式提取的规则为 responseBody.match(new RegExp('"id":(.+?),')),这个方法表示匹配"id":后面且,之前的内容,如果将该结果打印到控制台,为一个数组:[" "id":100,","100"],若只取到100,则需要再加上索引responseBody.match(new RegExp('"timestamp":(.+?),'))[1]。

3、接口关联方法二:cookie提取器

如下图所示,我们需要提取响应结果Cookies中的值,并将结果打印到控制台上。

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

方法如下:

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

 

//提取Cookies中SERVERID中的Value值并保存在cookies_serverid变量中
var cookies_serverid = postman.getResponseCookie('SERVERID').value
//将变量cookies_serverid中的值打印到控制台
console.log(cookies_serverid)

批量执行

通过以上操作,我们可以实现接口与接口之间的关联,要彻底实现自动化,需要进行批量执行。

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

断言

要想完整的实现接口测试,自然是少不了断言的,在postman中,断言的内容写在Tests中,系统提供了八种断言方式:

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

八种断言方式:

 

//1、返回的状态码为200
pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});
 
//2、返回的结果中包含一个指定的字符串
pm.test("Body matches string", function () {
    pm.expect(pm.response.text()).to.include("string_you_want_to_search");
});
 
//3、对返回结果做json字段检查
pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});
 
//4、断言返回的结果等于一个字符串
pm.test("Body is correct", function () {
    pm.response.to.have.body("response_body_string");
});
 
//5、断言响应头中包含有指定的响应头
pm.test("Content-Type is present", function () {
    pm.response.to.have.header("Content-Type");
});
 
//6、断言接口请求的时间少于200ms
pm.test("Response time is less than 200ms", function () {
    pm.expect(pm.response.responseTime).to.be.below(200);
});
 
//7、断言一个post请求返回的状态码是否在指定的范围之间
pm.test("Successful POST request", function () {
    pm.expect(pm.response.code).to.be.oneOf([201, 202]);
});
 
//8、断言返回的状态码信息中包含指定的字符串
pm.test("Status code name has string", function () {
    pm.response.to.have.status("Created");
});

全局断言

一般情况下,每个接口都会断言返回的状态码为200,这样我们可以把这个断言设置为全局断言。

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

Newman

Newman是什么?

Newman就是纽曼手机这个经典牌子,哈哈,开玩笑啦。简单地说Newman就是命令行版(CLI模式(Command-line Interface:命令行模式))的Postman。

Newman可以使用Postman导出的collection文件直接在命令行运行,把Postman界面化运行的操作用命令行代替。因为是命令行操作,因此可以配合jenkins做接口自动化测试。

安装Newman

Newman是用纯JS写的,所以它的运行需要NodeJS运行库的支持,因而该版本的下载前提是你的电脑上得提前安装NodeJS,然后再用NodeJS下载Newman。

命令:npm install -g newman

如何使用?

要运行postman中的接口测试用例,需要导出接口测试用例集,导出环境变量和全局变量,将导出的文件保存在本地。

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

进入命令行窗口,运行命令:这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

newman run "E:\testApi\yongli.json" -e "E:\testApi\hunjingbl.json" -g "E:\testApi\quanjubl.json" -r cli,html,json,junit --reporter-html-export "E:\testApi\report.html"

说明: newman run后面直接跟测试用例集文件,-e后面跟环境变量文件,-g后面跟全局变量文件,-r后面跟测试报告的输出格式与输出报告的文件路径。

这是运行成功的命令窗口显示:

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

打开输出的测试报告文件:

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

 

jenkins持续集成

Jenkins的安装大家就自行百度查询

安装成功之后,新建一个项目

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

进入项目配置页面,配置相关信息

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

System.setProperty("hudson.model.DirectoryBrowserSupport.CSP","")

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

 

后记

关于接口测试的内容还有很多,比如Python自动化测试接口,以及对应的测试框架等等,要想在职场中立于不败之地,必须要不断的学习,以上的内容是我作为一个测试小白的简单概述,希望大神们多多指教。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取 

这个应该是全网最全的接口测试工具之postman,postman,测试工具,测试用例,单元测试,jenkins,功能测试,selenium

 

到了这里,关于这个应该是全网最全的接口测试工具之postman的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 测试了Copilot辅助编程后,就离不开这个AI工具了

    微软用·chatGPT 4· 对·github copilot X·升级后,本是怀着赠热点的心态测试了一下其功能。但 Copilot 智能化程度之高,令我吃惊,两周下来已离开不这个工具了。 下面简单分享一下其使用过程,以及对如何使用好这个工具的个人看法. IDE开发环境我使用的是 VSCode 与 Visual Studio2

    2024年02月06日
    浏览(49)
  • 接口测试工具——Postman测试工具 & Swagger接口测试+SpringBoot整合 & JMeter高并发测试工具

    头部携带token 类型选择JSON https://apifox.com/ swagger2,较多 swagger3, Knife4j的前身是swagger-bootstrap=ui,前身swagger–bootstrap-ui是一个纯swagger–ui的ui皮肤项目 https://doc.xiaominfo.com/docs/quick-start 底层就是swagger 序号 注解 作用 1 @Api(tags = “图书的api接口类”) 左侧名字 2 @ApiOperation(“findPa

    2024年02月12日
    浏览(63)
  • 全网最牛最全Postman接口测试: postman设置接口关联,postman实现参数化

    在实际的接口测试中,后一个接口经常需要用到前一个接口返回的结果, 从而让后一个接口能正常执行,这个过程的实现称为关联。 1、利用postman获取上一个接口指定的返回值,可以在tests中提取响应中的字典做全局变量;如下图    2、编写代码设置全局变量,会自动把全局

    2024年02月08日
    浏览(56)
  • 全网最牛最全Postman接口测试(五): postman设置接口关联,postman实现参数化

    在实际的接口测试中,后一个接口经常需要用到前一个接口返回的结果, 从而让后一个接口能正常执行,这个过程的实现称为关联。 1、利用postman获取上一个接口指定的返回值,可以在tests中提取响应中的字典做全局变量;如下图  2、编写代码设置全局变量,会自动把全局变

    2023年04月08日
    浏览(45)
  • 一文搞定接口测试及常用接口测试工具解析

    目录 首先,什么是接口呢? 一、常见接口: 二、前端和后端: 三、什么是接口测试: 四、接口组成 五、为什么要做接口测试: 六、接口测试怎么测:  七、用什么工具测 接口一般来说有两种,一种是程序内部的接口,一种是系统对外的接口。 系统对外的接口:比如你要

    2024年02月03日
    浏览(89)
  • 接口测试及接口抓包常用的测试工具

    接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。测试的重点是要检查数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系等。 是节省时间前后端不同步时便可以进行测试; 是测试一

    2024年02月12日
    浏览(49)
  • 接口测试流程、测试点和测试工具

    目录 前言: 一、什么情况下开展接口测试? 二、如何进行接口测试

    2024年02月11日
    浏览(60)
  • 压力测试+接口测试(工具jmeter)

    jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,是一个比较轻量级的测试工具,使用起来非常简单。因 为jmeter是java开发的,所以运行的时候必须先要安装jdk才可以。jmeter是免安装的,拿到安装包之后直接解压就可以使用,同时它在 linux

    2024年01月17日
    浏览(56)
  • 接口测试及接口抓包常用测试工具和方法?

    作为测试领域中不可或缺的一环,接口测试和抓包技术在软件开发过程中扮演着至关重要的角色。不论你是新手还是有一些经验的小伙伴,本篇文章都会为你详细介绍接口测试的基本概念、常用测试工具和实际操作技巧,让你轻松掌握这一技能。 接口测试:什么是接口?为什

    2024年02月12日
    浏览(44)
  • 软件接口测试是什么?有哪些好用的接口测试工具?

    在软件开发中,接口是不可避免的。软件接口测试是一种验证应用程序接口是否按照设计规范进行交互和协作的测试方法。接口测试是将模块之间的接口连接在一起以进行完整系统测试的关键部分。 当软件开发过程中不同模块之间需要数据交互,采用接口协议来实现模块之间

    2024年02月11日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包