自动化测试如何准备测试数据

article/2025/10/14 12:27:13

  事实上,大多数类型的测试都需要准备测试数据。

  手动测试:需要准备一些基础数据,比如配置数据等;

  · 自动化测试:基础需要准备,已有数据,动态运行时产生的数据需要准备;

  · 性能测试:类似于自动化测试。

  这里有一些与数据相关的概念。

  测试数据分类

  我们可以将测试数据分为几类:

  · 基础数据,例如一些内容管理系统会配置站点标题、友情链接等基础配置数据;

  · 库存数据,即现有数据。 比如在测试一些电商网站时,会提前插入一些商品信息、品类信息、物流信息等;

  · 动态数据,也称为会话数据。 例如,在测试某电商网站的产品发布功能时,经常会创建一些新产品。

  我们可以想象,基本数据可以很容易地与生产环境保持一致。 测试环境的存量数据会比线上环境少,测试环境的动态数据可能不如线上环境真实。

  这里需要讨论测试数据的量级和真实性。

  

  ​

  添加图片注释,不超过 140 字(可选)

  测试数据的大小

  大多数情况下,测试数据的量级不如生产环境多。 所以测试数据可以是真实数据的子集。

  如果有生产环境或者预发布环境,可以尽量保持与线上数据的数量级可比。 这样就可以在预发布环境中测量一些在测试环境中不易测量的数据量带来的问题。

  测试数据的真实性

  我们测试环境的数据往往与真实用户生成的数据不同。 比如我们在测试论坛系统的时候,可能往往帖子里的贴图很少,大小刚刚好,而网上用户的贴图可能五花八门,导致出乎意料的问题。

  如何准备基本数据和库存数据

  基础数据和库存数据与线上环境越一致,在测试中发现问题的概率就越高。 一般来说,可以使用以下策略:

  · 全脱敏策略。 直接定期对在线数据进行脱敏,导入测试环境。 脱敏在这里是必须的,而且数据泄露引起的问题的严重性往往比普通的在线bug严重得多。

  · 定量脱敏策略。 只上传一些线上数据,比如只拉1000个产品和1000个用户信息在线,然后做脱敏。 这里的技术实现难度会比较高,毕竟关联表要理顺。

  · 爬虫策略。 如果是新项目/产品,网上没有现有数据可以导入,可以找朋友爬取一些数据,引导到测试环境进行测试。 比如做旅游网站,一开始没有用户的游记。 这时候就需要爬取一个类似的站点进行测试。

  · 生成动态数据。 如果网上没有数据,朋友和商家不怕,那就需要人肉或者自动化的方法来生成一些数据。 如果系统简单,可以使用sql运行。 如果比较复杂,可能需要调用接口或者自动生成。 实在没办法的时候,也可以手动创建一些数据。

  关于动态数据

  大家在做自动化或者接口测试之后,经常会产生大量的动态数据。 然后问题来了。

  这些数据存在于哪里? 这是什么意思? 如果我们需要以自动化的方式创建产品,产品信息和图片地址应该放在哪里? 事实上,这是一个长期存在的问题。

  · 放入文件中。 有多种文件格式可供选择,例如xml/csv/json/yaml等,但不推荐使用excel。 毕竟是私有格式,扩展性不强。 而且一旦升级了excel,你的解析代码和库也可能需要改变。 好吧,强烈不推荐。

  · 放入数据库。 爬取一些产品信息并存入数据库,然后读取数据库也是一个不错的方法。 也可以熟悉一下面试中经常被问到的sql的用法。 另外,可以使用数据库的事务机制来清理测试数据。

  · 在代码中动态生成。 如动态随机生成用户姓名、性别、年龄等信息。

  · 数据生成后,存在清洗问题。 清洗问题其实是数据生命周期的问题。 测试数据应具有以下生命周期。

  · 短期数据。 用例完成后删除的数据。 一般来说,在线性能测试的数据都是这样的短期数据。

  · 长期数据。 可以将用例中的数据放在那里,而且它可以一直存在。 过多的此类数据有时会影响测试环境的性能

  自动化测试运行的数据建议使用短期数据,尽量清零,因为自动化测试的频率其实可以很高,而且如果每次产生一堆数据,量级 的数据可能在短期内变得非常大。 测试环境的性能会受到影响。

  以上部分观点是个人观点,平淡粗暴,肯定有很多不成熟的地方。 欢迎您纠正它们。

 


http://chatgpt.dhexx.cn/article/qKXZHZYG.shtml

相关文章

自动化测试实施流程

在上篇文章中,我们已经介绍过Selenium的一些基础知识,以及是否能够开展自动化测试的情形,在这篇文章中,我们将主要介绍自动化测试的实施流程。 1、自动化测试流程图 2、主要过程描述 2.1、自动化测试的切入点 开展自动化测试的…

自动化测试之获取mysql中的数据

各位小伙伴们,大家好,今天给大家带来的是关自动化测试之获取mysql数据库中的数据方面的干货,技术含金量超高,有测开方面发展的小伙伴可以好好看看。 实施自动化获取mysql数据库中的数据的前提知识有: 1. 精通软件测试…

性能自动化测试整体流程

