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

其实大部分类型的测试都需要去准备测试数据。

  • 手工测试:一些基础数据,比如配置数据等等是需要去准备的;
  • 自动化测试:基础需要准备,现有数据,动态运行时产生的数据是需要准备的;
  • 性能测试:跟自动化测试差不多;

这里就牵扯到了一些关于数据的概念了。

【B站最通俗易懂】Python接口自动化测试从入门到精通,超详细的进阶教程,看完这套视频就够了

测试数据的分类

我们可以给测试数据分一些种类

  • 基础数据,比如一些内容管理系统会配置站点的标题,友情链接之类的基础配置数据
  • 存量数据,也就是现有数据。比如在测试一些电商站点的时候会提前插入一些商品信息,类目信息物流信息等
  • 动态数据,也可以叫做session数据。比如在测试电商站点的发布商品功能的时候,往往会去创建一些新的商品

我们可以想象到,基础数据其实可以比较容易的跟生产环境保持一致。测试环境的存量数据会比线上环境要少,测试环境的动态数据可能不会像线上环境那样真实。

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

测试数据的量级

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

如果有类生产环境或预发布环境的话,可以尽量保持跟线上数据相当的量级。这样一些测试环境不好测出来的由于数据量导致的问题可以在预发布环境测出来。

测试数据的真实性

我们测试环境的数据往往跟真实用户产生的数据是有差异的。比如测试论坛系统时,我们在帖子里的贴图可能往往就那么几张,尺寸也是恰到好处,而线上用户的贴图可能是五花八门,从而导致意想不到的问题。

如何准备基础和存量数据

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

  • 全量+脱敏策略。直接定期把线上的数据做脱敏,导入到测试环境。这里脱敏是必选,数据泄漏导致的问题严重程度往往比普通的线上bug要严重得多。
  • 定量+脱敏策略。只上一些线上数据,比如只在线上拉1000个商品,1000个用户信息,然后做脱敏。这里技术实现难度会比较高,毕竟要把关联表理顺。
  • 爬虫策略。如果是新项目/产品的话,线上没有存量数据可以导,那么可能要去友商那里爬一些数据,导到测环境做测试。比如做一个旅游站点,开始的时候是没有用户的游记的,这时候就要去类似站点爬一点来测试了。
  • 生成动态数据。如果线上没有数据,友商也没有的爬,那么就要人肉或者自动化的方式去产生一些数据了。系统简单的话可以用sql去跑,复杂点的话可能要调用接口或者用自动化的方式去生成。实在没辙的时候也可以手动去造一些数据。

关于动态数据

大家在做自动化或者接口测试后往往会大量的去产生动态数据。那么问题就来了。

这些数据存在哪里?什么意思呢?如果我们需要用自动化的方式去创建一个商品,那么商品的信息,图片地址该放在哪里呢?其实这是个持久化的问题了。

  • 放文件里。文件格式有很多可以选的,比如xml/csv/json/yaml等。不过不推荐excel,毕竟是私有格式,没有太强的扩展性。而且excel一升级,你的解析代码和库也可能要跟着改一次,嗯,强烈不推荐了。
  • 放数据库里。爬一些商品的信息存到数据库里,然后读数据库也是很好的办法,还能熟悉一下sql的用法,面试经常问到,另外可以用数据库的事务机制来清理测试数据
  • 在代码里动态生成。比如动态随机生成用户的姓名啊性别和年龄之类的

数据生成之后就面临着一个清理的问题。清理问题实际上数据生命周期的问题,测试数据应该有下面一些生命周期吧

  • 短期数据。用例完了就删掉的数据,一般线上做性能测试的数据都是这样的短期数据
  • 长期数据。用例跑出来的数据放在那里也没事,可以一直存在。这种数据太多有时候会影响测试环境的性能

自动化测试跑出的数据建议做短期数据,跑出来想办法清掉,因为自动化跑的频率其实可以很高,每次都产生一堆数据的话数据的量级可能会在短期变得很大,对测试环境的性能造成影响。

以上的一些看法是个人的浅显的粗鄙的看法,肯定有很多不成熟的地方,欢迎大家斧正。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/6314.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

