生成你想要的测试数据,除了用这6款工具,还能用AI
测试界的飘柔 2024-09-17 12:01:02 阅读 51
在软件测试中,测试数据是测试用例的基础,对测试结果的准确性和全面性有着至关重要的影响。因此,在进行软件测试时,需要生成测试数据以满足测试场景和要求。
本文将介绍什么情况下需要生成测试数据,常用的测试数据生成工具有哪些?以及如何结合AI自己开发生成测试数据的工具等,希望对你有所启发!
01 什么情况下需要生成测试数据?
以下是我整理的4种需要生成测试数据的场景:
1) 测试用例设计
在测试用例设计过程中,需要根据测试场景和需求生成测试数据,以保证测试用例的全面性和可靠性。
2) 数据库测试
在进行数据库测试时,需要准备数据库中的数据,以进行数据库操作的测试。
3) 性能测试
在进行性能测试时,需要生成大量的测试数据,以测试系统的性能和稳定性。
4) 安全测试
在进行安全测试时,需要生成恶意数据和攻击数据,以测试系统的安全性和防御能力。
02 6款常用的测试数据生成工具
今天给大家介绍6款常用的数据生成工具:Faker、Mockaroo、DataFactory、Jenerators、katalon Studio、BlazeMeter。
Faker
1)官网地址:
<code>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)官网地址:
<code>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程序如下:
<code>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.你还有哪些测试数据生成的小技巧或是工具推荐?
最后: 下方这份完整的软件测试视频教程已经整理上传完成,需要的朋友们可以自行领取 【保证100%免费】
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。