请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

数据驱动问题

老师,晚上好,请问我们的接口自动化测试中数据驱动都是用excel去驱动嘛?后面的课程有其他驱动方式吗,在实际的项目应用中,是需要数据使用完毕以后进行销毁的,这种怎么处理哈,比如,一个新建会员接口,可能会存在几个表中,或者数据库和mongodb都有,这种如何处理,我想每次执行完以后,数据全部销毁,防止数据冗余,这种如何处理哈?

正在回答 回答被采纳积分+3

1回答

城下秋草 2018-11-01 22:14:05

这种确实是典型场景,但不算数据驱动范畴。数据驱动其实主要指包括流程和测试输入以数据体现。你这个情况其实是脚本初始化和场景销毁的工作,也就是junit里beforeclass,afterclass。这里可以在afterclass中写销毁脚本:比如清理数据库的sql语句。通常做法beforeclass里准备初始化数据,比如创建一个测试环境库和相关数据,自动话执行完毕afterclass清理掉这个库

0 回复 有任何疑惑可以回复我~
  • 提问者 慕雪2143767 #1
    感谢老师这么晚回复问题。其实做这么久一直纠结的就是这个数据冗余处理的问题,一直没有好的方法去处理。我在实际项目中遇到的是,我们测试组就只有一套测试环境,系统搭建的话,有mysql,mongodb,redis。问题是在只有这一套环境的情况下,如何做到清理冗余数据,就像你说的,在after中写清理脚本,也没问题,可是实际比这个要复杂,比如还是新建会员,实际中,这个会员是分表设计的,可能在会员_1,也有可能在会员_2表中,这种都是随机,或者我新建一套环境,只有接口自动化测试一个用,这种用完立刻drop掉,是能解决实际问题,但是在很多公司应该是都是一套测试环境的情况下,如何去做呢?
    回复 有任何疑惑可以回复我~ 2018-11-01 22:36:55
  • 城下秋草 回复 提问者 慕雪2143767 #2
    比较好的做法,比如要做持续集成,自动化测试环境和数据最好都是动态创建的,保证数据和环境的稳定性。
    至于你说的情况,确实也很普遍,功能测试、性能测试、自动化测试可能都是共用的环境,这样确实会引入互相干扰的风险,最好还是推动环境独立。但是一定需要共用的话,可能就要麻烦点,通过抓取log等记录你脚本创建的数据记录去向,或者就是loop循环判断数据所在,直到清理完成。当然如果接口本身也提供了删除的接口,也可以直接通过接口来清理,保证下次创建不出现重复即可。当然这种方式不如直接清理数据库来得彻底。
    回复 有任何疑惑可以回复我~ 2018-11-01 23:00:38
  • 提问者 慕雪2143767 回复 城下秋草 #3
    非常感谢老师的回答和帮忙解疑。
    回复 有任何疑惑可以回复我~ 2018-11-01 23:06:51
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信