接口测试及postman工具的使用

目录

接口测试:(postman)

接口测试的分类:

接口测试原理和内容:

接口测试原理:

接口返回的数据格式:

接口协议和理论:

接口协议:

url理论:

接口测试的流程和方案:

接口测试用例编写思路:

单接口测试:

业务场景测试:

接口测试工具postman:

postman基础使用:

postman断言:

postman全局变量和环境变量:

postman请求前置脚本:

postman关联:

postman生成测试报告:

postman读取外部数据文件(参数化):

postman创建环境变量:


接口测试:(postman)

接口测试的分类:

这里我们只学习功能测试,其他两个只需知道有这个东西就行

接口测试原理和内容:

接口测试原理:

接口(API):软件提供给外部的一种服务,用于数据传输
接口分为内部接口和外部接口
内:开发对自己系统提供的接口
外:系统调用外部的微信,支付宝其他的接口
软件为什么需要接口:
接口能够让软件内部的数据被外部进行修改,例如:通过微信提现和充值来改变银行卡里的钱,即微信和银行之间需要数据交接
为什么要做接口测试:
1.很多的系统都是前后端分离,开发的进度不一样,需要把先开发出来的接口进行测试(或者用外部接口进行测试,让测试尽早的介入)
2.可以发现页面操作发现不了的问题
3.基于安全考虑,防止未经授权或者验证的数据泄露
接口测试原理:
客户端向服务器发出请求,服务器接受请求后向客户端进行相应的业务处理,并向客户端返回响应数据,检查响应数据是否符合预期

微信和银行之间如何交互:
微信和银行签订合同,银行会给key(密钥)给微信,微信通过key请求web服务器,web服务器请求银行的充值和提现接口,这些接口的本质就是动作
接口测试的本质:测试接口能否正常的进行数据交互,权限控制等

接口返回的数据格式:

Json:三组数据
error_code:错误码,0代表成功
msg:对错误码的中文说明
data:真正返回的数据
Html
Xml
Json就是一种数据类型
Json有两组数据组成:
MAP对象,键值对,{key:value,key:value}
数组:【value1,value2,value3】
www.bejson.com
可以校验我们开发写的json格式的正确与否,还有一些加密,解密 功能

接口协议和理论:

接口协议:

1.webservice协议:接口地址:http://----------?wsdl
restful规则:请求方式不同而地址相同
get方式获取数据,post用来提交数据,put修改数据,delete删除数据
2.dubbo协议:接口地址:dubbo://........................
适用于少量数据的传输,大并发
3.http协议:接口地址:http://或https://
https=http+ssl安全传输协议     端口:443
http    端口:80
****什么是http协议:
http是超文本传输协议,主要用于浏览器和服务器之间的数据交互,交互有两个部分:
请求方式:get,post,put,delete
响应码:1开头的响应信息,2xx响应成功,3xx重定向(跳转不传值),4xx客户端错误,5xx服务器错误
请求包含哪些部分:
请求行:请求方式,请求地址,协议
请求头:Content-Type:指定请求体中的数据格式类型  Authorization:用于进行身份验证的凭证信息
空一行
请求正文
响应包含哪些部分:
响应行:协议,响应码,响应信息
响应头
空一行
响应的正文

url理论:

url(统一资源定位符):

接口测试的流程和方案:

1.拿到Api接口文档(如果没有则自己去抓包,熟悉接口业务):写接口文档能够让前端开发和后端开发有一个统一的标准,更好的配合
2.编写接口测试的计划和方案
编写用例思路:
正例:输入正常的参数,查看接口是否返回成功
逆例:
        鉴权反例:鉴权为空,鉴权错误,鉴权码过期
        参数反例:参数空,参数类型异常,参数长度异常,错误码覆盖
其他场景:分页异常
编写用例和评审
执行接口测试
输出接口测试报告

接口文档的格式:

接口测试用例编写思路:

单接口测试:

各种单模块:

业务场景测试:

业务模块:

尽量用最少的用例覆盖最多的接口
分析测试点:
针对员工管理业务场景:
登录--添加员工--查询员工--修改员工--查询员工--删除员工--查询员工列表
添加员工
先打开员工管理系统,添加员工,点击检查,点击提交这时候会在开发者页面看到该条提交的数据,即可以点击查询请求体(请求数据)(即为一开始输入的数据)
查询员工
查询员工没有请求体(请求数据)
修改员工
有请求体
删除员工
没有请求体