spring-cloud-starter-gateway 4.0.6负载均衡失败

spring:application:name: gatewaycloud:gateway:routes:- id: memberuri: lb://memberpredicates:- Path/member/**需要引入下面负载均衡依赖否则503找不到服务 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-s…

P1017 [NOIP2000 提高组] 进制转换(负进制)

#这内容数学知识吧&#xff0c;如果不懂还真的做不出来&#xff0c;技巧性不强&#xff0c;就当多学了一个数学知识了~ 百度一波负进制数&#xff1a;和正进制一样&#xff0c;每次取的余数保证在0~m-1之间。&#xff08;例如m-16,则余数应该在0~15&#xff09;就可以直接输出…

英伟达数据中心产品看板

通过chatgpt 生成了tesla 主要产品线产品的参数&#xff1a; ProductRelease YearTensor Core FLOPSCUDA Core FLOPSMemory CapacityInterconnectKey FeaturesTesla K802014N/A8.74 TFLOPS24 GB GDDR5PCIe Gen3 x16Kepler Architecture, Dual-GPUTesla P1002016N/AUp to 10.6 …

Django项目开发快速入门

Django项目开发快速入门 生成Django项目编写module后台管理系统admin自定义管理页面视图函数使用Django模板 生成Django项目 现在cmd中使用命令安装Django框架 pip install django3.2使用命令生成项目 django-admin startproject DjStore使用命令生成应用 python .\manage.…

深入探索Socks5代理与网络安全

简介 Socks5代理是一种网络协议&#xff0c;用于在客户端和服务器之间进行数据传输&#xff0c;它可以在网络层和传输层实现代理功能。与其他代理协议相比&#xff0c;Socks5代理更加灵活和安全&#xff0c;为爬虫任务和网络安全提供了重要支持。 Socks5代理的工作原理 Socks5…

C++OpenCV(3):基础交互(视频与鼠标操作)

&#x1f506; 文章首发于我的个人博客&#xff1a;欢迎大佬们来逛逛 &#x1f506; OpenCV项目地址及源代码&#xff1a;点击这里 文章目录 鼠标交互案例 视频读写交互视频&#xff08;摄像头&#xff09;转图像显示视频转图片并且保存摄像头转图片并保存 滑动条交互滑动条调整…

Redis应用(2)——Redis的项目应用(一):验证码 ---> UUID到雪花ID JMeter高并发测试 下载安装使用

目录 引出Redis的项目应用&#xff08;一&#xff09;&#xff1a;验证码1.整体流程2.雪花ID1&#xff09;UUID&#xff08;Universally Unique Identifier&#xff0c;通用唯一识别码&#xff09;2&#xff09;Twitter 的雪花算法&#xff08;SnowFlake&#xff09; 雪花ID优缺…

HTML <optgroup> 标签

实例 通过 <optgroup> 标签把相关的选项组合在一起: <select><optgroup label="Swedish Cars"><option value ="volvo">Volvo</option><option value ="saab">Saab</option></optgroup><…

【Java】一个简单的接口例子(帮助理解接口+多态)

要求&#xff1a; 请实现笔记本电脑使用USB鼠标、USB键盘的例子 1. USB 接口&#xff1a;包含打开设备、关闭设备功能 2. 笔记本类&#xff1a;包含开机功能、关机功能、使用 USB 设备功能 3. 鼠标类&#xff1a;实现 USB 接口&#xff0c;并具备点击功能 4. 键盘类&am…

磁盘分区形式MBR与GPT介绍

磁盘分区形式MBR与GPT介绍 磁盘分区形式有两种&#xff1a; 1、MBR&#xff08;主启动记录&#xff09;形式&#xff0c;它是存在于磁盘驱动器开始部分的一个特殊的启动扇区&#xff1b; 2、GPT&#xff08;GUID分区表&#xff09;形式&#xff0c;它是一种使用UEFI启动的磁盘…

C#使用Linq和Loop计算集合的平均值、方差【标准差】

