- 需求分析:
- 每次执行完自动化测试,我们不会执行删除接口把数据删除,而需要留着手工测试,此时会导致下次执行测试有旧数据
- 我们手工可能也会新增数据,导致下次执行自动化测试有旧数据
下面介绍两种清空数据的方法
一、通过获取total数值进行清空
1. 实际页面、查询接口地址如下,页面有分页统计功能,能获取到总条数
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zMS41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAxOTAyLzE2LzRhN2NmNjQxNjJjMmM3NjRkMzI0YmIwM2Q5NGM1Nzc0LnBuZw?x-oss-process=image/format,png)
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zMS41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAxOTAyLzE2Lzk3OGU5N2Y3ZWFjYWY3MDUxNjg1ZmI4NGZmNGQxODVhLnBuZw?x-oss-process=image/format,png)
2. 首先需要添加查询接口获取总条数number,如下所示
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zMS41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAxOTAyLzE2LzBkMzhmNWI4MjE4MDZlZGZhNzJkY2M0ZTFlYWI0MmIzLnBuZw?x-oss-process=image/format,png)
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zMS41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAxOTAyLzE2L2VlYjNhMzdiYzE5MmUyNzRhZmYwOWE3N2M2ZGU3ZGYxLnBuZw?x-oss-process=image/format,png)
3. 在接口管理层级下新增一个循环控制器,用来控制循环的次数,变量为上个查询接口获取的number,如下所示
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zMS41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAxOTAyLzE2Lzg4MzI0NWQ3OTA5ODIwY2U5NjVlNzkxZmIyN2NjNzBlLnBuZw?x-oss-process=image/format,png)
4. 接着在删除检查数据层级下新增一个查询接口(该接口地址和获取number变量一样),用来获取delete_id,如下所示
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zMS41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAxOTAyLzE2LzI5MDM5YmJiMzM2YzE4ZTFhOWExMzJkYjdjN2JkNDRhLnBuZw?x-oss-process=image/format,png)
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zMS41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAxOTAyLzE2L2UzODY1MWZhZjdkNjM1NjJhMzVmNThhMTg4YWUxYjlhLnBuZw?x-oss-process=image/format,png)
5. 接着新增一个删除接口,把获取的delete_id变量参数化到删除接口中
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zMS41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAxOTAyLzE2LzBjMjU0OGE3ZTYzMzc3ODIxZTk2OWY1YjIzMmRlMmQ2LnBuZw?x-oss-process=image/format,png)
6. 执行结果如下:
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zMS41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAxOTAyLzE2LzY3NzA2MDNkYThlNWQ0ZDQyNDg5NzM4ZDI2ZjJmZDk0LnBuZw?x-oss-process=image/format,png)
7. number变量获取方法如下:
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zMS41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAxOTAyLzE2LzVkMTUwYjc3MzFlZDdlZDU4YWViZmUyOGY5OTEyYzIwLnBuZw?x-oss-process=image/format,png)
8. delete_id变量获取方法如下,每次获取第一个数值,直到循环结束:
二、通过获取jmeter变量matchNr进行清空
1. 实际页面、查询接口地址如下,页面没有分页查询功能,无总条数,可以通过jmeter的json path匹配变量获取总条数
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zMS41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAxOTAyLzE2LzU3YjgwNzZjNDVlNjEwN2UzOGQwMTFiMzYyZTA3YWNjLnBuZw?x-oss-process=image/format,png)
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zMS41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAxOTAyLzE2L2M2OGQwOGE5ZGRjNTFjZmIyMWQ3ZTU4Nzg3ZTVkMTNhLnBuZw?x-oss-process=image/format,png)
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zMS41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAxOTAyLzE2LzI3NGNiMzhmYzI2ZDYxNTA4M2VhMTE2N2YzMDBiZmEwLnBuZw?x-oss-process=image/format,png)
2. 首先需要添加查询接口获取总条数assignment_id_matchNr,如下所示
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zMS41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAxOTAyLzE2LzNmMWY5ZGRkZjVhZmViNGJjOTBhMTUxYWFhNTc5NjJkLnBuZw?x-oss-process=image/format,png)
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zMS41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAxOTAyLzE2Lzg2OTgxZTRhZWVjNmExZmU3YmU3NjUyNWVlMGQwMWRhLnBuZw?x-oss-process=image/format,png)
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zMS41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAxOTAyLzE2Lzg4OTA3NGExYTEzMzM0MmY3MTQ4ZjhmMDY2MTMyMTQxLnBuZw?x-oss-process=image/format,png)
3. 在接口管理层级下新增一个循环控制器,用来控制循环的次数,变量为上个查询接口获取的assignment_id_matchNr,如下所示
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zMS41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAxOTAyLzE2LzNmZjhiNmY0MGYyODIwNjBlM2YzODY3NWFlNjgxYTRlLnBuZw?x-oss-process=image/format,png)
4. 接着在循环控制器层级下新增一个查询接口(该接口地址和获取assignment_id_matchNr变量一样),用来获取delete_id,如下所示
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zMS41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAxOTAyLzE2L2FkNmQ0NzUyZGJjOTgxNTdkODcxMGRkZDViMGZkMzQ0LnBuZw?x-oss-process=image/format,png)
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zMS41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAxOTAyLzE2LzllMDkyNDUxN2Q1N2E1NTg0ZjUyYjFjNGY0Y2U4ODRlLnBuZw?x-oss-process=image/format,png)
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zMS41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAxOTAyLzE2LzcwODUyYjYyYTcxODM2MGQ3OTAzOTRhMThkZjk3ZWE5LnBuZw?x-oss-process=image/format,png)
5. 接着新增一个删除接口,把获取的delete_id变量参数化到删除接口中
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zMS41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAxOTAyLzE2LzI0OGQ0NGJjNjliOTNiYmI3MTU0NjkxYzkyY2IzMWNjLnBuZw?x-oss-process=image/format,png)
6. 执行结果如下
![](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9zMS41MWN0by5jb20vaW1hZ2VzL2Jsb2cvMjAxOTAyLzE2L2JhYmQwYjZiODI1NjA3NTUxZGUwYjIzNWY5Y2UyMmUzLnBuZw?x-oss-process=image/format,png)
三、数据安全校验
目前很多系统都是项目型,通过projectid去筛选查询接口,查询出自己需要的项目数据,其中就涉及到接口的安全测试,如果传的projectid为空,可能就会返回系统全部的数据,这种接口是有问题的,如果应用到循环删除中,就可能导致生产事故
1. 传正常的projectid,返回结果正常
2. 传projectid=null,返回系统所有数据
3. 怎样规避这种风险,可以增加个if控制器判断,只有project等于某个值(自己测试的项目)才能执行自动清除数据接口,project_check定义在全局变量中,跟着环境走,如下所示
2023最新Jmeter接口测试从入门到精通(全套项目实战教程)