文档章节

学习笔记-接口、接口测试工具

o
 osc_y8yehimr
发布于 2019/03/21 16:36
字数 1581
阅读 13
收藏 0

精选30+云产品,助力企业轻松上云!>>>

首先,接口是什么呢?

由于前端和后端之间需要频繁的交互,而这两者的开发语言通常是不一样的,这就需要一种方式来实现它们之间的交互。

而接口可以从数据库取数据展示给客户端,也可以向数据库插入数据反馈给服务端。

所以接口可以理解为:通过从数据库取数据、插入数据,来实现服务端和客户端之间交互的工具。

 

知道了什么是接口,接下来我们来学习接口测试!接口测试,其实就是功能测试,而且比一般的功能测试还要简单。

测试接口需要知道那些信息呢?

1、接口的请求url 

2、请求参数

3、请求方式 (分为get/post/put/delete等,我们主要认识get和post请求

先来说一下get请求,get请求是不需要借助任何的工具,在浏览器里面就可以发请求的。下面先来小试牛刀一下,如下是接口说明

那么我们怎么在浏览器发送请求呢?这里再说一下get请求的格式是“url?参数名=参数值”如果是多个参数就用“&”分开,例如 “url?参数名=参数值&参数名2=参数值2”。下面我们就在浏览器里按照这种格式测试一下,输入http://api.nnzhp.cn/api/user/stu_info?stu_name=小白,然后发送请求,我这里得到以下返回值

 

对比一下,和接口说明中的返回值格式一致,说明接口调用成功了!

然后我们再来做一下post请求格式的,同样的,打开接口说明

post请求格式是不能直接用浏览器发送请求的,那么我们就需要工具来做测试了,常用的接口测试工具就是

postman和jmeter,我们先使用postman测试一下这个接口,后面再说jemter。

打开postman,参照下面的方式输入请求url,并且在Body按照接口说明输入需要的参数名和参数值

然后点击“Send”发送请求,得到返回值如下

对比,和接口说明中返回值格式一致。 

 

JMETER

简单的说完比较常用的两种接口,下面来学习一下jmeter。jmeter是性能测试工具,也可以制作脚本实现自动化测试。

打开jmeter,先来创建一个线程组

然后查看线程组,

里边可以设置线程数、并发数等操作。我们要测试接口,就在线程组下面在添加一个HTTP请求,

为了能查看接口请求的结果,我们再添加一个 查看结果树。

完成以上工作后,我们测试一个新的接口,查看一下接口说明

入参是json格式,在jmeter中把接口的url,请求方式以及参数写好

这里参数需要以json的格式输入到Body Data中。可以看到我这里使用了,这个只要在函数助手中生成随机的时间和随机数就可以了。然后发送请求,在查看结果树中查看

由于我在线程组中设置了五次循环,所以这里有五个结果。

接下来介绍另外一个功能,HTTP cookie管理器 HTTP 信息头管理器  这里使用一个需要用到cookie的接口,查看一下这个接口的说明

 

*在线程组中添加一个HTTP请求,然后在这个请求下边添加一个cookie管理器/信息头管理器(两者在这里的用法是一样的,只需要启用一个就行了)

cookie管理器

 

 信息头管理器

 

在配置中都按照借口说明配置参数,这里又用到了  分别是用户名和cookie值。这里首先需要介绍一下文件参数化

*文件参数化,先创建一个可编辑文本,格式要像这样,中间用逗号隔开(也可以用别的,可以自己定义)。

然后在线程组下边添加一个  ,配置文件路径和对应的参数名

这样配置完成后,所有线程组下的HTTP请求就都可以使用其配置到的文件中的参数值了。还有一个问题,cookie值从哪里来呢?上边介登录接口时,返回值中有一个sign,这个sign对应的值就是这里我们需要的cookie,也就是服务器端对应的session。那么我们就来调用一下登录请求,获取一下cookie值吧!

这里我已经在线程组中配置好了登录接口的请求,另外我们还需要在登录请求下添加一个  ,查看一下登录接口的返回值的json格式,然后我们在 jp@gc - JSON Path Extractor 里边根据返回值格式,配置cookie的获取方法

这样在登录后sessionid就是可用的cookie值了。

同时启用登录和学生金币充值两个接口发送请求,查看结果树

可以看到,接口请求成功,并且得到了返回值。

但是呢这些返回值有一些是没有操作成功的,怎么来判断每次请求的操作是否成功了呢?---使用断言 它可以自动帮你校验结果返回的是否正确。

例如,我们在登录接口下添加一个相应断言,用户登录成功后会返回userId,那么我们就通过校验是否返回userId来判断。

如上图,启用这个相应断言,然后再次发送请求,查看结果树

 

好了,就能看到哪些请求操作是成功的,哪些是失败的了。

 

有的同学使用jmeter可能会出现乱码的现象,最后再说一下这个解决办法:

1、解决jmeter返回有乱码
  在jmeter.properties文件中最下面加入sampleresult.default.encoding=UTF-8
  重启jmeter
2、bodydata里面中文显示不出来
  在jmeter.properties文件中最下面加入jsyntaxtextarea.font.family=Hack
  重启jmeter

 

 

以上就是本次分享的学习内容,精彩未完,待续。。。

 

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。

暂无文章

渗透测试的概念和实战

目录 1. 前言 2. 常见web安全漏洞 3. 思路 3.1渗透测试思路 3.2黑客攻击思路 4. 暴力破解 4.1谷歌黑语法 4.1.1 黑语法inurl:搜索url包含指定字符串 4.1.2 黑语法intitle:搜索网页中的标题名...

六道木
35分钟前
19
0
Nginx搭建

Web服务器 放置网站文件,全世界浏览 可以放置数据文件,让全世界可以下载。 Nginx官方网站www.nginx.org #rz nginx-1.11.6.tar.gz #ls #rpm -q zlib-devel pcre-devel #yum –y install zli...

osc_fnto2dbd
47分钟前
14
0
如何在1分钟内CSDN收益1000万,走上人生巅峰?!

事情的起因源于前几日CSDN专栏作者群中有位同志自曝收益:426584.46元(不用数了42万+,未证实是否属实),瞬间刷屏。 那么作为一位普通的技术分享者,是否有机会利用开源项目短时间内赢取白...

osc_8db3mwb5
48分钟前
23
0
【java基础(五十)】为什么要使用泛型程序设计

从Java程序设计语言1.0版发布以来,变化最大的部分就是泛型。致使Java SE 5.0中增加泛型机制的主要原因是为了满足1999年制定的最早的Java规范需求之一(JSR 14)。专家组花费了5年左右的时间...

osc_qcm2mqmy
50分钟前
20
0
如何将Unix时间戳转换为DateTime,反之亦然? - How can I convert a Unix timestamp to DateTime and vice versa?

问题: There is this example code, but then it starts talking about millisecond / nanosecond problems. 有此示例代码,但随后开始谈论毫秒/纳秒问题。 The same question is on MSDN, ......

javail
50分钟前
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部