方差【标准差】 标准差公式是一种数学公式。标准差也被称为标准偏差&#xff0c;或者实验标准差&#xff0c;公式如下所示&#xff1a; 样本标准差方差的算术平方根ssqrt(((x1-x)^2 (x2-x)^2 ......(xn-x)^2)/n) 总体标准差σsqrt(((x1-x)^2 (x2-x)^2 ......(xn-x)^2)/n ) …

❤️创意网页:抖音汉字鬼抓人小游戏复刻——附带外挂(“鬼鬼定身术”和“鬼鬼消失术”)坚持60秒轻轻松松(●‘◡‘●)

✨博主&#xff1a;命运之光 &#x1f338;专栏&#xff1a;Python星辰秘典 &#x1f433;专栏&#xff1a;web开发&#xff08;简单好用又好看&#xff09; ❤️专栏&#xff1a;Java经典程序设计 ☀️博主的其他文章&#xff1a;点击进入博主的主页 前言&#xff1a;欢迎踏入…

OpenCv之图像形态学

目录 一、形态学 二、图像全局二值化 三、自适应阈值二值化 四、腐蚀操作 五、获取形态学卷积核 六、膨胀操作 七、开运算 八、闭运算 一、形态学 定义: 指一系列处理图像形状特征的图像处理技术形态学的基本思想是利用一种特殊的结构元(本质上就是卷积核)来测量或提取输…

什么是Java的Apache Commons库?

首先&#xff0c;让我们来谈谈字符串处理。你知道吗&#xff0c;有时候我们需要从一段文本中提取出特定的信息&#xff0c;比如提取出一段字符串中的数字。这时候&#xff0c;我们可以使用Apache Commons Lang库中的NumberUtils类。不信&#xff1f;看这里&#xff0c;让我给你…

Flink简介及部署模式

文章目录 1、Flink简介2、Flink部署2.1 本地模式2.1 Standalone模式部署2.2 Standalone模式下的高可用2.3 Yarn模式Yarn模式的高可用配置&#xff1a;yarn模式中三种子模式的区别&#xff1a; 3、并行度4、提交命令执行指定任务Application Mode VS yarn per-job 5、注意事项5、…

4.1 Bootstrap UI 编辑器

文章目录 1. Bootstrap Magic2. BootSwatchr3. Bootstrap Live Editor4. Fancy Boot5. Style Bootstrap6. Lavish7. Bootstrap ThemeRoller8. LayoutIt!9. Pingendo10. Kickstrap11. Bootply12. X-editable13. Jetstrap14. DivShot15. PaintStrap 以下是 15 款最好的 Bootstrap…

Vue--微信和uniapp配置环境地址

一、uniapp 在uni-app中配置小程序的接口地址&#xff0c;可以按照以下步骤进行&#xff1a; 1.在uni-app项目的根目录下创建一个名为 ​config.js​的文件&#xff0c;并确保文件的后缀是 ​.js​。在 ​config.js​文件中定义不同运行环境下的接口地址。例如&#xff1a; …

2023C语言暑假作业day1

1 选择题 1 执行下面程序&#xff0c;正确的输出是 int x5,y7; void swap() { int z; zx; xy; yz; } int main() { int x3,y8; swap(); printf("%d,%d\n"&#xff0c;x, y); return 0; }A: 5,7 B: 7,5 C: 3,8 D: 8,3 答案解析&#xff1a; 正确答案&#xff1a;C…

Linux的tcpdump命令详解

tcpdump 一款sniffer工具&#xff0c;是Linux上的抓包工具&#xff0c;嗅探器 补充说明 tcpdump命令 是一款抓包&#xff0c;嗅探器工具&#xff0c;它可以打印所有经过网络接口的数据包的头信息&#xff0c;也可以使用-w选项将数据包保存到文件中&#xff0c;方便以后分析。…

基于Matlab自抗扰控制器及其PID控制(附上完整源码+数据)

文章目录 说明完整源码数据下载 说明 自抗扰控制器&#xff08;Active Disturbance Rejection Control, ADRC&#xff09;是一种新型的控制策略&#xff0c;它具有强大的抗干扰能力和良好的控制性能。与传统的PID控制器相比&#xff0c;ADRC能够更好地抑制系统的干扰&#xff…