生成你想要的测试数据,除了用这6款工具,还能用AI

news2025/4/22 23:24:51

在软件测试中,测试数据是测试用例的基础,对测试结果的准确性和全面性有着至关重要的影响。因此,在进行软件测试时,需要生成测试数据以满足测试场景和要求。

本文将介绍什么情况下需要生成测试数据,常用的测试数据生成工具有哪些?以及如何结合AI自己开发生成测试数据的工具等,希望对你有所启发!

01 什么情况下需要生成测试数据?

以下是我整理的4种需要生成测试数据的场景:

1) 测试用例设计

在测试用例设计过程中,需要根据测试场景和需求生成测试数据,以保证测试用例的全面性和可靠性。

2) 数据库测试

在进行数据库测试时,需要准备数据库中的数据,以进行数据库操作的测试。

3) 性能测试

在进行性能测试时,需要生成大量的测试数据,以测试系统的性能和稳定性。

4) 安全测试

在进行安全测试时,需要生成恶意数据和攻击数据,以测试系统的安全性和防御能力。

02 6款常用的测试数据生成工具

今天给大家介绍6款常用的数据生成工具:Faker、Mockaroo、DataFactory、Jenerators、katalon Studio、BlazeMeter。

Faker

1)官网地址:

https://faker.readthedocs.io/en/master/

2)简介:

Faker是一个功能强大、简便易用的测试数据生成工具。Faker可以生成各种类型的随机数据,包括姓名、地址、电子邮件、电话号码、日期、文本、图像、数字等。

3)优缺点:

优点:易于使用、可定制、支持多种语言。

缺点:生成的数据是随机的,可能不符合特定的业务规则。

4)示例:

from faker import Faker

fake = Faker()

name = fake.name()
address = fake.address()
email = fake.email()
phone_number = fake.phone_number()

Mockaroo

1)官网地址:

https://www.mockaroo.com/

2)简介:

Mockaroo是一个在线服务,提供了可视化界面和丰富的数据生成选项。用于生成自定义的随机数据集。它提供了各种数据类型和选项,可以生成包括文本、数字、日期、图像等在内的各种数据。

3)优缺点:

优点:可定制性强、提供多种数据类型和选项、支持导出数据为多种格式。

缺点:需要访问Mockaroo网站进行数据生成。

4)示例:通过在Mockaroo网站上设置字段和数据类型,然后下载生成的数据集。

在这里插入图片描述

DataFactory

1)官网地址:

https://pypi.org/project/datafactory/

2)简介:

DataFactory是一个专门用于生成随机数据的Python库,可以帮助在不同数据源之间进行数据移动、转换和处理,以支持数据分析、业务流程和决策制定等任务。提供了多种数据类型和生成方法,用于生成各种随机数据,包括姓名、地址、电子邮件、电话号码等等。

3)优缺点:

优点:易于使用、可定制、支持多种数据类型。

缺点:生成的数据是随机的,可能不符合特定的业务规则。

4)示例:

from datafactory import DataFactory

factory = DataFactory()

name = factory.name()
address = factory.address()
email = factory.email()
phone_number = factory.phone_number()

Jenerators

1)官网地址:

https://jenerators.dev/

2)简介:

Jenerators是一个专门用于生成随机数据的Java库,提供了多种数据类型和生成方法。Jenerators是一个Java库,用于生成随机数据。它提供了多种数据类型和生成方法,可以生成包括姓名、地址、电子邮件、电话号码等在内的各种数据。

3)优缺点:

优点:易于使用、可定制、支持多种数据类型。

缺点:生成的数据是随机的,可能不符合特定的业务规则。

4)示例:

import dev.jenerators.RandomGenerator;
import dev.jenerators.StringGenerator;

RandomGenerator<String> nameGenerator = StringGenerator.alphaNumeric(10);
String name = nameGenerator.generate();

Katalon Studio

1)官网地址:

http://katalon.com.cn/

2)简介:

Katalon Studio 是一款在网页应用、移动和网页服务方面功能强大的自动化测试解决方案。基于 Selenium 和 Appium框架,Katalon Studio集成了这些框架在软件自动化方面的优点。这个工具支持不同层次的测试技能集。非程序员也可以快速上手一个自动化测试项目,同时也节省了程序员和高级测试人员构建新库和维护脚本的时间。

3)特点:

1.傻瓜式操作,且完全免费;

2.基于 Selenium 和 Appium 封装的工具,同步支持界面手动编码;

3.支持 Java 和 groovy 语言;

4.不仅支持 Web ui 自动化,还支持 APP 自动化和接口自动化;

