这段时间在复习测试理论的相关知识,发现真的一些东西是千丝万缕的关系,由一个点很容易扩展出很多其他的点,从单元测试,集成测试中又衍生出了接口测试,在之前的学习中只接触过接口测试的相关词汇,对字眼熟悉但是对于其本质和内涵还是一知半解,因此借这段时间的笔面试准备也顺便把这部分内容稍微学一点。
接口测试:接口测试用于测试外部系统与当前系统,以及各个子系统之间的交互点,测试重点在数据的交换,传递和控制管理过程,以及系统间的相互逻辑依赖关系。包括:web接口测试,应用程序接口(API等),数据库接口测试等。
什么是接口:接口其实是一个功能部分已经封装好,为了之后的软件复用性和组装,而设置的一个入口,通过阅读接口的文档,虽然无法获取整个代码逻辑或者其内部实现的原理,但是通过参数的调用,就可以实现对整个接口实现的功能的调用,如API的调用。可以这么理解,接口相当于一个汽车的油门,相当于一部电梯的按钮,相当于一个中间角色。
Postman是一个非常重要的接口测试工具,可以实现web的请求,抓包以及collection中的自动化测试部分,至于能否自动生成测试文档,这个没有探索过,但是另外有个工具,https://www.apipost.cn/,好像可以直接生成测试文档,之后有时间的时候再琢磨琢磨。
Postman下载地址https://www.getpostman.com/,选择对应的版本下载之后安装即可。
(Postman的UI设计和github一家的吧,真的好看极了)
需要进行注册登录就可以使用了。
第一次使用的同学可能和我一样有点懵,不知如何下手,然后疯狂找资料恶补哈哈,这里我借鉴了博主@万里归来少年心的一些资料,六步走下来对于postman也有了一些初步的了解,这个是链接:https://blog.youkuaiyun.com/liyazhen2011/category_8519531.html
我们来看看界面
下面我们以一个简单的例子实际操作一下吧,网上有很多接口开放测试,以心知天气接口https://www.seniverse.com/api为例,我们进行一次GET请求,postman里面的请求有很多,现在还没有玩起来,只用到get和post两种最常见的,有个博主讲的蛮形象的,url相当于网上的资源请求地址,协议+域名+端口+文件路径+文件目录,而get/post/put/delete,相当于我们对这些资源进行的查、改、增、删操作。
心知天气需要先进行注册登录,之后我们查看API接口文档获取对应的参数信息https://docs.seniverse.com/api/start/common.html
最最基本的包括
key:你的密钥
location:地址
language:语言
unit:单位
得到这部分参数信息后,我们设置url地址https://api.seniverse.com/v3/weather/now.json,设置请求方式为get,获取天气信息
输入对应的参数值即可,这里的key值是指自己的私钥,点击心知天气中的控制台——产品就可以获取,可以使用私钥加密,也可以使用公钥+私钥进行非对称加密,这里比较简单地直接使用私钥进行加密了,之后点击send即可成功发送一次请求。以json形式呈现请求结果如下。
这是最基本的postman的http请求了,下面我们谈一谈postman的环境变量设置
之后我们添加变量,这里的变量包括有局部变量和全局变量
变量的意义在于可以不用每次请求的时候都反复输入,也可以将某次请求的结果设置为变量作为下一次请求使用,比如常用的accesstoken等信息。
设置完变量之后,我们调用的方式是,{{这里是你的变量名}},这样子在你的请求参数中就会自动设置该变量的实际value,比如我们设置局部变量add2=长沙,在请求中我们修改location的参数值
可以得到结果为长沙的天气
如何将请求的结果保存并设置为变量的值,可以在test中使用语句
var weather=JSON.parse(responseBody);
pm.globals.set("add",weather.results[0].location.name);
设置变量weather获取整个json作为对象,之后设置参数遍历,global为全局变量,也可以设置局部变量
var weather=JSON.parse(responseBody);
pm.environment.set("add3",weather.results[0].location.name);
可以看到test成功运行无报错,打开参数表可以对照参数
还可以使用postman进行抓包研究,但是个人感觉抓包还是用wireshark可以分析得更准确深入一些,postman只是一些请求地址的显示
这里可以进行抓包。
图书馆要闭馆啦
看到关于postman自动化的一些测试感觉超级有帮助,postman入门之后很大的作用可以用collection来进行自动化多次测试,可以显示测试的成功和失败测试,collection也可以设置多个目录,根据测试需要来。
学会postman的基本功能之后可以参考这个https://blog.youkuaiyun.com/cai_iac/article/details/81030619来进一步学习postman的自动化测试呀!