- 需求分析:
- 每次执行完自动化测试,我们不会执行删除接口把数据删除,而需要留着手工测试,此时会导致下次执行测试有旧数据
- 我们手工可能也会新增数据,导致下次执行自动化测试有旧数据
下面介绍两种清空数据的方法
一、通过获取total数值进行清空
1. 实际页面、查询接口地址如下,页面有分页统计功能,能获取到总条数
![](https://i-blog.csdnimg.cn/blog_migrate/16c76ca246e5f7ebfa400e21a2da4635.png)
![](https://i-blog.csdnimg.cn/blog_migrate/cdf81180e53701147b9e916955551078.png)
2. 首先需要添加查询接口获取总条数number,如下所示
![](https://i-blog.csdnimg.cn/blog_migrate/95a2600d51ea8542dedf6bed7db8c78b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ab828eb3c9b0a691d012717bbfd11829.png)
3. 在接口管理层级下新增一个循环控制器,用来控制循环的次数,变量为上个查询接口获取的number,如下所示
![](https://i-blog.csdnimg.cn/blog_migrate/6f844278fd18373cb15653ee8b50640d.png)
4. 接着在删除检查数据层级下新增一个查询接口(该接口地址和获取number变量一样),用来获取delete_id,如下所示
![](https://i-blog.csdnimg.cn/blog_migrate/521ab92bc492078b2c0ad1272a8f35ad.png)
![](https://i-blog.csdnimg.cn/blog_migrate/2a67e9a3168a28a2b0828e0e814e3680.png)
5. 接着新增一个删除接口,把获取的delete_id变量参数化到删除接口中
![](https://i-blog.csdnimg.cn/blog_migrate/5963d4cdcba4be65e3b947556b0374ac.png)
6. 执行结果如下:
![](https://i-blog.csdnimg.cn/blog_migrate/cffaa2b7f6d5726a1e060dec50790326.png)
7. number变量获取方法如下:
![](https://i-blog.csdnimg.cn/blog_migrate/7a70ec14c17987fe466ed797986014f9.png)
8. delete_id变量获取方法如下,每次获取第一个数值,直到循环结束:
二、通过获取jmeter变量matchNr进行清空
1. 实际页面、查询接口地址如下,页面没有分页查询功能,无总条数,可以通过jmeter的json path匹配变量获取总条数
![](https://i-blog.csdnimg.cn/blog_migrate/adeb60d31580445eee10fc58dc86fb2e.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c6ec5119ed2dbe9c5fa5b9ec5b2b9f68.png)
![](https://i-blog.csdnimg.cn/blog_migrate/af3d7581c86d7231b92503a6e3d5456a.png)
2. 首先需要添加查询接口获取总条数assignment_id_matchNr,如下所示
![](https://i-blog.csdnimg.cn/blog_migrate/88d6d4bc4a76fdecc9690c16a1a1c51c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/fd21d3bc713e1a1a0b0e046af947b989.png)
![](https://i-blog.csdnimg.cn/blog_migrate/c6dd4aa1cfeefff5b5dd6371c6fc33ef.png)
3. 在接口管理层级下新增一个循环控制器,用来控制循环的次数,变量为上个查询接口获取的assignment_id_matchNr,如下所示
![](https://i-blog.csdnimg.cn/blog_migrate/ebfecb85443933d44120621df757ff49.png)
4. 接着在循环控制器层级下新增一个查询接口(该接口地址和获取assignment_id_matchNr变量一样),用来获取delete_id,如下所示
![](https://i-blog.csdnimg.cn/blog_migrate/5cf00ea99ad69f42260b47f8e893d502.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4bd9c6a17e0931997d17c1e0b942bd13.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7ad3f75a8a6ba71d36d9af59482e161e.png)
5. 接着新增一个删除接口,把获取的delete_id变量参数化到删除接口中
![](https://i-blog.csdnimg.cn/blog_migrate/a3aef8a3f93000824c99555d9d99376e.png)
6. 执行结果如下
![](https://i-blog.csdnimg.cn/blog_migrate/934c26d282dc39ae9f61866bc7239c50.png)
三、数据安全校验
目前很多系统都是项目型,通过projectid去筛选查询接口,查询出自己需要的项目数据,其中就涉及到接口的安全测试,如果传的projectid为空,可能就会返回系统全部的数据,这种接口是有问题的,如果应用到循环删除中,就可能导致生产事故
1. 传正常的projectid,返回结果正常
2. 传projectid=null,返回系统所有数据
3. 怎样规避这种风险,可以增加个if控制器判断,只有project等于某个值(自己测试的项目)才能执行自动清除数据接口,project_check定义在全局变量中,跟着环境走,如下所示
【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】
一、Python编程入门到精通
![](https://i-blog.csdnimg.cn/blog_migrate/4b4268cd991fa32c720e9fa42b4c97db.png)
二、接口自动化项目实战
三、Web自动化项目实战
![](https://i-blog.csdnimg.cn/blog_migrate/527e6ed0924e9d03d7d5268e754d335b.png)
四、App自动化项目实战
五、一线大厂简历
![](https://i-blog.csdnimg.cn/blog_migrate/dc993cad0d11ea10b4e1bcbb6c5578fc.png)
六、测试开发DevOps体系
七、常用自动化测试工具
![](https://i-blog.csdnimg.cn/blog_migrate/014e3127eff8824a6ed285f00783640b.png)
八、JMeter性能测试
九、总结(尾部小惊喜)
生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!
生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!
只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到!
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!