目录 1. 性能环境搭建介绍 1.1 配置Jenkins 1.2 配置Maven, JDK 1.3 安装Jenkins插件 1.4 Jenkins角色权限管理 1.5 Jenkins配置发送邮件 1.6 配置JMeter 1.7 安装和配置Tomcat 2. 分布式接口压测的Job设置 2.1 Jenkins上配置Job 2.2 配置JMeter分布式压测环境 2.3…

自动化测试(一)

利用测试自动化工具,更轻松地编写测试套件,减轻人为干预并提高测试ROI回报率。 业务关键测试用例,重复测试用例,功能测试用例 web自动化测试工具 : QTP一个商业化的功能测试工具,收费,支持web…

自动化测试-使用python控制MYSQL数据库(pymysql)

当需要对大量的数据进行处理并写入/读取数据库时,直接使用Linux显然会显得力不从心,即使是图形化的Navicat Premium在处理大批量数据时也难以招架,只能通过SQL语句结合导入导出来实现一些事情,本文分享使用python语言中的pymysql包…

自动化测试基本流程

下图是自动化测试的基本流程图,以及每个阶段的任务负责人,输出等。 1、制定测试计划 在展开自动化测试之前,最好做个测试计划,明确测试对象、测试目的、测试的项目内容、测试的方法、测试的进度要求,并确保测试所需的…

最完整的自动化测试流程

今天笔者就要归纳总结下一整套测试流程,从无到有,实现零突破,包括如何编写测试用例,定时执行测试用例,查找最新生成的测试报告文件,自动发送最新测试报告邮件,一整套完整的测试流程。以后各位只…

图解《字典学习》

PPT&代码链接 csdn:https://download.csdn.net/download/u012037852/10899017 github:https://github.com/longfeizhou2016/Dictionary-learning

python学习 字典

22-9-15 1.格式:大括号{} eg: 2.创建字典: 6种常用方法: 3.增: 1.formkeys: eg: 2: 用此种方法,若键值存在,则修改其value,若不存在,则新…

[转]字典学习/稀疏编码

本文转自https://zhuanlan.zhihu.com/p/26015351 机器学习——字典学习/稀疏编码学习笔记 Esquirrel 2 个月前 以下资料是小编学习字典学习/稀疏编码时,整理的高质量的网络博客,供大家参考。欢迎留言交流,批评指正理解不足。 最Highlight的地…

【零散知识】字典学习(Dictionary Learning)

前言: { 之前的神经网络实践还卡在硬件上,不过目前已经打算先使用云设备,下次应该就会继续进行多目标识别的调试。这次就先写一点零散知识。 在专利[1]中我遇到了新的观点——字典学习(Dictionary Learning)。 } 正…

Python-字典学习

这次主要学习了字典学习的相关知识以及选择分支结构,根据课程编写了下图一些代码:

Python中的字典学习笔记

字典的格式:{"key":"value"} key表示数据的含义,value表示对应的数据的值字典是一种可变的数据类型,从python3.7开始,字典是有序的。 字典创建的方式 1、通过{},要使用key:value的格式&#xff0c…

『ML笔记』字典学习3(Dictionary Learning,KSVD)

文章目录 一、字典学习数学模型1.1、数学描述1.2、求解问题1.3、字典学习算法实现 字典学习也是一种数据降维的方法,这里我用到SVD的知识,对SVD不太理解的地方,可以看看这篇博客: 奇异值分解SVD 一、字典学习数学模型 字典学习的…

字典学习日记

字典的创建 在定义字典时,每个元素都包含了两部分:键(key)和值(value),并且在“键”和“值”之间使用英文冒号分隔,相邻两个元素使用英文逗号分离,所有的元素都放…

Dictionary Learning(字典学习、稀疏表示以及其他)

第一部分 字典学习以及稀疏表示的概要 字典学习(Dictionary Learning)和稀疏表示(Sparse Representation)在学术界的正式称谓应该是 稀疏字典学习(Sparse Dictionary Learning)。该算法理论包含两个阶段&am…

字典的学习笔记

列表 [] 单身什么是字典 {} 二人世界 python内置的数据结构之一,与列表一样是一个可变序列(可以增删改操作的) 以键值对的方式存储数据,字典是一个无序的序列 -> hash(key) 通过哈希函数来计算存储位置,key一定是不可变的字典的创建 使用花…

python学习之字典

目录 一、字典格式 二、操作 1、添加元素 2、修改value值 3、删除 4、遍历和查询 5、合并字典 三、小结 一、字典格式 特点:是以键值对的形式存储 结构:{键1:值,键2:值,键3:值} 字典…

『ML笔记』深入浅出字典学习1(Dictionary Learning)

目录 一、预备知识 二、字典学习以及稀疏表示的概要 2.1、我们为什么需要字典学习? 2.2、我们为什么需要稀疏表示? 三、下一节 参考文献 一、预备知识 稀疏向量:假设向量中的元素绝大部分为零元素,则称该向量是稀疏的。 …

机器学习(十三)k-svd字典学习

k-svd字典学习 原文地址:http://blog.csdn.net/hjimce/article/details/50810129 作者:hjimce 一、字典学习 字典学习也可简单称之为稀疏编码,字典学习偏向于学习字典D。从矩阵分解角度,看字典学习过程:给定样本数据集Y&…