持续更新…
标记
Postman
1. Postman的开始
1.1 开始
Postman 是一种常用的接口测试工具,可以发送几乎所有类型的HTTP请求。Postman适用于不同的操作系统,Postman Mac、Windows X32、Windows X64、Linux系统,还支持postman 浏览器扩展程序、postman chrome应用程序等。
打开Postman
1.2 创建集合
创建一个集合,组织我们以后创建的请求
重命名集合fcds
1.3 创建请求
这里以我的项目-<新生寝室自选系统-管理员端>为例
添加一个请求,获取fcds项目首页的实体
再或者我们创建baidu
集合,创建百度首页的请求,获取网页实体
1.4 在百度翻译API注册成为开发者并开通通用翻译服务
2. Postman的应用
80-20原则:
1)软件中80%的缺陷发现在需求设计阶段;
2)软件中80%的代码是没有问题的,出问题的代码占20%;
3)软件的80%的功能,平时很少使用;
4)人们在使用一个软件的时候,80%的时间使用20%的核心功能。
2.1 Postman简介
Postman是一款功能强大的网页调试与发送网页HTTP请求,并能运行测试用例的Web API测试工具;能够模拟各种HTTP Request:从常用的GET、POST到Restful的PUT、DELETE…等;甚至还可以发送文件、额外的header。
Postman的版本
1)Chrome插件版本
2)独立App版本
2.2 使用Postman发送请求
2.2.1 不带参数的GET请求
比如以fcds项目为例,由于我的服务器到期了,所以url的47.97.37.165
都以localhost
代替
1)在集合中创建一个请求<得到所有的问卷信息>
2)输入url地址和请求方式GET
3)发送请求(SEND)得到响应结果
Body区域:
Cookie区域:
Headers区域:服务器返回的响应头部信息
Test Results区域(断言):判断服务器返回的响应信息是否正确
响应的其他信息:Status(状态码)、Time(响应时间)、Size(响应信息的大小)
2.2.2 带参数的GET请求
eg:
在fcds项目中,查找指定(id)问卷的问题集合
1)在集合中创建一个请求<得到所有的问卷信息>
2)输入url地址和请求方式GET
3)填写参数
4)发送请求(SEND)得到响应结果
在Params中添加参数的键值
eg2:
再比如我们使用百度翻译API
通用翻译API HTTPS 地址
https://fanyi-api.baidu.com/api/trans/vip/translate
准备参数:
1)q:constraint
2)from:en
3)to:zh
4)appid:你的appid
5)salt:随机数(可自己随便写)
6)sign:appid+q+salt+密钥的MD5(MD5加密的字符串)
这里我们使用工具生成sign
MD5在线加密
send
2.2.3 带参数的POST请求
eg:
使用fcds项目,管理员登陆
有些注册页面会使用下面这种表单数据的方式
2.3 参数化运行原理
自动化测试的两大技术点:
1)参数化运行
参数化:在程序中使用变量代替常量的过程。
循环实现脚本的自动运行,循环遍历数据,数据可能来自:程序本身的数据字典、集合、列表;外部的数据文件,比如csv、txt文件。
2)断言
脚本中添加相应的判断,实现脚本自动的比较(判断)程序的实际结果和预期结果。
2.3.1 设置参数和集合运行
什么是参数化?
- 使用变量代替常量的方式
- 设计参数文件(postman中支持csv文件和txt文件)
集合中运行
1)添加runner,设置测试集
2)配置运行次数和文件读取
eg
使用fcds项目
查询指定id集合的床位信息
1)准备参数化文件,csv文件,外部数据文件
2)在postman中创建接口请求
postman中关于参数化运行的方案和机制:以整个请求的集合为一个主体,参数化运行的作用对象是一个集合中的所有请求,需要将特定的请求单独放在一个集合中。
3)使用设置好的变量名代替相应位置的常量,postman中变量名用{{变量名}}
引起来
4)在postman中,启动runner,运行整个集合
5)选择要进行参数化运行的集合
6)设置运行效果(设置运行次数(iterations)、延时(delay)、选择文件(Data),选择文件类型(Text/csv,可以进行预览),保存响应,将值保存到会话中,运行集合不实用保存的cookie,在运行之后保存cookie)
7)开始运行
2.4 JSON
JSON的定义:
- JSON指的是JavaScript对象表示法(JavaScript Object Notation)
- JSON是轻量级文本数据交换格式
- JSON独立于语言
- JSON具有自我描述性、更易理解
- JSON使用JavaScript语法描述对象,但是JSON依然独立于语言和平台,JSON解析器和JSON库支持不同的编码语言。
JSON的特点:
- 纯文本
- 具有自我描述性(人类可读)
- 具有层级结构
- 可通过JavaScript进行解析
- 可使用AJAX进行传输
- …
JSON的语法规则:
JSON语法是JavaScript对象表示法语法的子集
- 键值对
- 数据由逗号分割
- 花括号
{}
保存对象 - 方括号
[]
保存数组
eg:
2.5 Postman中的断言
在Postman中,tests模块就是对HTTP的响应结果进行判断的
Postman中脚本支持的语言:JavaScript(包含了一个非常强大的Node.js)
Postman中脚本应用的场合:
1)断言(tests模块):在接收到HTTP的响应后进行处理和运行。
2)预处理信息(Pre-request script):在HTTP请求发送之前进行数据的处理和运行,可以配合参数化进行,通过指定的脚本运行或读取参数文件。
3)控制请求的运行,比如跳转某一个脚本,或者循环执行某一个请求。
脚本运行顺序:
1)预处理信息
2)控制请求的运行(比如控制、分支、循环)
3)断言
Postman中有内置的不同类型的断言,有些可以不用自己编写脚本
eg:
为<查询指定id集合的床位>请求添加断言
添加响应状态码200
添加响应时间(即响应时间必须小于你规定的时间,断言才能通过)
添加响应文本(即响应体中必须包含你规定的文本,断言才能通过)
运行
2.6 Postman中的断言深入应用
eg:
接着上面的例子,将第三个断言换成<对JSON数据进行检查>
运行