目录
安装与配置
发送请求
GET请求
POST请求
断言测试
变量和循环
变量
循环
集成测试
集合
测试套件
结论
Postman是一款非常流行的接口测试工具,它可以帮助我们轻松地进行API测试、自动化测试、数据驱动测试等。本文将介绍如何使用Postman进行接口测试,并给出具体的实战示例。
首先,我们需要安装Postman。可以从官网下载安装包并安装。
安装完成后,我们需要注册一个账号,这样就可以在不同设备上同步我们的测试用例、环境变量等信息。如果已经有账号,也可以直接登录。
接下来,我们需要配置环境变量。环境变量可以帮助我们快速切换不同的测试环境,例如测试环境、开发环境和生产环境。在Postman中,我们可以通过点击右上角的眼睛图标来管理环境变量。
在Postman中发送请求非常简单。我们只需要输入接口地址、选择请求方式(GET、POST、PUT等)、添加请求参数和请求头等信息,就可以发送请求了。
下面是一个发送GET请求的示例:
pm.sendRequest({
url: "https://jsonplaceholder.typicode.com/posts/1",
method: "GET",
header: {
"Content-Type": "application/json"
}
}, function (err, res) {
console.log(res.json());
});
这个请求会获取https://jsonplaceholder.typicode.com/posts/1
地址对应的资源,并打印结果。
下面是一个发送POST请求的示例:
pm.sendRequest({
url: "https://jsonplaceholder.typicode.com/posts",
method: "POST",
header: {
"Content-Type": "application/json"
},
body: {
mode: 'raw',
raw: JSON.stringify({
title: 'foo',
body: 'bar',
userId: 1
})
}
}, function (err, res) {
console.log(res.json());
});
这个请求会在https://jsonplaceholder.typicode.com/posts
创建一篇新的文章,并打印结果。
在进行接口测试时,我们需要验证接口返回的数据是否符合预期。这就需要使用到断言测试。
Postman提供了多种类型的测试,包括状态码、响应时间、响应头、响应体等。我们可以通过编写JavaScript代码来实现自定义的测试。
下面是一个简单的示例:
pm.test("Response should be OK", function () {
pm.response.to.have.status(200);
});
pm.test("Response time should be less than 500ms", function () {
pm.expect(pm.response.responseTime).to.be.below(500);
});
pm.test("Response should have a Content-Type header", function () {
pm.response.to.have.header("Content-Type");
});
pm.test("Response should be a JSON object", function () {
pm.response.to.be.json;
});
这个测试会验证响应状态码是否为200、响应时间是否小于500毫秒、响应头是否包含Content-Type字段、响应体是否为JSON格式。
在实际的接口测试中,我们经常需要使用变量和循环来处理不同的数据。Postman提供了一些内置的函数和语法,可以帮助我们方便地处理数据。
Postman中的变量有两种:全局变量和环境变量。全局变量可以在所有测试用例中共享,而环境变量只能在特定的环境中共享。
下面是一个使用全局变量的示例:
pm.globals.set("user_id", 123);
pm.sendRequest({
url: "https://jsonplaceholder.typicode.com/posts/" + pm.globals.get("user_id"),
method: "GET",
header: {
"Content-Type": "application/json"
}
}, function (err, res) {
console.log(res.json());
});
cation/json" } }, function (err, res) { console.log(res.json()); });
这个请求会根据全局变量user_id
的值获取对应的数据。
Postman中可以使用JavaScript语法来进行循环。下面是一个使用循环的示例:
for (var i = 1; i <= 10; i++) {
pm.sendRequest({
url: "https://jsonplaceholder.typicode.com/posts/" + i,
method: "GET",
header: {
"Content-Type": "application/json"
}
}, function (err, res) {
console.log(res.json());
});
}
这个请求会循环发送10次GET请求,每次请求获取对应编号的资源,并打印结果。
在实际的项目中,我们需要对多个接口进行集成测试,以验证它们之间的协作是否正确。Postman提供了集合和测试套件两种方式来进行集成测试。
集合是一组相关的请求和测试用例。我们可以将不同的请求和测试用例组织在同一个集合中,并通过集合来执行这些测试用例。
下面是一个使用集合的示例:
pm.test("Response should be OK", function () {
pm.response.to.have.status(200);
});
pm.test("Response time should be less than 500ms", function () {
pm.expect(pm.response.responseTime).to.be.below(500);
});
pm.test("Response should have a Content-Type header", function () {
pm.response.to.have.header("Content-Type");
});
pm.test("Response should be a JSON object", function () {
pm.response.to.be.json;
});
pm.sendRequest({
url: "https://jsonplaceholder.typicode.com/posts/1",
method: "GET",
header: {
"Content-Type": "application/json"
}
}, function (err, res) {
console.log(res.json());
});
这个集合包含了两个请求和一个测试用例。我们可以通过点击“运行”按钮来执行这个集合中的所有测试用例。
测试套件是一组相关的集合和环境变量。我们可以将不同的集合和环境变量组织在同一个测试套件中,并通过测试套件来执行这些集成测试。
下面是一个使用测试套件的示例:
var environment = pm.environment.get("env");
pm.test("Environment should be set", function () {
pm.expect(environment).to.not.be.null;
});
pm.test("Response should have a Content-Type header", function () {
pm.response.to.have.header("Content-Type");
});
var collectionRunner = new postman.CollectionRunner();
collectionRunner.run({
collection: "My Collection",
environment: environment,
globals: pm.globals.get("globals")
}, function (err, summary) {
console.log(summary);
});
这个测试套件包含了两个集合和两个环境变量。我们可以通过点击“运行”按钮来执行这个测试套件中的所有测试用例。
本文介绍了如何使用Postman进行接口测试,并给出了具体的实战示例。希望这篇文章能够帮助各位读者更好地掌握Postman这个强大的接口测试工具。
自动化测试框架结构图:
小编还准备了一些福利: