📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)
📝 职场经验干货:
利用内置库构造
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%免费】

602

被折叠的 条评论
为什么被折叠?



