项目测试数据预埋实例

1、背景介绍

项目开发初期,开发完成了功能代码编写,测试要想验证这些功能正确性,需要操作功能。其中需要创建数据,验证数据,打开页面,执行业务流程等。本次实例就是为了解决一种情况,当测试初期,功能代码没有足够的业务数据,且包含无法通过开发的产品,创建业务数据的情况,该如何创建数据,执行测试。以保证测试覆盖范围足够宽广。

2、实例简介

本次以XXX系统为例,XXX系统开发完成后,在数据上有以下阻碍。1、无使用用户(C端账户)数据,通过业务后台创建的学生数据,字段不完整,某些字段数据展示在页面上是空的,有些业务相关数据只有表,无账户相关的关联数据。数据预埋的目的就是创建可用的数据,并满足数据结构、字段完整,数据量、数据类型足够丰富。比满足有更全面的测试数据,更便捷的数据创建方案。

3、全局说明

创建此类数据,需要满足具备一定的测试架构思维;满足对业务系统的运作模式、数据模型十分熟悉;可以熟练通过API请求接口;熟练掌握sq的使用和语句编写;对测试工具或python等熟练掌握;有较清楚的逻辑能力和思维能力。

4.1、创建学生账户事例

当前已经有可以创建账户的功能,为了更贴切的账户,我们尽量用api创建。通过实际操作后,获取api的请求信息和依赖关系,此处需要注意的事,创建账户需要依赖登陆,所以先执行登陆,关联依赖关系

java数据埋点设计方案_java数据埋点设计方案

4.2、创建学生账户参数化

由于创建的账户,登录名必须不同,所以需要每执行一次后更换,所以使用参数化,为了更有效,我们将属性字段尽可能都去参数化,如,姓名、密码、性别、部门、角色等。部门、角色等需要数据库主键,所以要创建方法返回主键

java数据埋点设计方案_数据库_02

4.3、姓名等字段

可以使用faker方法,随机创建姓名,性别字段,可以创建范围,随机性别

java数据埋点设计方案_大数据_03

4.4、通过循环创建学生

方法创建完成后,相互关联既可通过api创建批量学生

java数据埋点设计方案_python_04

5.1、创建业务数据

除了添加账户,离校系统还有一些账户属性,在实际业务中,需要使用这些属性来完成,首先,我们先找到,并解析这些业务表。实现,业务表字段含义,业务表如何和用户表关联。然后创建方法,实现创建业务表数据

java数据埋点设计方案_mysql_05

5.2、业务表和用户关联

创建业务表方法完成后,需要关联到用户上,实现 :创建完成用户后,创建其相关的业务信息表,只需要在创建用户的循环下,执行穿件业务表的方法。

java数据埋点设计方案_java数据埋点设计方案_06

5.3、逻辑型数据插入

以上是用户数据和业务表一对一关系的创建方法,在离校系统中,或者实际项目使用中,存在混合比例的情况。比如,一个学生有所在宿舍和宿舍床位号字段,四个学生在一个宿舍,表设计上,有用户表、宿舍楼信息表、宿舍信息关联用户表,其中一个宿舍信息关联4个学生。此时我们需要创建符合以上模型的数据关系。解析逻辑如下:
~~循环创建用户:
~~~~循环创建宿舍:
~~~~~~符合4的整除,创建数据,创建关联;
~~~~~~不符合4的整数,创建关联;
~~~~异常情况处理;

以上逻辑分析即可完成上述数据模型,首先创建宿舍楼方法、穿件关联关系方法

java数据埋点设计方案_mysql_07

5.4、

完成方法的封装后,在创建用户下执行上述分析的逻辑

java数据埋点设计方案_大数据_08

6、总结

以上结构属于分支模块划分,总揽整理下,逻辑分布如图

java数据埋点设计方案_大数据_09

7、加入测试框架

若是模块化方式的话,可以引用在单元测试架构里面去

java数据埋点设计方案_python_10