5.支持录制功能,支持页面元素可视化查找和捕捉;

6.支持 CI/CD,即可集成 jenkins,Git,JIRA 等;

7.支持测试用例,测试数据管理;

8.提供丰富的关键字,用户无需编程基础

BlazeMeter

1)官网地址:

https://www.blazemeter.com/

2)简介:

BlazeMeter是行业领先的持续测试平台,它的增强版基于人工智能(AI)实现,是一个非常强大的测试数据生成工具;

3)特点:

1.AI驱动的数据分析器 - 快速识别硬编码数据并自动从预定义列表生成额外数据。

2.AI驱动的测试数据创建器 - 通过生成式AI将文本转换为测试数据函数,简化测试数据生成。

3.AI-Assisted Test Data Function Generator - 使用自然语言即时生成测试数据函数,消除手动编码。

4.混沌测试 - AI驱动的测试数据挑战系统,识别系统漏洞,以增强系统弹性。

从上面推荐的工具中,我们不难看出测试数据生成工具也趋向基于AI实现,那我们可以借助AI自动生成一款满足自己个性化需求的数据生成工具吗?看看下面的思路!

03 如何借助AI生成测试数据工具?

以下是某用户用大模型Kimi生成测试数据工具的实际记录,希望对你有所启发感兴趣的同学可进一步实践研究;

明确目的

首先,开始动手前,想清楚要开发解决什么问题的工具自动生成100条满足条件的学生信息,供某软件功能测试时使用,节省手动处理测试数据的时间。

开发步骤

1.条件准备:

1.确定用什么语言编写程序,并准备好程序的运行环境。本例采用Python脚本语言,本机安装了Python3.7作为 运行环境。如果没有安装,可到官网下载安装,版本可下载最新的。

2.选择你用的AI智能助手,此案例,用KimiChat(地址:https://kimi.ai)

3.创建数据源文件,放在D:\temp,叫Classinfo.xlsx (可以换成你的目录与文件名)。

打开Classinfo.xlsx,里面的基础内容如下:

图片

2.提示词准备:

提示词设计如下:

你是一个Python编程专家,需完成一个Python脚本编写任务,具体步骤如下:

1、打开文件:D:\temp\Classinfo.xlsx

2、读取第2行信息,并以此为样例,按以下规则随机生成学生数据信息,规则如下:

1)学号用"NS"开头,按数字0001为第1个学号顺序填写在A列

2)姓名循环采用“李”,“张”,“刘”,“王”,“黄”,“肖”,“姚”,背后再加随机数字,生成后,填写在B列

3)语文、数学及英语的成绩大于0分,小于100分,随机生成后,分别填写在C列,D列,E列

4)每生成一条记录,算出学生的总分及平均分,分别填写在F列,G列

5)共生成100个学生的信息。

注意:脚本程序需要在python3.7环境下运行

我们需要注意,python程序运行的环境,因为不同版本的python存在兼容性问题,而AI 写的脚本程序并不一定在你的环境下可正确运行。所以,在提示词设计时,要明确出来(此处,我踩坑了,是后面才加上去的)

3.AI生成脚本程序

把提示词输入kimi对话框,输出的python程序如下:

import openpyxl
import random
from openpyxl.utils import get_column_letter


# 定义文件路径
file_path = 'D:\\temp\\Classinfo.xlsx'


# 打开现有的Excel工作簿和工作表
try:
    wb = openpyxl.load_workbook(file_path)
    ws = wb.active
except FileNotFoundError:
    print(f"File {file_path} not found.")
    exit()


# 读取第2行样例信息
sample_row = 2
sample_data = [cell.value for cell in ws[1]]


# 定义姓氏列表
surnames = ["李", "张", "刘", "王", "黄", "肖", "姚"]


# 随机生成学生数据
for i in range(1, 101):  # 从1到100生成100个学生信息
    # 学号
    student_id = f"NS{str(i).zfill(4)}"
    # 姓名
    surname = random.choice(surnames)
    name = f"{surname}{random.randint(0, 9)}"
    # 语文、数学、英语成绩
    scores = [random.randint(1, 100) for _ in range(3)]
    total_score = sum(scores)
    average_score = total_score / len(scores)

    # 插入数据到工作表中
    new_row = [student_id, name] + scores + [total_score, average_score]
    ws.append(new_row)

    # 输出执行信息
    print(f"Generated data for student {i}: {student_id}, {name}, Scores: {scores}, Total: {total_score}, Average: {average_score}")


# 保存工作簿
wb.save(file_path)
print("Data generation and file saving completed.")

4.运行程序;

把脚本程序复制到文本文件中,保存为Createstudentinfo.py,并执行,详细结果大家可亲自实践下哈;

5.检查生成的结果;

那么,看完上述的工具及工具实现介绍:

讨论1.相比现有的数据生成工具,你会像文中那样用AI一键生成想要的工具吗?为什么?

讨论2.你在工作中哪些场景需要用到大批量的测试数据,通常是用什么方式实现的?

讨论3.你还有哪些测试数据生成的小技巧或是工具推荐?

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:【文末小卡片领取】

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

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

相关文章

路径规划与轨迹跟踪系列算法学习 MATLAB 模型预测控制MPC

下面这张图的程序 019 路径规划与轨迹跟踪是自动驾驶汽车、无人机以及其他自动化系统中的关键技术之一。MATLAB 提供了丰富的工具箱来实现这些功能&#xff0c;其中模型预测控制&#xff08;Model Predictive Control, MPC&#xff09;是一种广泛使用的路径跟踪控制方法。下面是…

快速搭建最简单的前端项目vue+View UI Plus

1 引言 ‌‌Vue是一套用于构建Web前端界面的渐进式JavaScript框架。‌‌它以其易学易用、性能出色、灵活多变而深受开发者喜爱&#xff0c;并且与其他前端框架&#xff08;如‌React和‌Angular&#xff09;相比&#xff0c;在国内市场上受到了广泛的认可和使用。点击进入官方…

【线程池】Java 线程池 ThreadPoolExecutor 类源码介绍

文章目录 前言线程池是什么线程池解决了哪些问题本文主要讲述什么感谢读者 线程池 UML 类图ThreadPoolExecutor 内部设计核心参数内部类任务队列拒绝策略 ThreadPoolExecutor 源码线程池生命周期线程池构造函数execute() 【提交任务】addWorker() 方法 【添加工作线程并启动】了…

【微服务】⭐️华为云obs功能抽取到公共服务,供所有项目使用

目录 &#x1f378;前言 &#x1f37b;一、公共服务搭建 &#x1f37a;二、代码实现 1.工具类编写 2.项目引入使用 &#x1f379;三、章末 &#x1f378;前言 小伙伴们大家好&#xff0c;上次讲了如何本地对接华为云Obs对象存储服务&#xff0c;在本地项目中通过sdk引入调用…

【QT】常用控件-下

欢迎来到Cefler的博客&#x1f601; &#x1f54c;博客主页&#xff1a;折纸花满衣 &#x1f3e0;个人专栏&#xff1a;QT 目录 &#x1f449;&#x1f3fb;QComboBox&#x1f449;&#x1f3fb; QSpinBox&#x1f449;&#x1f3fb;QDateTimeEdit&#x1f449;&#x1f3fb;QD…

时序预测 | MATLAB实现BKA-XGBoost(黑翅鸢优化算法优化极限梯度提升树)时间序列预测

时序预测 | MATLAB实现BKA-XGBoost(黑翅鸢优化算法优化极限梯度提升树)时间序列预测 目录 时序预测 | MATLAB实现BKA-XGBoost(黑翅鸢优化算法优化极限梯度提升树)时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 Matlab实现BKA-XGBoost时间序列预测&a…

datasophon升级海豚调度dolphinscheduler为3.2.2

一、参考博主升级3.2.1文章&#xff1a;datasophon升级海豚调度为3.2.1_海豚调度3.2.2 mysql包找不到-CSDN博客 二、升级后woker-server启动报错如下&#xff1a; 原因是worker-server下conf/common.properties中的&#xff1a;resource.storage.typeNONE&#xff0c; 解决很简…

如何划分类/单一职权原则SRP

参考&#xff1a;单一职责 -- 每个类只负责一个功能_每个类应该只负责一个功能,遵循单一职责原则。-CSDN博客 类有且只有一个原因需要修改它&#xff0c;这样的才是一个结构简洁的类。 结合上面的例子&#xff0c;需要注意的点&#xff1a; 1.比如搜索数据库&#xff0c;需要…

Procdump抓ToDesk密码

目录 前言 1.工具教程 2.转储数据 3.密码获取 4.总结 前言 本文是因为在公众号上看到一篇文章随想着实战中利用ToDesk秀操作失败后&#xff0c;实验环境成功复现后写下。ProcDump[1] 是一个命令行实用工具&#xff0c;其主要用途是监视应用程序的 CPU 峰值&#xff0c;并在…

