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

2390 篇文章 33 订阅
1301 篇文章 7 订阅

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

本文将介绍什么情况下需要生成测试数据,常用的测试数据生成工具有哪些?以及如何结合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):  # 从1100生成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.你还有哪些测试数据生成的小技巧或是工具推荐?

最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取 【保证100%免费】

在这里插入图片描述

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值