基于postman的api自动化测试实践

每个人都同意测试很重要,但并不是所有人都会去做。每当你添加新的代码,测试可以保证你的api按照预期运行。通过postman,你可以为所有api编写和运行测试脚本。

postman中的测试

在postman中,你可以通过添加脚本到请求当中,来使用动态变量、在请求之间传递数据以及编写测试。写在 Pre-request Script tab中的代码会在请求发送之前执行,而写在 Tests tab中的代码会在响应到达之后执行。

基于postman的api自动化测试实践
测试用的语言是JavaScript。所以对于前端开发者来说几乎没有学习成本。对于一个单独的请求来说,如果它有测试脚本,那么在请求发送之后,在 Test Results

tab可以看到对应的测试结果。另外为了可以快速编写测试脚本,postman提供了一些通用的代码片段(code snippets)。如下是对应的功能结构图:

基于postman的api自动化测试实践

编写测试

例子:

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


pm.test("environment to be production", function () { 
    pm.expect(pm.environment.get("env")).to.equal("production");
});

pm.test("response must be valid and have a body", function () {
     pm.response.to.be.ok;
     pm.response.to.be.withBody;
     pm.response.to.be.json;
});

var schema = {
	type: 'object',
	properties: {
		appID: {
			type: 'number',
		},
		avatar: {
			type: 'string',
		}
	}
}
pm.test('Schema is valid', function() {
  var jsonData = pm.response.json().data;
  pm.expect(tv4.validate(jsonData, schema)).to.be.true;
});
复制代码

pm.test()

为了遵循postman的规范,所有测试代码必须写在pm.test()的function里面。第一个参数是该测试的名称,第二个参数是一个返回boolean值的函数。也就是说这个函数如果返回true,表示测试通过,否则测试失败。

pm.expect()

这个断言函数是基于一个 JavaScript 测试库ChaiJS BDD构建的。通过类似的语法,你可以很方便的对响应里的数据或者一些变量进行断言。

pm.response.to.be .*

这个对象可以提供对响应常见的检查。如状态码是否符合预期等。

tv4.validate()

第一个参数是被检验的数据,第二个参数是json schema。通过则返回true,失败则返回false。如果要快速学习 json 的schema规范,可以参考https://www.jianshu.com/p/8278eb2458c4?winzoom=1tv4是postman一个内置的json validator。它基于json-schema draft v4,通过丰富的校验语法来校验简单的值或者复杂的json对象。

常用api详情请查看https://learning.getpostman.com/docs/postman/scripts/postman_sandbox_api_reference

运行测试

我们通常会给多个api运行测试,因为我们有很多api,或者一个测试场景由多个api所组成。所以我们会把他们添加到一个集合(Collections)当中来运行。

postman(用户界面)

基于postman的api自动化测试实践
基于postman的api自动化测试实践
基于postman的api自动化测试实践

这里注意,请求是按照Collections当中的顺序线性执行。如果想改变执行顺序,可以修改Collections中的顺序,或者使用 postman.setNextRequest("request_name") ;如果想要停止整个流程,可以执行 postman.setNextRequest(null);

newman(命令行工具)

1.从postman当中导出为json格式的Collections

基于postman的api自动化测试实践
2.全局安装newman, npm install -g newman 3.执行命令, newman run sample-collection.json
基于postman的api自动化测试实践

详细使用方法请查看,newman

结合Jenkins自动化

一个通用的方案是在代码在提交后,或者合入仓库分支后,执行 newman -c jenkins_demo.postman_collection --exitCode 1 。注意到--exitCode参数,这是为了告诉Jenkins,如果测试失败,将会返回值为1的退出码。这样就Jenkins就可以得知测试运行的成功与否了。

总结

我们都知道,工欲善其事必先利其器。对于基于api的测试而言,postman不失为一个不错的工具。另外对于web开发人员来说,postman也是一个常用的http调试工具。熟练的掌握它,也能一定程度地提高我们的工作效率。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

为你推荐:

相关软件推荐:

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

测试驱动开发的艺术

测试驱动开发的艺术

Lasse Koskela / 李贝 / 人民邮电出版社 / 20101023 / 59.00元

在传统的软件开发中,开发人员对于代码是否正确心中无底,一切依赖于后期的测试环节。极限编程反其道而行之,主张采用测试驱动开发(TDD)的方法,即通过测试定义所要开发的功能的接口,然后实现功能的开发过程。TDD通过不断地测试推动代码的开发,既简化了代码,又保证了软件质量。 本书采用“手把手”的教学方式,通过大量实例来解释TDD,还专门用几章的篇幅来讲解如何为难于测试的技术编写单元测试。全书内容循......一起来看看 《测试驱动开发的艺术》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具