ope电竞竞猜官方网站_ope体育电竞_ope滚球
ope电竞竞猜官方网站

动漫情侣头像,西华大学-ope电竞竞猜官方网站_ope体育电竞_ope滚球

admin admin ⋅ 2019-05-21 07:02:35

Postman 是什么?

Postman 简介

Postman 是一款 RESTFul Client ,供给了规范的 RESTFul 恳求的接口;并且,在恳求之上供给了 Runner 来批量运转恳求,供给了对应的 Test 模块,以支撑针对接口进行测验和断语。


Postman 其完结已发布很久了,我印象中从 2015 年就零零散散有在用 Postman 来进行一些接口的调试作业。现在四年已过,Postman 也从最早的仅供给 Chrome 拓宽版发展到供给多个原生版别的运用。大大的拓宽其才干。

为什动漫情侣头像,西华大学-ope电竞竞猜官方网站_ope体育电竞_ope滚球么是 Postman ,而不是其他东西

之所以运用 Postman ,主要是 Postman 自身有一些十分不错的功用,比方:

  1. 无需建立环境:Postman 自身便是一个完好的环境,里边包括测验等功用,假如你不需求经过指令行来进行调度的话,直接运用客户端就能够完结一切的测验内容。降低了建立环境的苦楚。
  2. 支撑以 Collection 来办理恳求:咱们能够将一切的接口依照功用、用处等进行分类,然后去履行恳求,然后完结批量的恳求办理。
  3. 供给了 Pre-request Script 功用: Pre-Request Script 能够在恳求履行前进行操作。比较常见的场景,比方说接口需求鉴权,那么你能够将获取 Token 的代码放在 Pre-request Script 中。或许是这个接口需求的一些参数,你需求从别的一个当地获取时,就能够在这儿设置。
  4. 供给了多环境的支撑:多环境支撑的功用能够让咱们随时切换不同的环境参数,比方你能够将 API 的 Endpoint 放在环境变量中,这样你就能够经过切换环境来测验本地开发环境、云上测验环境、出产环境的接口,能够有用的削减作业量。
  5. 供给了 Runner 的批量运转测验的功用:Runner 为用户供给了可视化批量运转测验的才干。究竟,并不是每一个人都懂得代码的,不少测验人员他们只懂少数的代码,假如他们也想批量测验,假如没有 Runner ,就十分的费事。
  6. 支撑测验的导入导出、链接共享等才干:Postman 能够将测验导出为一个个 JSON,并且还能够生成仅有链接,你能够直接将链接共享出去,让他人运转你的测验。假如你需求他人运转你的测验时,直接共享链接就能够了。
  7. 测验环境内置了不少类库:Postman 的测验环境中内置了不少类库和协助函数,能够便利你进行各式各样的测验,比方 Lodash、cheerio、tv4 、CryptoJS 等。
  8. 支撑 Newman 主动化测验:接口测验是一个挺单调的作业,假如能够指令来操控履行,那会是十分爽的作业,刚好,newman 是支撑的。
  9. ...

归纳上述的一些原因,我终究挑选了 Postman 。

假如你并不想要一个专业的测验东西,仅仅想要一个 RESTFul Client,能够试试看 Insomnia。

Postman 的客户端挑选

Postman 供给了两个不同的版别,一个是原生的版别,也是官方较为引荐的版别,另一个版别是 Chrome 拓宽的版别。前者比较于后者,供给愈加强壮的才干,后者则根植于 Chrome 生态内,关于体系自身的侵入性较小。二者的距离主要是 Chrome 拓宽的版别受限于 Chrome 运用自身的 API ,所以在功用上略有缺失,详细如下:

Web运用缺失的功用:

  • Cookies 的支撑:受限于 Chrome 的 WebApp 的 API,WebApp 的版别无法修正 Cooki欢爱es,假如你需求修正 Cookies ,那么就需求运用原生的运用。
  • 内建署理的支撑:在 Chrome 的 WebApp 中,由于其自身并没有完好的运转环境,所以 WebApp 的运用的署理依靠于 Chrome 浏览器的设置,你的浏览器运用什么样的署理,你的毕庆堂测验就会运用什么样的代码。这样或许不利于你针对恳求进行抓包。
  • 愈加广泛的 Header 设定:受限于 Chrome 中 WebApp 的 API 约束,在 Web App 中,你的 Origin 和 User-Agent 是无法修正的,假如你需求修正就需求运用原生的 App。
  • ...

好在,咱们假如想要完结一个测验,根本的的功用无论是 Chrome 插件的版别仍是独立装置的版别都是支撑的,因而,你能够依据自己的喜好来挑选合适你的版别。

Postman 与测验

在上一部分,咱们了解了什么是 Postman ,接下来,咱们来看看 Postman 与测验的联系。

Postman 测验什么?

