postman接口测试教程,如何做接口测试?
postman接口测试教程,如何做接口测试?详细介绍
本文目录一览: 如何做接口测试?
1、接口测试需要围绕测试计划实施。接口测试重点是:api文档分析、用例设计。具体接口应用工具主要根据后台协议和测试计划测试工具来定,可使用工具如:postman、jmeter、requests、抓包(fiddler、charles)。
2、可以使用postman软件进行接口测试,这里以较复杂的上传图片的接口为例进行测试,首先打开postman软件选择Post方式,输入后台接口调用地址。
3、接口测试因其不是针对普通用户,而是针对的另外一个系统组件,所以不能直接测试,需要使用工具测试,比如服务端http接口测试,常用的工具有jmeter、postman、httpclient等。
4、接口测试实际工作中一般分为以下两种实现方式:(1)基于工具实现接口测试,常见的接口测试工具如Postman、Jmeter等(2)基于代码实现接口测试,如Python+Requests黑马程序员的公开课上次把接口测试相关都讲清楚了。
5、对于接口测试,首先测试人员要懂代码,你只需要知道接口的作用是什么就可以了,其次,自己去读开发的代码。
postman使用教程
1、首先开启本地的服务器。
2、然后打开准备好postman软件。
3、创建一个请求。
4、接着选择请求的类型。
5、设置请求的地址。
6、点击send。
7、在下方就可以看到请求返回的内容了,这样就完成了。
注意事项:
postman适用于不同的操作系统,Postman Mac、Windows X32、Windows X64、Linux系统,还支持postman 浏览器扩展程序、postman chrome应用程序等。
postman微信公众号接口测试
1、拿到api接口文档:熟悉接口业务、接口地址、鉴权、入参、出参、错误码
2、接口测试计划和方案:正例、反例、分页异常
3、编写用例和评审
4、执行接口测试
5、输出接口测试报告
在企业中做接口测试是不会把参数写死过去的
时间戳:
生成0-100的随机整数:
生成一个GUID的字符串:
一个接口中可能存在多个环境如:开发、测试、生产环境
环境和globals都是全局变量
多个接口之前都是有相互关联的
如:注册之后就是登陆,一个业务增删改查不可能一个接口一个接口测
如果一个参数可能从新增到修改再到删除D都是关联,则需要在第一个接口先去获取到,然后在下面接口使用时可以调用
可以在Tests界面上使用
1、json提取器
2、正则表达式提取器
3、cookie提取器
精确断言: 如果需要精确断言的,即这个是个变量,可以提取获取到值,保存到一个全局变量中,并通过获取全局变量来进行断言
一般是在这个Pre-request Script界面上
全局断言: 就是所有接口都用到这个断言
一般用于状态断言
使用 Postman 进行接口测试(cookie设置)
目录:
使用 Postman 进行接口测试(入门)
使用 Postman 进行接口测试(续)
使用postman模拟接口测试的时候,一般都是需要先登录才可以后续业务测试的,那么也会带来一些问题:
1、每一个用例都去新增一个cookie值
2、退出系统后cookie值会失效(如下图),需要重新从浏览器中copy
那有没有办法绕过登录或者统一给用例设置cookie呢?
1、统一设置cookie的前提是 用户必须一直在浏览器保持登录状态
2、绕过登录
先调用登录接口,让postman自动去添加全局cookie,下图中的shiro_session_id
如何利用postman做app接口测试
1、首先双击打开桌面上的postman软件,等待一会软件就会打开:
2、然后这里以一个get请求为例,先选择get方式并填入请求的地址,一般get请求参数写在地址后面,用?和&连接,写好后点击右边的send按钮就可以了:
3、点击send后,下面就会打印请求返回的参数了。以上就是postman测试接口的方法介绍:
接口测试从未如此简单 - Postman (Chrome插件)
一个非常有力的Http Client工具用来测试Web服务的, 我这里来介绍如何用它测试restful web service
注:转载请注明出处http://www.cnblogs.com/wade-xu/p/4228954.html
安装
进入Chrome的设置->More tools->Extensions
点击最下面的Get more extensions
搜索Postman
选择第一个点击
点击Launch APP
如何使用Postman做接口测试
填写service url
选择method, 比如 GET
这个请求需要参数,点击URL params 填好参数
参数填好之后,工具会在URL 后面自动补上参数
点击send
Post请求也类似
这里需要增加两个Headers
如果访问你的服务需要Authentication, 则需要在下面的tab里配置用户名密码进行身份验证
你所有测试过的数据都可以通过Add to collection进行收集
你运行过的测试都会在History tab里找到。
更多请参考:
官方博客地址http://blog.getpostman.com/
Postman也可以做数据驱动的自动化测试,增加断言,一次性运行collections, 定时运行等等功能,不过这是付费服务,详见额外的扩展包Jetpacks, Newman
Teaching is learning.
今天安装研究了下postman,真的太好用了。以前做ajax提交数据的时候,在PHP文件老是不能看到ajax的处理结果,这下完全解决了。以下希望可以帮助你。
需求:会员登录后,提交到后台,ajax的形式,利用postman查看ajax的返回值
文件介绍:前台模板文件、后台ajax的url的控制器文件
方法:
1、谷歌登录后,打开postman,选择如下的验证模式,填写对应的账号和本地域名。
2、点击cookies 可以看到获取了两个值
3、打开浏览器,查看cookies对应的正确值,编辑修改保存
4、点击send
1、在Google已安装完成的接口测试工具的postman的程序之后,点击进入桌面的chrome应用启动器。
2、进入到应用启动器界面中之后,可以看到是postman的应用图标程序,点击进入。
3、进入到postman的欢迎的界面中,如果有账号可以进行点击登录账号,无账号可以点击Go to the app进入。
4、这样就进入到postman界面中,进行对app网址进行测试,选择get请求,把app网址在输入框中输入。
5、输入完成之后,然后进行点击send。
6、如果测试成功,返回的status为200 ok,这样app接口测试就成功了。
如何做接口测试?
接口测试作为业务质量的重要保证手段,是整个质量保证过程中必可不少的手段了,目前主要的测试方式包括利用工具进行测试比如postman、jmeter,还有纯代码编写测试case,测试平台,一些支持通过文件写测试用例的框架等。
为什么要做接口测试
在金字塔这样的自底向上结构中,越靠近底层,测试越稳定,所以我们投入的也应该越高;同样的,越是底层,发现问题越早、越高效,修改和维护的成本也就越低。但是单元测试目前只在一些大厂做的比较好,而且单元测试要想覆盖到的全面,需要很大的投入,一般的互联网公司这块是缺失,而由于接口测试的高投资回报比,决定其大范围的应用,互联网公司也会把中心放到这块儿。
接口测试的手段
可视化工具类
常用的接口可视化界面工具有postman,和他的情敌Postwoman,jmeter也可以做,postman可以接入Jenkins实现持续集成,而且操作方便,功能也很强大,现在互联网技术人员几乎人手必备。但是会有个问题,它的灵活性不够,在写接口测试用例的时候回有时会操作mysql、Redis,还会调用thrift,甚至需要建立socket链接,而且无法进行版本控制。
纯代码
纯代码的测试手段是能满足所有的接口测试需求,是最灵活的一种,个人认为也是最好用的一种。不同语言生态都可以实现,比如java生态们可以使用restassured、assrtj、junit来做,python生态可以使用requests、pytest来做,不过这需要编码能力,对测试人员的要求会高一些。
测试平台
通过搭建一个测试平台,在这上面写测试用例,平台一般会提供可视化界面让测试人员编写,平台的好处是可以让不懂编码的同学也能快速写出测试用例,而且可以对测试用例进行管理,控制用例执行等。
支持文件写用例的框架
还要写测试框架支持通过编写json、yaml文件编写测试用例,有框架解析文件生成测试用例,然后去执行。
接口测试的思路
接口测试用例设计主要针对输入、处理、输出进行考虑
针对输入进行设计
对于接口来说,输入就是入参,一般的参数类型数值型边界内、边界值、边界外三个方面去考虑特殊值处理不当程序异常、类型边界溢出、错误信息返回不正确字符串主要考虑字符串长度和字符串的内容空、特殊字符、数字、表情符号数组链表多个重复值、空、最大范围值结构体:json、字典字段错误,字段类型错误、未包含字段、缺失字段
针对逻辑设计
限制条件数值类型限制,比如购买次数、登录次数、优惠券最大面额、订单取消次数等状态限制:比如是否登录、是否有订单等关系限制:比如好友关系、关注关系,只能查看好友或者关注人的朋友圈权限限制:比如销售只能查看和自己绑定客户数据,而管理员可有查看所有客户数据时间限制:比如未支付过20分钟订单自动取消状态转换分析比如一个出租车订单,从乘客下单、司机抢单、到达起点、接上乘客、到达目的地,发起支付,支付,评价这是一个完整的订单状态转换流程,必须按照这个次序,才能正确流转,一旦打乱其中任何一个状态,就会出现逻辑问题。接口用例可以这样设计:正常状态迁移:乘客下单,司机抢单,异常状态迁移:乘客刚下的那,司机发起支付,出现异常针对输出设计
针对输出结果,一般情况下,接口正常处理的结果可能只有一个,但是异常的处理结果,可能会返回多种错误,那就可以针对不同的错误进行设计。接口超时,旧版本接口,废弃接口,接口设计是否合理,比如字段冗余、接口冗余、返回错误信息是否清晰明了、调用是否方便,幂等性总结
接口测试重要的思路要明确,清晰的理解业务逻辑,至于具体的工具根据自己目前的能力选择,先去做,在做的过程中不断完善不断学习,早日提高自己的测试技能。
码字不易,欢迎大家点赞评论支持。
PostMan进阶——测试脚本的编写
预处理脚本(Pre-request script)
断言脚本(Tests script)
? ? ? ? 请求之前添加的脚本,我们称为预处理(Pre-request Script) ,预处理脚本与Jmeter的前置处理器类似,主要作用就是一些初始化的功能
请求本身的问题,但是“请求前后的动作”是怎么处理的?
比如在发送一个请求前,需要获取当前系统时间戳,这就需要用到Pre-request Script的知识。请求返回响应结果后,如何自动判断响应是否正确?这就需要用到Tests的知识。
postman支持javascript,允许测试人员给请求和集合添加动态行为,通过使用javascript脚本,可以构建包含动态参数的请求,在请求之间传递数据。可以在下面两个事件流中添加javascript脚本。
1、在请求发送前,添加作为“Pre-request Script”选项下的预处理脚本
2、在收到响应后,添加测试脚本进行断言、流程控制
可以将预处理和测试脚本添加到一个集合、一个文件、一个请求中。
1、为集合添加脚本
2、为文件添加脚本
3、为请求添加脚本
在Postman中,单个请求的脚本执行顺序如图
1、与请求相关联的预请求脚本将在请求发送之前执行
2、与请求关联的测试脚本将在接收响应之后执行。
对于集合中的每个请求按顺序执行
1、与集合相关的预请求脚本将在集合中的每个请求之前运行
2、与文件夹相关联的预请求脚本将在文件夹中的每个请求之前运行。
3、与集合相关的测试脚本将在集合中的每个请求之后运行。
4、与文件夹关联的测试脚本将在该文件夹中的请求之后运行。
对于集合中的每个请求,脚本总是按照下面的层次结构运行:集合级脚本、文件夹级脚本、请求级脚本。此执行顺序适用于预请求和测试脚本。为了验证其正确性,可以创建这样一个集合,其中包含一个文件夹和两个请求。
2 测试脚本
? ? ? ? 预处理脚本,指在请求发送之前执行的脚本。如果想在请求发送时包含当前时间戳或者一个随机的字符,前端加密等,在这个场景下使用前置脚本。例如,要在请求头中包含一个时间戳,可以设置一个环境变量,其值从函数返回。
? ? ? ? 预处理脚本将被执行,并且timestampHeader的值将被赋值给变量{{timestampHeader}}。body中通过使用{{timestampHeader}}来传递变量。
Postman准备了常用脚本实例,这些脚本能够满足大多数接口测试的需求,接下来,一起认识一下它们,Postman在右侧区域列出了常用脚本。
演试案例:
准备接口
打开“Postman Console”
了解console.log()
接口描述:
Postman Console窗口输出内容的顺序体现了脚本执行的顺序,Pre-request Script请求中的脚本先执行,然后才发送接口的请求
设置变量、获取变量值脚本
1、设置一个全局变量
pm.globals.set("variable_key", "variable_value");
2、设置一个环境变量
pm.environment.set("variable_key", "variable_value")
3、获取一个全局变量
pm.globals.get("variable_key")
4、获取一个环境变量
pm.environment.get("variable_key")
演试案例:
演试内容:Postman在右侧区域列出了常用脚本的演试
通过console.log输出globals、environment当前的环境变量,Postman Console窗口的输出情况。
清除变量的脚本
1、清除一个全局变量
pm.globals.unset("variable_key")
2、清除一个环境变量
pm.environment.unset("variable_key")
发送请求的脚本
1、发送一个请求
pm.sendRequest()
????响应之后添加的脚本,称为测试脚本(Tests Script),即断言脚本,测试脚本主要用于接口断言,类似LoadRunner工具中的检查点、Jmeter中的断言功能。需要使用javascript语言为每个请求编写测试脚本。
测试脚本相关方法:
1、检查响应体中是否包含一个字段
pm.expect(pm.response.text()).to.include("指定的内容")
2、将xml格式额响应体转换程Json对象
varJson=xml2JSON(responseBody)
3、检查响应体等于一个字符串
pm.response.to.have.body("指定的内容")
4、检测响应体的JSON值
varJSON=pm.response.JSON();//将结果转换程json格式
pm.expect(JSON.value).to.eql(“目标数”);
5、检测响应体中包含某个header
pm.response.to.have.header("Content-Type")
6、检查响应时间,要求小于100ms
pm.expect(pm.response.responseTime).to.be.below(100);
7、要求该接口响应码为200
pm.varibles.get("指定状态码")
8、要求响应状态中包含某个字符
pm.response.to.have.status("OK")
9、要求status code符合某个条件
pm.expect(pm.response.code).to.be.oneOf([200,201,202])
????关于postman测试脚本中接口返回结果比较复杂的断言,且需要对多个值进行断言的情况,通过一个示例说明。
????假如该接口mock出参如下:
????我们需要断言其中的多个字段,可如下断言:
postman使用教程
postman使用教程:
准备材料:PostMan、联想ThinkPad E15、Win10
1、在官方网站下载对应系统所需要的PostMan软件,接着启动PostMan软件。
2、创建请求:点击+号创建一个新的请求。
3、参数添加:增加请求链接url和对应的请求参数。
4、运行查看结果:可以通过send按钮获得请求结果。
Postman使用注意事项
Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果,从而验证响应中的结果数据是否和预期值相匹配。
并确保开发人员能够及时处理接口中的bug,进而保证产品上线之后的稳定性和安全性。它主要是用来模拟各种HTTP请求的(如:get/post/delete/put等等),Postman与浏览器的区别在于有的浏览器不能输出Json格式,而Postman更直观接口返回的结果。
Postman基本使用(一)
As we all know, postman 是一个接口测试工具,是Google Chrome的一个插件,通过访问调用API,可实现不通过业务平台从而达到的业务目标;如创建一个账号,账号信息 json为 {"name" : "zc","password" : "zc@123"} , 创建账号的API为 { url } / createAccount / (说明:url为业务平台的base url),则在postman中可使用post方法 (基本方法见后文) 进行数据提交,避开了原有的交互型的业务平台,同样实现了接口既定的业务(postman在软件工程实践过程中主要应用在开发联调或测试阶段)
什么是token/Authorization,token是用户访问平台的一个秘钥,任何用户登录某个平台后,需要输入用户名和密码,后台验证通过后会返回一个秘钥,这个秘钥是有过期时间的,如长时间登录一个平台后,再次刷新浏览器会发现,可能已经被强制退出了,这就是秘钥过期了。因此在使用postman进行接口测试时,需手动获取一个最新的秘钥。
body选择数据格式为json,数据格式通用根据具体业务接口要求,如可传递from-data格式
其中status:200 OK,这个状态码是指接口访问成功,但并不是指接口验证成功,200 OK是http的状态码,如接口不存在时返回404状态码。具体业务请求成功或是失败需验证返回值,如正常情况下返回值“status”:100000(此信息为业务协议,并非固定),以及“message”:“ok”,此示例中因传递的参数不正确,故返回“100007”错误码。