Postman之基本操作

一、创建请求

使用New > Request从Postman启动屏幕中创建新请求,也可以通过单击+按钮打开新标签。

image-20200229182139467

上图执行了最简单的一个GET请求,并没有带参数。

然后,创建一个带参数的请求,如下图所示:

image-20200229182752539

由于请求方法是GET,在参数栏插入参数后,url地址栏会自动将参数添加在url地址中,这也是GET方法相对而言不是那么安全,太容易被人看到敏感信息。

因为在测试过程中,需要判断一个接口输入的参数和返回的参数是否满足需求(期望结果),所以需要给测试加上断言,如图所示在Postman中加断言。

image-20200229183743298

二、Body数据参数

当需要添加或更新结构化数据时,都将需要发送带有请求的正文数据。例如,如果要发送将新客户添加到数据库的请求,则可以在JSON中包含客户详细信息。通常会结合PUT,POST以及PATCH请求方法一起使用。

  • form-data数据

    网站表单通常以形式将数据发送到API multipart/form-data。您可以使用form-data 正文”选项卡在邮递员中复制此内容。表单数据使您可以发送键值对,并指定内容类型。

image-20200229190754163

form-data参数中可以直接添加参数数据,也可以使用附件文件。

  • x-www-form-urlencoded

    URL编码的数据使用与URL参数相同的编码。如果API需要url编码的数据,在请求的“ 正文”标签中选择x-www-form-urlencoded。输入您的键值对以与请求一起发送,postman会在发送前对它们进行编码。

  • raw数据

    可以使用原始身体数据发送可以输入为文本的任何内容。使用原始选项卡,然后使用类型下拉列表指示您的数据格式(Text,JavaScript,JSON,HTML或XML),Postman将启用语法突出显示并将相关标头附加到请求中。

image-20200229191549717

  • binary数据

    使用二进制数据发送无法在Postman编辑器中随请求正文手动输入的信息,例如图像,音频和视频文件(也可以发送文本文件)。

image-20200229191755720

三、headers数据参数

某些API要求您发送特定的标头以及请求,通常会提供有关您正在执行的操作的其他元数据。您可以在“ 标题”选项卡中进行设置。输入您需要的任何键值对,Postman会将其与您的请求一起发送。键入时,Postman会提示您一些常用选项,您可以使用这些选项来自动完成设置Content-Type。

image-20200229192139554

如果请求的参数特别多的话,一条一条的编辑headers中的KEY和VALUE效率太低,于是可以使用BULK Edit,将头信息至此,比如头信息如下:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8
Cache-Control: max-age=0
Cookie: jenkins-timestamper-offset=-28800000; 2a881_lastpos=index; 2a881_ol_offset=98; ACEGI_SECURITY_HASHED_REMEMBER_ME_COOKIE=YWRtaW46MTU4Mzc1MTU0NTE3OTo2MTI1MzExZGY4OWM5YThiYmNjMzMxYzU3MjY4YzFmYTMzZGFmMzJiNWFjMjVkOWI3MzdmOTg5ZmU3M2VkNzE4; 2a881_lastvisit=1661%091582952510%09%2Findex.php
Host: 192.168.31.55:8000
Proxy-Connection: keep-alive
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.106 Safari/537.36

image-20200229192809868

填充后,格式自动转换成KEY-VALUE形式

image-20200229192916073

四、变量

变量是数据的符号表示,它使您可以访问值,而不必在需要时手动输入它。特别是在多个地方使用相同的值时,这很有用。变量通过抽象一些涉及的细节,使您的请求更加灵活和可读。可变范围适用于Postman中的不同任务:

  • 全局变量使您可以访问集合,请求,测试脚本和环境之间的数据。

    由于全局变量可能会造成混乱,因此,您仅应谨慎使用它们,例如快速测试某些东西或当您的项目处于原型开发初期时。

  • 集合变量可在集合中的整个请求中使用,并且独立于环境,因此请勿根据所选环境而更改。

    如果仅使用单个环境(例如,用于auth / URL详细信息),则收集变量是合适的。比如url地址设置为集合变量,如图所示:

image-20200229200143960

image-20200229200334461

最后修改url地址,引入参数

image-20200229200509697

  • 环境变量使您可以针对不同的环境定制处理,例如本地开发与测试或生产。一次只能激活一个环境。

    如果只有一个环境,则使用集合变量会更有效。

image-20200229200653805

  • 局部变量是临时的,只能在您的请求脚本中访问。局部变量值的范围仅限于单个请求或收集运行,并且在运行完成后不再可用。

    如果您需要一个值来覆盖所有其他变量作用域,但又不想在执行结束后保留该值,则局部变量是合适的。比如在脚本中设置变量

    pm.environment.set("variable_key", "variable_value");
    

    img

  • 数据变量来自外部CSV和JSON文件,以定义在通过Newman或Collection Runner运行集合时可以使用的数据集。

image-20200229201238530

  • 动态变量

    postman可以在请求当中使用动态变量,动态变量的示例如下:

    • {{$guid}} :v4样式的guid
    • {{$timestamp}}:当前时间戳(Unix时间戳,以秒为单位)
    • {{$randomInt}}:0到1000之间的随机整数

image-20200229203219990

注意:更多的动态变量详见https://learning.postman.com/docs/postman/variables-and-environments/variables-list/

五、集合

  • 新建集合

集合里保存的是一组请求。可以理解为多个测试用例的集合,在集合中方便对测试用例进行管理和执行。

如图所示,可以在侧边栏、新按钮等位置创建新集合。

img

  • 导出集合

image-20200229195055203

六、Script脚本

  • 将嵌套对象设置为环境变量
var array = [1, 2, 3, 4];
pm.environment.set("array", JSON.stringify(array, null, 2));

var obj = { a: [1, 2, 3, 4], b: { c: 'val' } };
pm.environment.set("obj", JSON.stringify(obj));
  • 获取环境变量
var value = pm.environment.get("variable_key");
  • 设置下一个要执行的请求
postman.setNextRequest("request_name");
  • 循环执行当前请求
//当前request_name的名称
postman.setNextRequest("request_name");

注意:在连续循环一个请求时,应该包装setNextRequest一些逻辑以确保该请求不会无限期地运行,否则将需要强制关闭收集运行器。

  • 停止执行工作流程
postman.setNextRequest(null);
  • 检查JSON值
pm.test("Your test name", function () {
 var jsonData = pm.response.json();
 pm.expect(jsonData.value).to.eql(100);
});

详见:https://learning.postman.com/docs/postman/scripts/test-examples/

七、Runner 批量测试

在测试时,经常会需要用到批量测试,因为一般业务会涉及到多个API,所以这些API一般都会保存在一个集合中,要执行业务就需要将这些API全部执行,而在 Postman 中,实现非常简单。如图所示:

img

posted @ 2020-09-20 10:52  xyztank  阅读(503)  评论(0编辑  收藏  举报