测验有许多不同的细分类型,从开发人员是否看代码能够分为黑盒测验和白盒测验;从测验的阶段来看有单元测验、集成测验、体系测验等。关于 Postman 来说,他所合适的,是进行API 测验,也是咱们在这一篇文章即将共享的。

Postman 自身是一个 RESTFul Client,在此基础上,参加了对接口测验的支撑,为每一个恳求引进了断语库,能够很好的完结对接口的测验,因而,咱们用它来做接口测验,也只做它最拿手的接口测验。

接口测验的含义

测验不同于开发、产品的阶段,测验所达到的方针是协助产品确认是否契合用户需求,以及保证产品的质量,归于如虎添翼而非济困扶危的项目。因而,在一整个项目的开发周期过程中,测验往往也是最终被配齐的团队。

并且,软件开发不仅仅是一个技能的军备竞赛,更是本钱管控的项目,咱们究竟应该做什么样的测验,应当依据产品的类型、产品的阶段、人员的装备、能够调控的资源等来进行操控。

不同类型的测验所带来的金钱本钱和时刻本钱用一张图来表明便是这样的。


关于一个开发团队来说,假如你的资源不足以支撑你去花费很多的时刻和精力去做单元测验,又忧虑 UI 测验或许会有一些遗失,那么投入产出比高的接口测验肯定是最佳挑选。

比较于单元测验,接口测验只需求针对接口进行测验,测验量相对小一些。而比较于 UI 测验,可控性要更高,究竟回来的接口都是 JSON,愈加简略进行测验。

运用 Postman 进行测验

说了那么多湿货,接下来,开端咱们的干货内容。

运用 Postman 来进行测验

创立调集与测验

首要,咱们来运用 Postman 进行测验,咱们即将运用 httpbin.org 来进行测验。

首要,创立一个调集


然后,创立一个 GET 恳求,并发送恳求


接下来,咱们来针对这个恳求进行测验。

运用 pre-request script 设置参数

点击上方的 Pre-request Script,


然后在其间参加这样一行代码

pm.environment.set("gitchat_verify", "this-is-a-verify");



然后回到 Params 中,咱们能够增加一个新的 key ,叫 verify,其 value 为 {{gitchat_verify}}

再从头履行发送恳求


咱们能够看到,回来值中的 args 中显现出了咱们的 verify。

这样,咱们完结了在恳求前去抓取一些参数,这个功用能够用于与多个 API 进行联调时,需求获取恳求参数喜爱丈母娘的场景。

编写测验

接下来,咱们来编写测验,点击上面的 tests,进入到测验界面。

在测验界面的右侧为咱们供给了一些常用的代码。你能够点击这儿的代码来运用。

比方检测回来状况码应为 200 的代码如下

pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});



增加完结代码后,保存,并从头履行。


你能够看到咱们的测验现已履行完结并经过了。

让测验报错

咱们能够修正一下恳求类型,让恳求类型从 Get 变为 Post,再次恳求,这样咱们的回来码就会从 200 变为 405 ,这时咱们的测验就会报错了。


增加更多测验

除了检测回来码以外,咱们还能够检测更多的东西,比方,咱们能够检测服务器回来为 verify 值是否和咱们传上去的共同:

let verify = pm.environment.get("gitchat_verify");
tests["verify 值相同"] = verify === pm.response.json().args.verify

经过这样一行代码,咱们就完结了咱们自己设置的 verify 和服务器回来的 verify 小浪蹄子的值是否相同。

仔细的你或许发现了,两种测验的代码好像距离很大

一般来说,tests['提示句子'] = xxxx === xxxx 会运用于一些十分简略的查验场景,比方值是否持平。只需等号后边的句子回来值为 true ,这个 tests 就会经过,并在下方显现咱们所界说的提示句子。假如为 false ,测验就不经过。


而 pm.test('提示句子'yl恩恩,callback) 这种风格,会用于一些较为杂乱的判别。

进行 JSON Schema 校验测验

除了检测值的是否持平,咱们常用的还要检测一个 JSON 的结构是否发生了改变,假如其架构发现了改变,咱们就需求对应的调整客户端的代码,因而,咱们需求对 JSON 的 Schema 进行校验。

Postman 的 JSON 校验运用的是 tv4,其运用的校验格局是 JSON Schema ,你能够在这儿找到他们官方的一些 Example,经过 Example 来了解 JSON Schema,然后构建你自己的 Schema。

比方说,HttpBin 的回来值的 JSON Schema 校验代码如下能够是这样的

var schema = {
"type":"object",
"required": [ "args", "headers","origin","url" ],
"properties":{
"args":{
"type":"object",
"required": [ "verify" ],
},
"headers":{
"type":"object",
"require动漫情侣头像,西华大学-ope电竞竞猜官方网站_ope体育电竞_ope滚球d": [ "Accept", "Accept-Encoding","Cache-Control","Host","Postman-Token","User-Agent" ],
"properties":{
"Accept":{
"type":"string"
},
"Accept-Encoding":{
"type":"string"
},
"Cache-Control":{
"type":"string"
},
"Host":{
"type":"string"
},
"Postman-Token":{
"type":"string"
},
"User-Agent":{
"type":"string"
}
}
},
"origin":{
"type":"string"
},
"url":{
"type":"string"
}
}
};
pm.test('Schema is valid', function() {
pm.expect(tv4.validate(pm.response.json(), schema)).to.be.true;
});

在上述这段 Schema 中,我运用了 type 来校验每个字段的类型,并运用 required 保证我想要的字段都是有的,并运用 properties 来校验子特点的特点。这样,只需 API 发送了改变,我所需求的字段假如呈现了类型的改变或许缺失,我跑一遍测验立刻就知道了。

运用 Runner 来进行批量测验

在测验时,咱们经常会需求用到批量测验,比方要测验一组连接的 API 接口,在 Postman 中,也能够十分简略的完结。

首要,你在 collection 中创立一个新的测验, 比方这儿创立一个 Post 测验,并增加了一个测验回来状况码的测验。


点击履行,可稂怎样读以跑通测验后。点击上面的 Runner 按钮,进入到 Runner 界面。


在 Runner 界面,挑选你要履行的 collection,


然后点击下方的 Start Run ,就能够看到运转的测验,及相关的成果。

这儿你能够设置重复履行的次数,来进行屡次测验。



假如需求调整履行的次序,你能够在 桃花云雨request 的办理界面经过拖拽进行修正,或许运用postman.setNextRequest("B") 办法来经过代码指定。

运用 newman 来履行测验

运用 newman 需求你先自行装置 Node.js 环境。

Postman 最为强壮,也是我最为垂青的点,便是 newman 了,Newman 能够让本来 GUI 才干运转的测验,变成运用指令行来测验,这样,咱们的田爱青测验就能够经过代码来进行办理,咱们的测验就能够和代码自身进行整合,十分的便利。

newman 的运用十分的简略,你只需求履行如下指令来装置 newman

npm install -g newman

装置完结后,履行如下指令来运转测验即可。

newman run xxxx.json

除了履行本地的测验,还能够是测验链接,你能够在 Collection 上右击,挑选 共享链接,并生成一个链接。



将这个链接作为 newman 的参数,也能够运转测验,比方

newman run https://www.getpostman.com/collections/7185b2153732d5ded053

运用指令运转测验特别合适于你要履行他人的测验的场景。

运用 Travis CI 来履行测验 ( package.json 依靠版)

由于 newman 能够经过 npm 来装置,所以,你想要在 travis-ci 上去运转 林宇宾newman 来履行主动化测验也就简略了许多。

进入项目目录(能够新建一个,或许考虑将 newman 的测验直接引进到你们现有的项目中,假如你们的项目不是 Node 项目,那么几乎不或许会形成项目的依靠的抵触),履行 npm init -y 来生成一个 packageZealandia.json 的装备文件。


然后创立一个 tests 目录,来寄存测验的 collection ,将你的测验代码导出到 tests 文件夹中。

然后履行 npm install newman --save 来装置 newman 。

你也能够将其装置在 devDependencies 中,这样的话,不与出产环境的依靠搅扰。

然后,修正 package.json 文件,汤姆费尔顿出柜将其间的 test 的值改为 newman run tests/xxx.json


这样你就能够履行 npm test 来运转 newman 进行测验了。


接下来,在你的项目根目录创立一个 .travis.yml 文件,并在其间参加如下代码

language: node_js
sudo: false
node_js:
- "8"
- "10"
cache:
directories:
- "node_modules"
script:
- npm test

然后,把你的代码推送到 Github ,并敞开 Travis-CI 的主动构建,就能够主动测验了。

演示项目:https://github.com/bestony/动漫情侣头像,西华大学-ope电竞竞猜官方网站_ope体育电竞_ope滚球newman-travis-ci-demo 演示测验:https://travis-ci.com/bestony/newman-travis-ci-demo/jobs/182603167

运用 Travis CI 来履行测验 ( travis.yml 版)

除了女孩私房手艺界说 package.json 依靠以外,你还能够考虑运用 travis.yml 来进行测验的设置。

你相同需求创立 tests 目录,并导出你的测验调集文件,不同的是,这次你只需求创立一个.travis.yml 文件即可,在其间参加如下内容,相同能够完结测验。并且,这样的测验愈加简练,不具有侵入性。

