一、接口测试

 

接口测试:就是把client和server端联系起来的。

 

Json是一种通用的数据类型,因此,任何支持的类型都可以通过 JSON 来表示。

 

Json语法:Json 键/值对(key-value)

 



key写在前面,并用双引号""括起来,中间用冒号:分隔,然后紧挨着值:



 


{"name":"aaa", 
 
 
 
 
 
 

     "sex","女" 
 
 
 
 
 
 

   }


二、Postman设置环境变量



1、添加环境变量



点击设置,打开“Manage Environments”对话框




接口权限控制开发 springboot_线程组

点击下面的“Add”按钮,添加一个名为“test”的一组环境变量,key是“test”,value是“XXXX”,接口中URL用{{test}}来引用这个值

接口权限控制开发 springboot_接口权限控制开发 springboot_02



三、用Postman做接口测试



 



接口测试中常用的请求为get和post请求方式



 

Get与Post区别:

 

1、get的数据是直接放在URL里面的,post请求的数据是放在body里面的。

 

2、get请求有长度限制,post没有长度限制。

 

3、get请求没有post请求安全,get请求参数会显示在地址栏上

 

4、get是从服务器上获取数据,post是向服务器传送数据。

 

1、Get请求实例:

例1:stu_info:获取学生信息

接口权限控制开发 springboot_json_03

例2:all_stu:获取所有学生信息

--这个接口是为了说明怎么添加header信息的,需要在header里添加Referer ,用来获取所有用户。

接口权限控制开发 springboot_json_04

 2、Post实例

例1:login:登录

接口权限控制开发 springboot_接口权限控制开发 springboot_05

例2:add_stu:添加学生信息

入参是Json类型

接口权限控制开发 springboot_json_06

例3:gold_add:金币充值
该接口有权限验证,需要admin用户才可以做操作,需要添加cookie

接口权限控制开发 springboot_线程组_07

例4:file_upload:文件上传

接口权限控制开发 springboot_接口权限控制开发 springboot_08

 四、用Jmeter做接口测试

jmeter 是一个开源的java开发的压力测试工具。

jmeter查看结果树乱码
   1、在jmeter的bin目录下找到jmeter.properties这个文件
   添加上
    sampleresult.default.encoding=utf-8
   2、重启jmeter

jmeter body data里面有乱码怎么解决
   1、在jmeter的bin目录下找到jmeter.properties这个文件
    添加上
    jsyntaxtextarea.font.family=Hack
   2、重启jmeter

以下是Jmeter页面

接口权限控制开发 springboot_测试_09

使用步骤:
1、添加线程组

测试计划右键->添加->Threads(Users)->线程组

接口权限控制开发 springboot_postman_10

2、添加HTTP请求

线程组右键->添加->Sampler->HTTP请求

接口权限控制开发 springboot_测试_11

3、输入服务器名称或IP,HTTP请求的方法Get或Post,输入路径,参数和值。

接口权限控制开发 springboot_测试_12

4、设置用户定义的变量

添加用户定义的变量是为了通过用户定义变量的方式来取得HTTP请求的服务器名称和IP,格式为${用户定义变量的名称}

 在线程组右键->添加->配置元件->用户定义的变量

接口权限控制开发 springboot_测试_13

填写用户定义变量的名称和值

接口权限控制开发 springboot_postman_14

5、察看结果树

察看结果树是为了察看HTTP请求的结果信息

添加察看结果树

在线程组右键->添加->监听器->察看结果树

接口权限控制开发 springboot_测试_15

启动请求后,点击察看结果树,就可以察看请求的结果

接口权限控制开发 springboot_接口权限控制开发 springboot_16

6、HTTP Cookie管理器的应用

以学生金币充值为例,建议HTTP请求,填写服务器名称或IP,请求方式为Post,填写名称和值

接口权限控制开发 springboot_接口权限控制开发 springboot_17

学生金币充值右键->添加->配置元件->HTTP Cookie管理器

接口权限控制开发 springboot_测试_18

cookie中key为登录的用户名,value从登录接口中获取,登陆成功之后会返回sign

 

接口权限控制开发 springboot_json_19

 注意:1、如果把HTTP Cookie管理器放到某一个接口下面,运行时只有这个接口会发送cookie

            2、如果把HTTP Cookie管理器放到线程组下面,每执行一次请求就会给所有接口发送cookie

 五、Jmeter参数化

1、用户定义的变量(用法在上方已说明)

2、__Random随机数

选项->函数助手对话框

接口权限控制开发 springboot_线程组_20

选择__Random函数,填写最小值和最大值,点击【生成】按钮,生成函数字符串

接口权限控制开发 springboot_接口权限控制开发 springboot_21

以user_reg接口为例,把函数字符串 粘贴到username后面

接口权限控制开发 springboot_线程组_22

在线程组中增加循环次数

 

接口权限控制开发 springboot_线程组_23

请求该注册接口,察看结果树

接口权限控制开发 springboot_接口权限控制开发 springboot_24

3、__counter函数
线程组->函数助手对话框->__counter函数

接口权限控制开发 springboot_接口权限控制开发 springboot_25

4、__time函数
线程组->函数助手对话框->__time函数

接口权限控制开发 springboot_接口权限控制开发 springboot_26

接口权限控制开发 springboot_json_27

5、从文件里面读
以gold_add接口为例,先获取所有学生信息的id,把所有id存到一个文件里,如文件名为user.txt

接口权限控制开发 springboot_postman_28

在线程组->添加->配置元件->CSV Data Set Config

接口权限控制开发 springboot_测试_29

填写文件的绝对路径和变量名

接口权限控制开发 springboot_测试_30

注意:1、如果文件不写绝对路径,只写文件名,把文件保存在Jmeter的bin目录下即可。

           2、如果有多列,Delimiter显示的是什么符号,就用什么隔开

调用变量名

 

接口权限控制开发 springboot_线程组_31

六、关联
调用第一个接口,然后从第一个接口中返回的数据里面拿到某个值,传到第二个接口中

如:调用登录接口,从登录接口返回的数据里面拿到sign值,传到学生金币接口

1、在登录接口下方添加jp@JSON Path Extractor

接口权限控制开发 springboot_线程组_32

2、填写变量名和JSON Path Extractor

接口权限控制开发 springboot_接口权限控制开发 springboot_33

3、调用登录接口放到学生金币接口中用

接口权限控制开发 springboot_测试_34

若想查看sessionid有没有取到值,在线程组->添加->Sampler->Debug Sampler

接口权限控制开发 springboot_线程组_35

察看结果树

接口权限控制开发 springboot_json_36