接口测试工具postman:

postman基础使用:

postman直接写入相关参数,即可运行,查看对比结果即可

postman断言:

借助js代码自动判断结果是否符合预期

在js选项下点击右边小三角,下面会出现各种命令的代码,点击即可出现相应的js代码
常用断言:(下面几个都能找到)
断言响应状态码

断言响应体是否包含某个字符串
断言响应体是否等于某个整体对象
断言JSON数据
断言响应头等等判断

postman全局变量和环境变量:

在一个项目中可能会有多个请求,每个请求里都会产生一些数据,想把这里面一些数据传递给另外的一些请求,
这里就需要用到全局变量或者环境变量,如果没有这些变量的话,本身这两个请求是独立的两个请求

全局变量:全局唯一的变量,不可以被重复定义
设置:pm.gobals.set(“全局变量名”,全局变量值)
获取:
1.var 接收值的变量=pm.gobals.set(“全局变量名”,全局变量值)
2.{{全局变量名}}     (在postman中params中的value中填写{{全局变量名}} 即可)
环境变量:一个变量只属于某一个环境,在这个环境中变量不能重复定义
设置:pm.enviroment.set(“环境变量名”,环境变量值)
获取:
1.var 接收值的变量=pm.enviroment.set(“环境变量名”,环境变量值)
2.{{环境变量名}}
不同环境之间,环境变量定义可以重复
环境分类:开发环境,测试环境,生产环境

postman请求前置脚本:

请求前置脚本是在send按钮点击后第一时间被执行,在postman内部发送http请求之前
时间戳:从1970年1月1日00:00:00到现在经历的秒数
获取时间戳代码:

案例:调用百度接口,传时间戳给服务器(这里时间不能在断言中写,因为这在http请求之后,
所以这里要在http请求发送之前先把时间戳拿到,携带着在访问百度接口的时候携带过去)

一个是前置脚本,一个是断言
结果:

再将设置成变量的时间戳传给(由百度获取)百度
在postman中params中的value中填写{{全局变量名}} 即可

再点击postman console控制台,就能看到传给了百度

postman关联:

应用于多个http请求之间,数据关联或依赖关系时
实现步骤:

案例:
请求获取天气接口,提取响应结果中的城市,将城市名给百度接口使用
首先获取天气接口:

这里面响应体里面出现城市名,则提取的时候不能在请求前置脚本中获取,而要在断言中去获取
从响应体中去拿city,city又在jsonData数据里,所以一层一层拿,再设为全局变量

必须写成wd,表示搜索,他拿到了北京关键字

postman生成测试报告:

批量执行测试用例
将所有的测试用例放到一个项目里,然后点击右上角的run就能批量执行,主要是为了执行完后生成测试报告
先把用例集运行好,然后导出
生成测试报告命令:

postman读取外部数据文件(参数化):

参数化的意思就是从外部数据文件中拿数据
当http请求,使用的数据有较高的相似度时,相同的请求时,考虑使用参数化(将数据组织到数据文件中)
比如不同的账号登录,我们就可以吧不同的账号放到数据文件中
数据文件:
csv:
优点:数据组织形式简单,适用于大数据场合
缺点:不支持boll类型
不支持多参,少参,无参,错误参数的接口测试
不支持复杂数据类型
json
优点:支持bool类型
支持多参,少参,无参,错误参数的接口测试
支持复杂数据类型
缺点:
相同的数据量,json文件大小远大于csv文件大小
csv

json差不多
读取数据文件

案例:按手机号找运营商

断言自动比较文件中的数据和运行出来的数据是否一致
导入数据

换成文件中的数据,使用上面读取数据文件两种不同方式

代码改完后,不能直接使用send,而要用run载入数据文件去运行

得出结果

postman创建环境变量:

PostMan是一套比较方便的接口测试工具,但我们在使用过程中,可能会出现创建了API请求,但API的URL会随着服务器IP地址的变化而改变。
这样的情况下,如果每一个API都重新修改URL的话那将是非常的麻烦,所以PostMan中也提供环境变量的设置
比如:
在environment中创建环境变量

环境变量的添加,这里使用第二种参数直接添加的方法{{}}

添加完后可以直接用眼睛去比较,但也可以用断言输入,然后自动比较

以上就是接口测试的功能测试模块和postman工具的内容。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值