首页 > 其他分享 >用ChatGPT生成测试数据

用ChatGPT生成测试数据

时间:2023-06-11 11:12:45浏览次数:56  
标签:name phone 测试数据 生成 email address ChatGPT com example

大家好,欢迎来到 Crossin的编程教室 !

在之前的文章 用ChatGPT写一个数据采集程序 中,我们演示了如何用 ChatGPT 辅助编写代码。

除了直接让ChatGPT写代码,我们也可以让它生成一些开发中使用的测试数据。

比如在开发和测试时,常会用到 JSON 格式的数据:

[
  {
    "id": 1,
    "name": "John Smith",
    "age": 28,
    "gender": "male",
    "email": "[email protected]",
    "address": "123 Main Street, City",
    "phone": "123-456-7890"
  },
  {
    "id": 2,
    "name": "Jane Doe",
    "age": 32,
    "gender": "female",
    "email": "[email protected]",
    "address": "456 Oak Avenue, Town",
    "phone": "987-654-3210"
  },
  {
    "id": 3,
    "name": "David Johnson",
    "age": 45,
    "gender": "male",
    "email": "[email protected]",
    "address": "789 Elm Street, Village",
    "phone": "555-123-4567"
  },
  {
    "id": 4,
    "name": "Emily Williams",
    "age": 21,
    "gender": "female",
    "email": "[email protected]",
    "address": "321 Pine Avenue, Town",
    "phone": "777-888-9999"
  }
]

如果对数据内容或结构不满意,可以让ChatGPT做进一步修改,比如增加一个存在重复数据的字段:

[
  {
    "id": 1,
    "name": "John Smith",
    "age": 28,
    "gender": "male",
    "email": "[email protected]",
    "address": "123 Main Street, City",
    "phone": "123-456-7890",
    "occupation": "engineer"
  },
  {
    "id": 2,
    "name": "Jane Doe",
    "age": 32,
    "gender": "female",
    "email": "[email protected]",
    "address": "456 Oak Avenue, Town",
    "phone": "987-654-3210",
    "occupation": "doctor"
  },
  {
    "id": 3,
    "name": "David Johnson",
    "age": 45,
    "gender": "male",
    "email": "[email protected]",
    "address": "789 Elm Street, Village",
    "phone": "555-123-4567",
    "occupation": "teacher"
  },
  {
    "id": 4,
    "name": "Emily Williams",
    "age": 21,
    "gender": "female",
    "email": "[email protected]",
    "address": "321 Pine Avenue, Town",
    "phone": "777-888-9999",
    "occupation": "engineer"
  }
]

数据的格式也可以很方便地调整,比如从JSON换成XML:

<users>
  <user>
    <id>1</id>
    <name>John Smith</name>
    <age>28</age>
    <gender>male</gender>
    <email>[email protected]</email>
    <address>123 Main Street, City</address>
    <phone>123-456-7890</phone>
    <occupation>engineer</occupation>
  </user>
  <user>
    <id>2</id>
    <name>Jane Doe</name>
    <age>32</age>
    <gender>female</gender>
    <email>[email protected]</email>
    <address>456 Oak Avenue, Town</address>
    <phone>987-654-3210</phone>
    <occupation>doctor</occupation>
  </user>
  <user>
    <id>3</id>
    <name>David Johnson</name>
    <age>45</age>
    <gender>male</gender>
    <email>[email protected]</email>
    <address>789 Elm Street, Village</address>
    <phone>555-123-4567</phone>
    <occupation>teacher</occupation>
  </user>
  <user>
    <id>4</id>
    <name>Emily Williams</name>
    <age>21</age>
    <gender>female</gender>
    <email>[email protected]</email>
    <address>321 Pine Avenue, Town</address>
    <phone>777-888-9999</phone>
    <occupation>engineer</occupation>
  </user>
</users>

有同学要说了,可以用 faker 模块来生成哎!

是的,但那样毕竟也要自己动手写代码,还可能时不时要调整。现在有ChatGPT的辅助,可以秒出数据,岂不是更轻松?

当然你也可以将二者结合,比如这样:

import random
from faker import Faker
import json

faker = Faker()

def generate_user_data(num_users):
    users = []
    for _ in range(num_users):
        user = {
            "id": faker.random_number(digits=4),
            "name": faker.name(),
            "age": random.randint(18, 60),
            "gender": random.choice(["male", "female"]),
            "email": faker.email(),
            "address": faker.address(),
            "phone": faker.phone_number()
        }
        users.append(user)
    return users

num_users = 4
user_data = generate_user_data(num_users)

json_data = json.dumps(user_data, indent=4)
print(json_data)

以往在开发中,如果需要类似的测试数据,手动编写是非常耗时和低效的。现在,类似的很多编程辅助工作都可交由ChatGPT来处理,从而让开发者把时间花在更重要的事情之上。


以上内容节选自Crossin的新书《码上行动:零基础学会PYTHON编程(CHATGPT版)》。


本书力求做到浅显易懂,让完全没有编程经验的零基础“小白”也能学会Python。内容从环境搭建这种最基础的步骤开始讲起,逐渐深入到常见的实际应用当中。在讲解知识点的同时配有相应的代码示例,让读者可以边学边练加深理解。

