测试人员利用python高效构造测试数据

部署运行你感兴趣的模型镜像

📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)

📝 职场经验干货:

软件测试工程师简历上如何编写个人信息(一周8个面试)

软件测试工程师简历上如何编写专业技能(一周8个面试)

软件测试工程师简历上如何编写项目经验(一周8个面试)

软件测试工程师简历上如何编写个人荣誉(一周8个面试)

软件测试行情分享(这些都不了解就别贸然冲了.)

软件测试面试重点,搞清楚这些轻松拿到年薪30W+

软件测试面试刷题小程序免费使用(永久使用)


利用内置库构造

1.1 random库

random库是生成随机数据的核心库,可以用来生成随机数、随机选择列表中的元素以及构造随机字符串等。

1、生成随机数

  • 生成随机整数:random.randint(a, b) 生成范围在 a 到 b 之间的随机整数。

  • 生成随机浮点数:random.random() 生成范围在 0.0 到 1.0 之间的随机浮点数。

  • 生成随机范围浮点数:random.uniform(a, b) 生成范围在 a 到 b 之间的随机浮点数。

import random

random_int = random.randint(1, 100)
random_float = random.random()
random_uniform = random.uniform(1.5, 10.5)

print(random_int, random_float, random_uniform)

2、随机选择列表中的元素

  • 使用 random.choice(list) 从列表中随机选择一个元素。

  • 使用 random.sample(list, k) 从列表中随机选择 k 个不同的元素。

  • 使用 random.shuffle(list) 将列表中的元素随机打乱。

import random

items = ['apple', 'banana', 'cherry', 'date']
random_item = random.choice(items)
random_sample = random.sample(items, 2)
random.shuffle(items)

print(random_item, random_sample, items)

3、生成随机字符串

  • 通过组合字母和数字,并使用 random.choice() 随机选择字符来生成随机字符串。

import random
import string

def  generate_random_string(length):
     letters = string.ascii_letters + string.digits
     return''.join(random.choice(letters) for _ in range(length))

random_string = generate_random_string(10)
print(random_string)

1.2 datatime库

datetime库可以用来生成和处理日期和时间数据,这在需要模拟时间相关的测试数据时非常有用。

1、生成当前日期和时间

  • 使用datetime.datetime.now()获取当前日期和时间。

from datetime import datetime

now = datetime.now()
print(now)

2、生成随机日期和时间

  • 通过加上或减去timedelta来生成随机日期

from datetime import datetime, timedelta
import random

defgenerate_random_date(start_date, end_date):
    days_diff = (end_date - start_date).days
    random_days = random.randint(0, days_diff)
    return start_date + timedelta(days=random_days)

start_date = datetime(2025, 1, 1)
end_date = datetime(2025, 12, 31)
random_date = generate_random_date(start_date, end_date)
print(random_date)

3、格式化日期和时间

  • 使用strftime()方法将日期和时间格式化为所需的字符串格式。

from datetime import datetime

now = datetime.now()
formatted_date = now.strftime('%Y-%m-%d %H:%M:%S')
print(formatted_date)

利用第三方库构造数据

2.1 Faker库

Faker是一个用于专门构造假数据的库,非常适合用于测试数据的构造。它可以生成名字、地址、电话号码、电子邮件、公司名称等。

from faker import Faker

fake = Faker()

# 生成名字
name = fake.name()
print(f"Name: {name}")

# 生成地址
address = fake.address()
print(f"Address: {address}")

# 生成电子邮件
email = fake.email()
print(f"Email: {email}")

# 生成电话号码
phone_number = fake.phone_number()
print(f"Phone Number: {phone_number}")

# 生成公司名称
company = fake.company()
print(f"Company: {company}")

# 生成日期
date_of_birth = fake.date_of_birth()
print(f"Date of Birth: {date_of_birth}")

2.2 Pandas库

虽然pandas主要用于数据分析,但它也可以用来生成和处理测试数据,特别是在需要大规模数据集时。

import pandas as pd
import numpy as np

# 生成一个包含 100 个随机整数的 DataFrame
df = pd.DataFrame({
    'A': np.random.randint(0, 100, size=100),
    'B': np.random.rand(100),
    'C': np.random.choice(['X', 'Y', 'Z'], size=100)
})

print(df.head())

2.3 Mimesis库

mimesis是另一个用于生成假数据的库,支持多种语言和丰富的数据类型。

import mimesis

data = mimesis.Generic('en') # 使用英文数据

# 生成全名
full_name = data.full_name()
print(f"Full Name: {full_name}")

# 生成地址
address = data.address()
print(f"Address: {address}")

# 生成电子邮件
email = data.email()
print(f"Email: {email}")

# 生成电话号码
phone_number = data.telephone()
print(f"Phone Number: {phone_number}")

# 生成信用卡号
credit_card = data.credit_card()
print(f"Credit Card: {credit_card}")

构造业务测试数据案例

2.1 构造业务测试数据

构造业务测试数据通常需要根据具体的业务场景来定制。有些情况下还需要调用业务接口或直接在表中插入数据相结合,这样才能造出符合业务场景的测试数据。下面是一个简单的案例,假设我们正在测试一个电子商务系统,需要生成一些测试数据来模拟用户订单,我们需要生成以下测试数据:

  • 用户信息:用户 ID、姓名、电子邮件。

  • 产品信息:产品 ID、产品名称、价格。

  • 订单信息:订单 ID、用户 ID、产品 ID、购买数量、订单日期。

from faker import Faker
from datetime import datetime

# 初始化 Faker
fake = Faker()

# 生成用户信息
defgenerate_user():
    return {
        'user_id': fake.unique.random_int(min=1, max=1000),
        'name': fake.name(),
        'email': fake.email()
    }

# 生成产品信息
defgenerate_product():
    return {
        'product_id': fake.unique.random_int(min=1, max=1000),
        'product_name': fake.word().capitalize(),
        'price': round(fake.random_number(digits=2), 2)
    }

# 生成订单信息
defgenerate_order(user, product):
    return {
        'order_id': fake.unique.random_int(min=1, max=10000),
        'user_id': user['user_id'],
        'product_id': product['product_id'],
        'quantity': fake.random_int(min=1, max=10),
        'order_date': datetime.now().strftime('%Y-%m-%d')
    }

# 生成测试数据
defgenerate_test_data(num_orders=10):
    users = [generate_user() for _ in range(5)] # 生成 5 个用户
    products = [generate_product() for _ in range(10)] # 生成 10 个产品
    orders = []

    for _ in range(num_orders):
        user = fake.random_element(users)
        product = fake.random_element(products)
        order = generate_order(user, product)
        orders.append(order)

    return users, products, orders

# 打印测试数据
defprint_test_data(users, products, orders):
    print("Users:")
    for user in users:
        print(user)

    print("\nProducts:")
    for product in products:
        print(product)

    print("\nOrders:")
    for order in orders:
        print(order)

# 主函数
if __name__ == "__main__":
    users, products, orders = generate_test_data()
    print_test_data(users, products, orders)

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

您可能感兴趣的与本文相关的镜像

Python3.11

Python3.11

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值