mybatis 查询Not Found TableInfoCache

近期在工程迁移中遇到一个mybatis查询的问题&#xff0c;检查代码没有问题&#xff0c;但是报Not Found TableInfoCache 解决过程 是不是数据库对应表错误或者实体类指定的表名错误 查看配置文件链接的数据源是否正确TableName中指定的表名然后去数据库看一下是否存在 如果…

象过河仓库管理软件,轻松实现无纸化录入,自动化记账

在如今快速发展的商业环境中&#xff0c;仓库管理面临着手工记账效率低下&#xff0c;容易引发数据不准确&#xff0c;滞后&#xff0c;错漏频发&#xff0c;盘点耗时费力等问题。为了解决这些问题&#xff0c;象过河仓库管理软件应运而生&#xff0c;轻松实现无纸化录入&#…

支付环节攻击方式与漏洞类型

支付环节攻击方式与漏洞类型 1.概述2.卡复制3.卡数据破解与篡改4.网络欺骗攻击5.线下欺骗攻击6.支付身份伪造7.支付逻辑绕过8.数据不同步9.支付数据篡改10.条件竞争漏洞&#xff08;并发&#xff09;11.拒绝服务 参考自&#xff1a;https://www.topsec.com.cn/uploads/2023-10-…

希捷,AI时代的存储“破壁者”

喜欢跑步或者经常看马拉松等比赛的读者知道&#xff0c;当选手经过专业训练成绩突飞猛进后&#xff0c;就会有一段时间停滞不前。这个阻碍可能是物理的、心理的或是技术的障碍&#xff0c;只有突破这个“壁垒”&#xff0c;才能成为更好的自己。 对于一家企业来说&#xff0c;…

100.WEB渗透测试-信息收集-网络空间搜索引擎shodan(2)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;99.WEB渗透测试-信息收集-网络空间搜索引擎shodan&#xff08;1&#xff09;-CSDN博客 Sh…

读论文-《基于计算机视觉的工业金属表面缺陷检测综述》

文章目录 1. 背景1.1 工业需求1.2 传统方法的局限1.3 计算机视觉技术的优势 2. 技术流程2.1 光学成像2.1.1照明方式2.1.2 缺陷和背景特性 2.2 图像预处理2.3 缺陷检测2.4 结果分析和决策 3. 关键算法3.1 光学成像技术相关算法3.2 图像预处理相关算法3.2.1 图像增强3.2.2特征提取…

wakenet尾迹

1、数据集介绍SWIM_Dataset_1.0.0 1.1标注文件介绍 标注文件介绍&#xff0c; 第一种&#xff1a;角度和框的坐标 <annotation><folder>Positive</folder><filename>00001</filename>文件名字<format>jpg</format>图片后缀<s…

太速科技-基于XC7Z100+AD9361的双收双发无线电射频板卡

基于XC7Z100AD9361的双收双发无线电射频板卡 一、板卡概述 基于XC7Z100AD9361的双收双发无线电射频板卡是基于Xilinx ZYNQ FPGA和ADI的无线收发芯片AD9361开发的专用功能板卡&#xff0c;用于4G小基站&#xff0c;无线图传&#xff0c;数据收发等领域。 二、板卡…

[产品管理-8]:NPDP新产品开发 - 6 - 商业画布、商业模式、创新模式

目录 一、商业画布&#xff1a;九个核心部件 二、商业模式 三、创新模式 3.1 什么是创新 1、传统与创新模式的对比 2、创新模式的具体类型 3、企业创新模式的分类 4、总结 3.2 创新模式 1. 已知领域 2. 未知领域 一、商业画布&#xff1a;九个核心部件 商业画布&…

【C语言】选择排序及优化、冒泡排序、计数排序的实现

目录 一、选择排序1.1 常规版&#xff08;一次排好一个数&#xff09;1.1.1 基本思想1.1.2 实现思路1.1.3 代码 1.2 优化版&#xff08;一次排好两个数&#xff09;1.2.1 实现思路1.2.2 代码 1.3 时间复杂度 二、冒泡排序2.1 实现思路2.2 代码2.3 时间复杂度 三、计数排序3.1 基…

DroidBot-GPT: GPT-powered UI Automation for Android论文学习

本文介绍了DroidBot GPT&#xff0c;这是一种利用类似GPT的大型语言模型&#xff08;LLM&#xff09;自动化与Android移动应用程序交互的工具。给定所需任务的自然语言描述&#xff0c;DroidBot GPT可以自动生成并执行导航应用程序以完成任务的操作。它的工作原理是将应用程序G…