自动化测试用例及数据清理相关疑问

一、问题背景:

  • 通过学习了课程的web自动化相关录播和直播课程,老师课上根据企业微信进行了部分测试用例的实战编写,但是对于测试用例的耦合和数据清理,自己有点疑问,希望老师能帮忙解答一下。谢谢!

二、问题前置场景

用户表:user 存放用户基础信息,字段比如guid,user_id,user_name,sex,tel 等
用户扩展表:user_extend 存放guid,user_id,city,education 等

测试:新增用户操作

参数化用例
张三,男,13500000001,北京,本科
李四,男,13600000002,上海,硕士
小红,女,13700000003,广州,本科
......

三、问题描述

  • 成熟的公司自动化是不是有专门的自动化测试环境呢?(目前我们现有测试项目只有一套开发环境、测试环境(测试人员共用,不能随意清除数据)、准生产环境)

  • 比如备测系统用户角色模块有增、删、改、查功能,是否每个功能的用例都需要独立?

    • 我理解的不独立:
      1.新增角色1
      2.编辑角色1->角色2
      3.查看角色2
      4.删除角色2
    • 如果正常情况下,功能正确,那么这一系都是正确的;但是如果出现新增操作失败,那么编辑、查看、删除的用例也统统失败了。
  • 比如新增用户操作,进行数据参数化,使用完成后数据清理是直接连接数据库先清空user_extend表,再清空user表,粗狂的进行操作吗

  • 目前自己的测试项目,有很多页面都有增删改查功能,这种情况下,测试用例该怎么设计呢?目前系统很多功能,都会被其他功能复用。比如基础数据中有模块A,模板B,模块B要用到模块A创建的数据,那么测试用例B再编写的时候,是先调用模块A的页面的方法创建数据,然后再调用模块B页面的方法创建数据,那么如此一来如果A模块,创建的数据执行失败了,那么B用例就失败了,这样的话不仅再写B用例的时候就会先调用很多方法先来创建前置数据,还会影响真正用例失败的位置。

  • 试想过如果每轮测试完毕,都清空所有数据表呢,然后每一个测试用例再进行测试时,都需要调用它需要的数据做前置?现在困惑自己最大的就是这测试用例的耦合以及清理工作了。

  • 我不知道成熟的落地的自动化测试再这方面是如何实现的,希望各位大佬能不惜赐教下!

  • 有条件的公司可以专门来自动化测试环境的
  • 可以进行数据的表操作,但也可以调用删除等接口来操作
  • 依赖这种的话,可以把关联的操作写到一个测试类中,数据清理放到teardown_class里来实现