全书涵盖Python环境搭建、基础语法、常见数据类型、实用模块、正则表达式、面向对象编程、多任务编程等知识点。另外还提供了爬虫、GUI、游戏三个实战项目。

书中还创新地使用 ChatGPT 作为编程学习的辅助,带领读者探索AI时代下学习编程的新模式。

>>> 京东618活动中,现在购买可享5折优惠

公众号的读者朋友们购买后可在后台联系我,加入读者交流群,Crossin会为你开启陪读模式,解答你在阅读本书时的一切疑问。

感谢转发点赞的各位~

标签:name,phone,测试数据,生成,email,address,ChatGPT,com,example
From: https://www.cnblogs.com/crossin/p/17472648.html

相关文章

  • AI挑战高考作文-实测ChatGPT、Bing、文心一言
    大家好,我是木头左。这两天高考逐渐落下了帷幕,对于普通人来说,高考仍然是为数不多的,可以改变命运的机会。想起自己的高考,已经是好多年前,那时候一个人去市里面参加考试,第一次睡在不熟悉的床上,痒了一晚上,实在是小姐身子丫鬟命。当时觉得考试很苦,在想若干年后应该不用考试了,现在看来,由于......
  • 一款能“干掉” ChatGPT 的应用「GitHub 热点速览」
    据说有了它,ChatGPT就可以靠边站了。因为Auto-GPT能更加主动地完成你给他的指定任务,不用做更多的人为干涉,它的推理能力比ChatGPT更强,有人用它解放双手做了个React网站。当然除了升级的Auto-GPT之外,还有DeepSpeed,它能极大地降低训练成本。这两个项目可是本周的明星项目,一个......
  • 超详细!手把手教你用 JaCoCo 生成单测覆盖率报告!
    我们都知道Spock是一个单测框架,其特点是语法简明。但当我们使用Spock写了一堆单元测试之后,如何生成对应的单测覆盖率报告呢?一般来说,我们会使用两个插件来一起完成单测覆盖率报告的生成,分别是:MavenSurefirePluginJaCoCoPlugin其中MavenSurefirePlugin是用来在Maven的编......
  • 05河北宏志大学学生成绩管理系统
    2021级《软件工程》开发技能测试试卷(180分钟) 河北宏志大学学生成绩管理系统(卷面成绩40分) 河北宏志大学学生成绩管理系统2023.6.101、项目需求:学生管理是各大院校的管理工作中尤为重视的一项工作,它一直以来是学校管理的一项重要的衡量指标。学生管理系统的应用解决了学......
  • 文心一言 VS 讯飞星火 VS chatgpt (37)-- 算法导论5.4 1题
    一、一个屋子里必须要有多少人,才能让某人和你生日相同的概率至少为1/2?必须要有多少人,才能让至少两个人生日为7月4日的概率大于1/2?文心一言:一个屋子里必须要有多少人,才能让某人和你生日相同的概率至少为1/2?答案:23人。证明:假设有n个人,生日都在一年365天当中,则某人和你的生日相......
  • 文心一言 VS 讯飞星火 VS chatgpt (37)-- 算法导论5.4 1题
    一、一个屋子里必须要有多少人,才能让某人和你生日相同的概率至少为1/2?必须要有多少人,才能让至少两个人生日为7月4日的概率大于1/2?文心一言:一个屋子里必须要有多少人,才能让某人和你生日相同的概率至少为1/2?答案:23人。证明:假设有n个人,生日都在一年365天当中,则某人和你的......
  • ChatGPT时代原来大佬们最关心的是这些事情
    ChatGPT时代原来大佬们最关心的是这些事情前言随着人工智能技术的发展,聊天机器人越来越智能,越来越能够与人类进行自然的对话。其中,基于GPT模型的ChatGPT是一个非常先进的聊天机器人,它可以根据用户的输入生成流畅、有趣、有逻辑的回复,甚至可以创作诗歌、故事、代码等内容。ChatGPT......
  • drf之自动生成路由
    自动生成路由的前提是必须继承了ViewSetMixin及其子类的视图类,才能用一路由映射eg:path('books/',BookView.as_view({'get':'list','post':'create'})),path('books/<int:pk>/',BookView.as_view({'get':'r......
  • 迭代器与生成器
    迭代器迭代器可以记住元素的位置只会往前不能往后可以用iter()创建迭代器对象用next()打印出来,可以看到第一个next()的值只会打印第一个可以用for循环遍历出来,for循环是一个特殊的迭代器list1=[1,2,3,4]#创建迭代器对象a=iter(list1)print(next(a))print(ne......
  • Python+matplotlib绘制多门课程学生成绩分布饼状图
    封面图片:《Python程序设计实验指导书》,董付国,清华大学出版社=================饼状图比较适合展示一个总体中各个类别所占的比例,例如商场年度营业额中各类商品、不同员工的占比,家庭年度开销中不同类别的占比等。扩展库matplotlib.pyplot中的pie()函数可以用来绘制饼状图,语法如下:pie......