news 2026/6/10 17:35:14

常用的生成测试数据的python脚本,用了都说好

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
常用的生成测试数据的python脚本,用了都说好

生成接口自动化测试数据时,Python提供了丰富的库和工具来帮助我们创建各种类型的数据, 以下是常用的Python脚本示例,用于生成不同类型的测试数据。

一 生成随机字符串

import random import string def generate_random_string(length=10): return ''.join(random.choices(string.ascii_letters + string.digits, k=length)) print(generate_random_string(15))

二 生成随机整数

import random def generate_random_integer(start=1, end=100): return random.randint(start, end) print(generate_random_integer(1, 1000))

三 生成随机日期

from datetime import datetime, timedelta import random def generate_random_date(start_date=None, end_date=None): if start_date is None: start_date = datetime(2000, 1, 1) if end_date is None: end_date = datetime.now() delta = end_date - start_date int_delta = (delta.days * 24 * 60 * 60) + delta.seconds random_second = random.randrange(int_delta) return start_date + timedelta(seconds=random_second) print(generate_random_date().strftime('%Y-%m-%d'))

四 生成随机时间

from datetime import time, timedelta import random def generate_random_time(): hours = random.randint(0, 23) minutes = random.randint(0, 59) seconds = random.randint(0, 59) return time(hours, minutes, seconds) print(generate_random_time().strftime('%H:%M:%S'))

五 生成随机电子邮件地址

import random import string def generate_random_email(): local_part = ''.join(random.choices(string.ascii_letters + string.digits + '_', k=8)) domain = ''.join(random.choices(string.ascii_letters, k=4)) + '.com' return f"{local_part}@{domain}" print(generate_random_email())

六 生成随机IP地址

import random def generate_random_ip(): return '.'.join(map(str, (random.randint(0, 255) for _ in range(4)))) print(generate_random_ip())

七 生成随机UUID

import uuid def generate_random_uuid(): return str(uuid.uuid4()) print(generate_random_uuid())

八 生成随机地址(城市、州、国家)

import random from faker import Faker fake = Faker() def generate_random_address(): return { 'city': fake.city(), 'state': fake.state(), 'country': fake.country() } print(generate_random_address())

九 生成随机电话号码

from faker import Faker fake = Faker() def generate_random_phone_number(): return fake.phone_number() print(generate_random_phone_number())

十 生成随机文本段落

from faker import Faker fake = Faker() def generate_random_text(nb_sentences=3): return fake.text(nb_sentences=nb_sentences) print(generate_random_text(5))

十一 生成随机URL

import random from faker import Faker fake = Faker() def generate_random_url(): return fake.url() print(generate_random_url())

十二 从CSV文件读取测试数据

import csv def read_test_data_from_csv(file_path): test_data = [] with open(file_path, mode='r') as file: reader = csv.DictReader(file) for row in reader: test_data.append(row) return test_data data = read_test_data_from_csv('test_data.csv') # 读取CSV文件中的测试数据 for row in data: print(row)

十三 生成随机颜色代码

import random def generate_random_color(): return "#{:02X}{:02X}{:02X}".format(random.randint(0, 255), random.randint(0, 255), random.randint(0, 255)) print(generate_random_color())

十四 生成随机JSON对象

import json import random import string def generate_random_json(): data = { 'key1': random.choice(string.ascii_letters) + str(random.randint(0, 9)), 'key2': random.uniform(1.0, 100.0), 'key3': [random.randint(0, 100) for _ in range(5)], 'key4': { 'subkey1': random.choice([True, False]), 'subkey2': generate_random_string(10) } } return json.dumps(data) print(generate_random_json())

十五 随机生成MAC地址

import random def generate_random_mac(): mac = [0x00, 0x1A, 0x2B, random.randint(0x00, 0xff), random.randint(0x00, 0xff), random.randint(0x00, 0xff)] return ':'.join(map(lambda x: format(x, '02x'), mac))

以上就是今天的全部内容,希望对大家有所帮助。

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

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 12:37:58

7个效率倍增技巧:Obsidian LaTeX Suite让数学编辑效率提升3倍

7个效率倍增技巧:Obsidian LaTeX Suite让数学编辑效率提升3倍 【免费下载链接】obsidian-latex-suite Make typesetting LaTeX as fast as handwriting through snippets, text expansion, and editor enhancements 项目地址: https://gitcode.com/gh_mirrors/ob/…

作者头像 李华
网站建设 2026/6/5 7:03:37

职业健康革命:2026年软件测试从业者对抗数字倦怠的全面指南

数字时代的新倦怠危机 2026年,软件测试领域已进入AI与自动化深度整合的时代,表面上的工具效率提升掩盖了更深层的心理隐患。测试工程师不再是简单的“点点点”执行者,而是质量守门人,却面临隐性认知过载与价值隐形化的双重压力。…

作者头像 李华
网站建设 2026/5/30 9:55:28

必读:从外包测试到AI创业,我的菏泽逆袭路径

被代码量定义的外包岁月 2018年山东菏泽某外包基地,日均执行300测试用例的手工测试员生活,让我深刻体会到"重复劳动吞噬职业价值"的行业困境。当发现团队70%的Bug集中在20%的复杂业务模块时,自动化测试转型的种子悄然萌芽。 一、技…

作者头像 李华
网站建设 2026/6/10 15:09:19

震惊!2026年技术面试不再考算法?新规则曝光

技术面试的范式转移 2026年,技术面试正经历颠覆性变革,传统算法题的主导地位被系统性瓦解。这一转变源于算法评估的固有缺陷:它无法真实反映工程师在真实工作场景中的综合能力,如系统设计、风险判断和协作效率。对软件测试从业者…

作者头像 李华
网站建设 2026/6/10 12:39:58

Kronos金融大模型实战指南:AI驱动的量化投资新范式

Kronos金融大模型实战指南:AI驱动的量化投资新范式 【免费下载链接】Kronos Kronos: A Foundation Model for the Language of Financial Markets 项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos 在高频交易与算法博弈的现代金融市场中&…

作者头像 李华