postman自动化测试

postman自动化测试简述
center>

简介

 在程序员的工作中,尤其是在前后端开发分离的实践过程中,一定会有的工作就是接口联调,HTTP接口作为前端后端传输通信的关节,参数传递的有效性和格式验证非常的重要,Postman就是一款这样优秀的应用,在程序员工作的过程中,赋能工具箱至关重要。本文介绍的终点就是Postman,以及Postman的在实践自动化测试方面的抛砖引玉的工作,重点还是告诉读者要有意识的减免自己工作中的重复、枯燥、无味的工作,而让工作成为那种,看着屏幕,喝着咖啡,和同事畅聊着什么计划的时候,接口的测试就已经完成了的场景。

 postman是一款支持http协议的接口调试与测试工具,其主要特点就是功能强大,使用简单且易用性好 。
无论是开发人员进行接口调试,还是测试人员做接口测试,postman都是我们的首选工具之一 。

在尝试学习postman的过程中,我们去学习一些分享的博文或者网页,肯定是获取postman最好的了解方式,但若想要深入掌握postman的思想理念,请一定要参考文档。

必备基础

想要深入掌握Postman工具为我所用,实现自己需要的程序和逻辑,则如下三个部分必不可少。

BDD语法是Postman自动化测试的基本脉络,要熟练掌握才可

注意:请使用高版本比如8的postman,这样在撰写自动测试逻辑时有丰富的自动补全功能。

为什么需要自动化测试

  1. 可以替代大量的手工机械重复性操作,测试工程师可以把更多的时间花在用例设计和新功能的测试上
  2. 可以大幅度提升回归测试的效率,非常适合敏捷开发过程可以更好地利用无人值守时间,去更频繁地执行测试
  3. 可以高效实现某些手工测试无法完成或代价巨大的测试类型,例如:7*24小时持续运行的系统稳定性测试和高并发场景的压力测试
  4. 可以保证每次执行的操作具有一致性和可重复性,不会受人的感情因素影响。

学习一项工具,并在工作中实践一项工具,有那种古人所说的善假于物也的思想。然后在团队中分享和实践这个工具,对于建设学习实践性团队非常重要,对于团队文化建设也有较强的重要性。

Postman的基本界面

Postman基本界面

640

HTTP响应response基本呈现

要记住这些Postman的界面元素与HTTP氢气球response的基本对应关系。在之后我们编写的自动化测试脚本中,主要针对的是pm.response对象

而pm.response对象主要包含如下的内容:

  • body ==> pm.response.code
  • status ==>
  • codes ==>
  • headers ==> pm.response.headers.get(‘Content-Type’)
  • cookies ==> pm.cookies.get(‘isLoggedIn’)
  • reponse time ==> pm.response.responseTime

如何使用

基本执行过程

在Postman运行界面中,自动化测试的工作区为Tests标签下,我们可以在其中执行对于postman的测试。

Image

断言

如果没有断言,我们只能做接口的功能测试,但有了断言后,就为我们做自动化提供了条件,并且在postman中的断言是非常方便和强大的 。

 我们先来了解下postman断言的一些特点 ,具体如下

  • 断言编写位置:Tests标签断言

  • 所用语言:JavaScript

  • 断言执行顺序:在响应体数据返回后执行 。

  • 断言执行结果查看:Test Results

与控制台联合进行日志调试

  在我们撰写自动化测试时,肯定少不了对于测试未通过的用例去检查,未测试的原因,因此,这个时候,我们可以通过Postman提供的控制台工具来查看程序运行时的日志。

  在做接口测试时,经常会因为代码写的有问题导致报错,这时通过查看日志就显得非常重要了,postman也提供了这样的功能,它允许我们在脚本中编写打印语句,查看打印的结果 ;

  同时也可以查看每个请求的日志信息 。在postman中编写日志打印语句使用的是JavaScript,编写的位置可以是Pre-request Script 或Tests标签中。编写打印语句如:console.log(“我是一条日志”)

打开Postman Console

可以使用快捷键Alt + ctrl + C

这里面有几个比较实用的功能:

  **搜索日志:**输入URL或者打印的日志就能直接搜索出我们想要的请求和日志,这对我们在众多日志中查找某一条日志是非常方便的 。

  按级别搜索:可以查询log,info,warning,error级别的日志 ,有助于我们更快定位到错误 。

查看原始报文(Show raw log):如果习惯看原始请求报文的话,这个功能可能更方便些 。

  隐藏请求(Hide network):把请求都隐藏掉,只查看输出日志 。

 总之,通过这个功能,我们在请求接口报错时,通过打印响应的日志,就能很轻松的找到问题原因了 。

实践

常见返回值获取

 在做接口测试时,请求接口返回的数据都是很复杂的json数据,有着多层嵌套,这样的数据层级在postman怎么获取呢 ?

 案例1:多层json嵌套, 获取user_id的值

{
    "name": "Android",
    "author": "panzhen",
    "version": "2.8.5",
    "age": 12
}

获取其中内容

//获取json体数据
var jsonData = pm.response.json()

// 获取user_id的值,通过.获取**var** 
user_id = jsonData.data.user_id

测试请求状态码和状态消息

pm.test("Status code is 200", function () {
    pm.response.to.have.status(200); //这里填写的200是预期结果,实际结果是请求返回结果
});

pm.test("Status code name has string", function () {
    pm.response.to.have.status("OK"); //断言响应状态消息包含OK
});

测试返回值对应的值

pm.test("Your test name", function () {
    var jsonData = pm.response.json();
    pm.expect(jsonData.value).to.eql(100);
});
//注解
var jsonData = pm.response.json() 获取响应体,以json显示,赋值给jsonData .注意:该响应体必须返会是的json,否则会报错
pm.expect(jsonData.value).to.eql(100) 获取jsonData中键名为value的值,然后和100进行比较

使用多个断言

可以在一个测试中使用多个断言

断言响应值等于变量

断言值类型

断言数组的属性

image

断言对象属性

image

总结

 本篇文章的撰写是基于自己在出差时的工作和学习,博客阅读以及官网文档阅读撰写而得到的,一方面是为了帮助团队更好的使用这个工具,另外也是为了更快的确保笔者编写程序的快速检验,由于在笔者撰写时,本文的主要目的还是希望更多的去使用这个工具,去阅读官网文档,BDD语法,熟悉简要的JS语法,去改善自己对于工具意识的理解,因为笔者深深的意识到,效率是对一个coder的最强启示。

发现了一个小工具,就是在撰写博文的时候,借助AutoHotKey可以非常方便的键入缩进,很优美。

下载

2021年4月24日周六10:43:53于AUX

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值