问答 用 docker 搭建测试环境,想用 mysql 实现测试数据和 case 分离,应该怎么做?

朝如青丝暮成雪 · April 24, 2019 · Last by Pactortester replied at May 27, 2019 · 1719 hits

目前的状况:
公司目前测试环境使用的是 线上环境 的数据,想搭建一套新的测试环境,不使用线上环境数据,隔离测试环境和线上环境。

目前线上环境已经存在大量的数据了,目前不打算把数据全部复制到测试环境。

想到的解决办法是:复制线上环境数据的表结构,写入之前测试环境(之前的测试环境的数据都来自于线上)的数据,改变之前测试用例的地址,让其指向新的地址,这样就可以使之前的测试用例在新的环境跑通。

遇到的问题:
1、写入数据,用的是写死的方式,测试人员找出数据,一条一条写进 mysql,构成测试环境的数据,恢复环境的时候,重新导入表结构,运行代码重新写入数据。问有没有其他方式?各位的测试基础数据都是如何产生的?没有这方面的经验,还希望指点一二。
2、大家在建立测试环境的时候,测试数据这块是如何操作的?我看到有的是使用测试用例和数据分离的方式,如果要做测试用例和数据分离,该如何做?谢谢大家。

共收到 6 条回复 时间 点赞

mysqldump 了解一下。可以把线上的数据库结构 dump 到本地然后灌到 docker 里边的测试库中。

这个要结合业务看。

1、如果数据不复杂,写死可以满足,可以直接用你说的方法。简单高效。
2、常说的数据与用例分离,数据指的是用例中的数据 (如接口测试中的 request、response),不是被测系统中的数据。如果用 java 可以了解下 testng 的 dataprovider

kukaka 回复

谢谢,是用的这个模式,但是软件用的是 flyway,把线上的数据库结构 dump 到本地然后灌到 docker 里边的测试库

陈恒捷 回复

谢谢,明白了,看来还是要自己在测试环境 mysql 建立一些数据,测试的数据用 dataprovider 的形式

我也很纠结基础数据问题,不知道你后面有没有新的方案,解决基础数据问题,我是想实现数据库的数据我们自己动态生成,然后这样就不用担心数据问题了,但是这种的还没有摸清如何设计,初期有个想法就是每个 case 前都增加一个初始化,特别是增删改查这种的 case,

还有做接口自动化 请求数据 存到哪合适?数据库吗?

7Floor has deleted
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up