language: node_js
node_js:
- "8"
- "10"
install:
- npm install newman
before_script:
- node --version
- npm --version
- node_modules/.bin/newman --version
script:
- node_modules/.bin/newman run te姚庆德s动漫情侣头像,西华大学-ope电竞竞猜官方网站_ope体育电竞_ope滚球ts/xxx.json

运用 newman 来并行履行测验

Postman 运用自身是无法支撑并行测验的,不过你能够运用 newman 来进行并行测验。办法也很简略。

只需求运用下面的这段代码,就能够并行履行测验了。

var path = require('path'), // 用于读取文件
async = require('async'), // 引进 async 库
newman =女忍2 require('newman'),
options = {
collection: path.join(__dirname, 'sample-collection.json') // 装备需求运转的测验调集,提早在 Postman 中将测动漫情侣头像,西华大学-ope电竞竞猜官方网站_ope体育电竞_ope滚球试导出来。
},
// 界说运转函数来运转测验
parallelCollectionRun = function (done) {
newman.run(options, done);
};
// 并行履行测验
async.parallel([
色电parallelCollectionRun,动漫情侣头像,西华大学-ope电竞竞猜官方网站_ope体育电竞_ope滚球
parallelCollectionRun,
parallelCollectionRun
],
// 错误处理
function (err, results) {
err && console.error(err);
results.forEach(function (result) {
var failures = result.run.failures;
console.info(failures南京47岁美人外婆.length ? JSON.stringify(failures.failures, null, 2) :
`${result.collection.name} ran successfully.`);
});
});

上面这段代码中的 options 你能够依据你自己的需求去进行调整,比方,运用 URL 来测验,详细的参数阐明你能够看:https://github.com/postmanlabs/newman#api-reference

代码出处:https://github.com/postmanlabs/newman/blo动漫情侣头像,西华大学-ope电竞竞猜官方网站_ope体育电竞_ope滚球b/develop/example老公的阴茎s/parallel-collection-runs.js

Postman 运用的常见问题

1. 我不明白代码能够用 Postman 么?

Postman 自身仅仅一个 RESTFul Client ,你能够直接运用其来进行接口的调试。假如你期望参加一些测验的内容,那么需求略微懂一些 JavaScript 代码,来写断语。

2. 怎么将 A 恳求中的值传递给 B 恳求用?

这其实是一个十分常用的场景,比方说,一些接口需求用户登陆,假如没有办法将数据从 A 传递给 B,在运用时就十分的费事,你需求自己手动仿制 Token 到 B 中去履行,功率十分的低。

不过,在 Postman 中,你能够很便利的完结。

Postman 中是有环境这样的一个概念的,你能够针对不同的测验场景来创立不同的环境,并凭借环境中的数据能够被多个恳求运用的特性来在不同的恳求中传递数据。


你只需求在 A 恳求中发送恳求,并获到需求传递的数据,将其提取出来,然后运用设置环境变量的代码,将对应的数据设置为环境变量,在需求运用的当地运用 Mustache 语法进行调用即可。

比方说,下面这一行代码便是将回来值中的 Token 设置为一个环境变量 token,

// 回来值结构
{
"data":{
"token": "this is a token"
}
}
// 获取 token,并将其设置为 环境变量的代码
pm.environment.set("token", pm.response.json().data.token);

然后,你在别的一个恳求中运用 {{token}} 来调用即可。


在运用这个办法时,你需求留意的是,A 与 B 的恳求次序是不能错的,否则 B 在恳求时,环境变量还没有被设置,天然就会出错了。而想要完结操控,你需求在A的测验代码中参加这样一行

postman.setNextRequest("B")

比如如下:


3. 假如恳求需求运用 Cookie 认证怎样测验呢?

接口需求 Cookie 认证的场景也十分常见,作业的思路与 Token 校验的共同,在能够获取到 Cookie 的恳求中去拿到对应的 Cookie ,然后将其设置设置为环境变量,并在需求的时分运用。

你能够在 test 环境里履行如下指令来获取 Header 中的 Cookie

let cookie = postman.getResponseHeader("Set-Cookie")

然后,将其设置为环境变量

pm.environment.set("cookie",cookie);

并在需求的当地运用 {{cookie}} 进行调用。

4. Newman 怎么产出测验报告?

由于测验作业往往需求和开发部分进行协作,所以测验报告也是十分重要的一个环titties境。

newman 自身供给了四种不同的 reporter ,你能够经过装置不同的拓宽来进行支撑。


总结

我自己自身也并不是一个专业的测验,运用 Postman 协助我更好的去完结自己的作业,关于一些非测验人员来说,倘若有这样的一个学习本钱不高,一起还能有较高收益的作业来学习,何乐而不为呢?

假如你有任何问题,都可在下方谈论区留毛新宇空姐一见钟情言发问,咱们一起沟通 Postman 的运用技巧。

相关新闻

admin

admin

TA太懒了...暂时没有任何简介

精彩新闻