后悔才知道-50个常用的生成接口自动化测试数据的工具脚本(很实用,建议点赞收藏)

2108 篇文章 51 订阅
837 篇文章 1 订阅

前提条件

确保你已经安装了以下库:

Faker:用于生成伪造数据。

random:用于生成随机数。

uuid:用于生成唯一标识符(UUID)。

datetime:用于生成日期和时间。

你可以使用以下命令安装这些库:

pip install faker

脚本列表

生成随机字符串

生成随机整数

生成随机浮点数

生成随机布尔值

生成随机日期

生成随机时间

生成随机电子邮件地址

生成随机用户名

生成随机密码

生成随机电话号码

生成随机姓名

生成随机公司名称

生成随机地址

生成随机城市

生成随机国家

生成随机邮政编码

生成随机URL

生成随机IP地址

生成随机MAC地址

生成随机信用卡号

生成随机银行账号

生成随机货币金额

生成随机颜色代码

生成随机UUID

生成随机JSON对象

生成随机字典

生成随机列表

生成随机数组

生成随机元组

生成随机集合

生成随机文件名

生成随机文件路径

生成随机文件内容

生成随机图片

生成随机视频

生成随机音频

生成随机PDF

生成随机CSV

生成随机XML

生成随机SQL查询

生成随机HTTP请求头

生成随机HTTP响应状态码

生成随机HTTP方法

生成随机HTTP URL参数

生成随机HTTP请求体

生成随机HTTP响应体

生成随机JWT令牌

生成随机OAuth令牌

生成随机Cookie

生成随机User-Agent‍

代码示例

1. 生成随机字符串

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())

2. 生成随机整数​​​​​​​

import random
def generate_random_integer(min_value=1, max_value=100):
    return random.randint(min_value, max_value)
print(generate_random_integer())

3. 生成随机浮点数​​​​​​​

import random
def generate_random_float(min_value=0.0, max_value=1.0):
    return random.uniform(min_value, max_value)
print(generate_random_float())

4. 生成随机布尔值​​​​​​​

import random
def generate_random_bool():
    return random.choice([True, False])
print(generate_random_bool())

5. 生成随机日期​​​​​​​

from datetime import datetime, timedelta
import random
def generate_random_date(start_year=2020, end_year=2023):
    start = datetime(start_year, 1, 1)
    end = datetime(end_year, 12, 31)
    delta = end - start
    random_days = random.randrange(delta.days)
    return (start + timedelta(days=random_days)).date()
print(generate_random_date())

6. 生成随机时间​​​​​​​

from datetime import time
import random
def generate_random_time():
    hour = random.randint(0, 23)
    minute = random.randint(0, 59)
    second = random.randint(0, 59)
    return time(hour, minute, second)
print(generate_random_time())

7. 生成随机电子邮件地址​​​​​​​

from faker import Faker
fake = Faker()
def generate_random_email():
    return fake.email()
print(generate_random_email())

8. 生成随机用户名​​​​​​​

from faker import Faker
fake = Faker()
def generate_random_username():
    return fake.user_name()
print(generate_random_username())

9. 生成随机密码​​​​​​​

from faker import Faker
fake = Faker()
def generate_random_password(length=12):
    return fake.password(length=length)
print(generate_random_password())

10. 生成随机电话号码​​​​​​​

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

11. 生成随机姓名​​​​​​​

from faker import Faker
fake = Faker('zh_CN')
def generate_random_name():
    return fake.name()
print(generate_random_name())

12. 生成随机公司名称​​​​​​​

from faker import Faker
fake = Faker('zh_CN')
def generate_random_company_name():
    return fake.company()
print(generate_random_company_name())

13. 生成随机地址​​​​​​​

from faker import Faker
fake = Faker('zh_CN')
def generate_random_address():
    return fake.address()
print(generate_random_address())

14. 生成随机城市​​​​​​​

from faker import Faker
fake = Faker('zh_CN')
def generate_random_city():
    return fake.city()
print(generate_random_city())

15. 生成随机国家​​​​​​​

from faker import Faker
fake = Faker()
def generate_random_country():
    return fake.country()
print(generate_random_country())

16. 生成随机邮政编码​​​​​​​

from faker import Faker
fake = Faker('zh_CN')
def generate_random_postcode():
    return fake.postcode()
print(generate_random_postcode())

17. 生成随机URL​​​​​​​

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

18. 生成随机IP地址​​​​​​​

from faker import Faker
fake = Faker()
def generate_random_ip():
    return fake.ipv4()
print(generate_random_ip())

19. 生成随机MAC地址​​​​​​​

from faker import Faker
fake = Faker()
def generate_random_mac_address():
    return fake.mac_address()
print(generate_random_mac_address())

20. 生成随机信用卡号​​​​​​​

from faker import Faker
fake = Faker()
def generate_random_credit_card():
    return fake.credit_card_number()
print(generate_random_credit_card())

21. 生成随机银行账号​​​​​​​

from faker import Faker
fake = Faker()
def generate_random_bank_account():
    return fake.bban()
print(generate_random_bank_account())

22. 生成随机货币金额​​​​​​​

from faker import Faker
fake = Faker()
def generate_random_currency_amount():
    return fake.pyfloat(left_digits=2, right_digits=2, positive=True)
print(generate_random_currency_amount())

23. 生成随机颜色代码​​​​​​​

from faker import Faker
fake = Faker()
def generate_random_color_code():
    return fake.hex_color()
print(generate_random_color_code())

24. 生成随机UUID​​​​​​​

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

25. 生成随机JSON对象​​​​​​​

import json
from faker import Faker
fake = Faker()
def generate_random_json_object():
    data = {
        "name": fake.name(),
        "email": fake.email(),
        "address": fake.address(),
        "phone": fake.phone_number(),
        "company": fake.company(),
        "job": fake.job(),
        "birthdate": fake.date_of_birth().strftime('%Y-%m-%d')
    }
    return json.dumps(data, ensure_ascii=False, indent=4)
print(generate_random_json_object())

26. 生成随机字典​​​​​​​

import random
import string
def generate_random_dict(keys_count=5):
    keys = [f'key_{i}' for i in range(keys_count)]
    values = [generate_random_string() for _ in range(keys_count)]
    return dict(zip(keys, values))
print(generate_random_dict())

27. 生成随机列表​​​​​​​

import random
def generate_random_list(length=10):
    return [random.randint(1, 100) for _ in range(length)]
print(generate_random_list())

28. 生成随机数组​​​​​​​

import numpy as np
def generate_random_array(shape=(10,)):
    return np.random.rand(*shape)
print(generate_random_array())

29. 生成随机元组​​​​​​​

import random
def generate_random_tuple(length=5):
    return tuple(random.randint(1, 100) for _ in range(length))
print(generate_random_tuple())

30. 生成随机集合​​​​​​​

import random
def generate_random_set(length=5):
    return set(random.randint(1, 100) for _ in range(length))
print(generate_random_set())

31. 生成随机文件名​​​​​​​

import random
import string
def generate_random_filename(extension='.txt'):
    return ''.join(random.choices(string.ascii_letters + string.digits, k=10)) + extension
print(generate_random_filename())

32. 生成随机文件路径​​​​​​​

import os
import random
import string
def generate_random_filepath(directory='/tmp', extension='.txt'):
    filename = generate_random_filename(extension)
    return os.path.join(directory, filename)
print(generate_random_filepath())

33. 生成随机文件内容​​​​​​​

import random
import string
def generate_random_file_content(size=1024):
    return ''.join(random.choices(string.ascii_letters + string.digits, k=size))
print(generate_random_file_content(100))

34. 生成随机图片​​​​​​​

from PIL import Image
import numpy as np
def generate_random_image(width=200, height=200, path='random_image.png'):
    img_array = np.random.rand(height, width, 3) * 255
    img = Image.fromarray(img_array.astype('uint8')).convert('RGB')
    img.save(path)
    return path
print(generate_random_image())

35. 生成随机视频​​​​​​​

import cv2
import numpy as np
def generate_random_video(width=200, height=200, num_frames=100, path='random_video.mp4'):
    fourcc = cv2.VideoWriter_fourcc(*'mp4v')
    out = cv2.VideoWriter(path, fourcc, 20.0, (width, height))
    for _ in range(num_frames):
        frame = np.random.randint(0, 256, (height, width, 3), dtype=np.uint8)
        out.write(frame)
    out.release()
    return path
print(generate_random_video())

36. 生成随机音频​​​​​​​

import numpy as np
import soundfile as sf
def generate_random_audio(duration=5, sample_rate=44100, path='random_audio.wav'):
    t = np.linspace(0, duration, int(sample_rate * duration), endpoint=False)
    audio_data = np.sin(2 * np.pi * 440 * t)  # 440 Hz sine wave
    sf.write(path, audio_data, sample_rate)
    return path
print(generate_random_audio())

37. 生成随机PDF​​​​​​​

from fpdf import FPDF
import random
def generate_random_pdf(path='random_pdf.pdf'):
    pdf = FPDF()
    pdf.add_page()
    pdf.set_font("Arial", size=12)
    for i in range(10):
        pdf.cell(200, 10, txt=f"Line {i+1}: {generate_random_string(50)}", ln=True)
    pdf.output(path)
    return path
print(generate_random_pdf())

38. 生成随机CSV​​​​​​​

import csv
import random
import string
def generate_random_csv(rows=10, cols=5, path='random_data.csv'):
    with open(path, 'w', newline='') as csvfile:
        writer = csv.writer(csvfile)
        header = [f'Column_{i+1}' for i in range(cols)]
        writer.writerow(header)
        for _ in range(rows):
            row = [generate_random_string(10) for _ in range(cols)]
            writer.writerow(row)
    return path
print(generate_random_csv())

39. 生成随机XML​​​​​​​

import xml.etree.ElementTree as ET
def generate_random_xml(path='random_data.xml'):
    root = ET.Element("data")
    for i in range(10):
        item = ET.SubElement(root, "item")
        item.set("id", str(i+1))
        ET.SubElement(item, "name").text = generate_random_string(10)
        ET.SubElement(item, "value").text = str(random.randint(1, 100))
    tree = ET.ElementTree(root)
    tree.write(path)
    return path
print(generate_random_xml())

40. 生成随机SQL查询​​​​​​​

import random
def generate_random_sql_query():
    tables = ['users', 'orders', 'products']
    table = random.choice(tables)
    columns = ['id', 'name', 'email', 'price']
    column = random.choice(columns)
    value = generate_random_string(10)
    query = f"SELECT * FROM {table} WHERE {column} = '{value}';"
    return query
print(generate_random_sql_query())

41. 生成随机HTTP请求头​​​​​​​

from faker import Faker
fake = Faker()
def generate_random_http_headers():
    headers = {
        "User-Agent": fake.user_agent(),
        "Content-Type": "application/json",
        "Accept": "application/json",
        "Authorization": f"Bearer {fake.uuid4()}",
        "X-Request-ID": fake.uuid4()
    }
    return headers
print(generate_random_http_headers())

42. 生成随机HTTP响应状态码

import random
def generate_random_http_status_code():
    status_codes = [200, 201, 204, 400, 401, 403, 404, 500, 502]
    return random.choice(status_codes)
print(generate_random_http_status_code())
43. 生成随机HTTP方法
import random
def generate_random_http_method():
    methods = ["GET", "POST", "PUT", "DELETE", "PATCH"]
    return random.choice(methods)
print(generate_random_http_method())

44. 生成随机HTTP URL参数

import random
import string
def generate_random_http_params(count=3):
    params = {}
    for i in range(count):
        key = f"param_{i+1}"
        value = generate_random_string(10)
        params[key] = value
    return params
print(generate_random_http_params())

45. 生成随机HTTP请求体​​​​​​​

import json
from faker import Faker
fake = Faker()
def generate_random_http_request_body():
    body = {
        "name": fake.name(),
        "email": fake.email(),
        "address": fake.address(),
        "phone": fake.phone_number(),
        "company": fake.company(),
        "job": fake.job(),
        "birthdate": fake.date_of_birth().strftime('%Y-%m-%d')
    }
    return json.dumps(body, ensure_ascii=False, indent=4)
print(generate_random_http_request_body())

46. 生成随机HTTP响应体​​​​​​​

import json
from faker import Faker
fake = Faker()
def generate_random_http_response_body():
    body = {
        "status": "success",
        "message": "Operation successful",
        "data": {
            "id": fake.uuid4(),
            "name": fake.name(),
            "email": fake.email(),
            "created_at": fake.date_time_this_month().isoformat()
        }
    }
    return json.dumps(body, ensure_ascii=False, indent=4)
print(generate_random_http_response_body())

47. 生成随机JWT令牌​​​​​​​

import jwt
import datetime
import random
def generate_random_jwt_token(secret_key="my_secret_key"):
    payload = {
        "user_id": random.randint(1, 100),
        "username": f"user_{random.randint(1, 100)}",
        "exp": datetime.datetime.utcnow() + datetime.timedelta(hours=1)
    }
    token = jwt.encode(payload, secret_key, algorithm="HS256")
    return token
print(generate_random_jwt_token())

48. 生成随机OAuth令牌​​​​​​​

import random
import string
def generate_random_oauth_token():
    return ''.join(random.choices(string.ascii_letters + string.digits, k=32))
print(generate_random_oauth_token())

49. 生成随机Cookie​​​​​​​

import random
import string
def generate_random_cookie():
    cookie = {
        "session_id": ''.join(random.choices(string.ascii_letters + string.digits, k=32)),
        "user_id": str(random.randint(1, 100)),
        "username": f"user_{random.randint(1, 100)}"
    }
    return cookie
print(generate_random_cookie())

50. 生成随机User-Agent​​​​​​​

from faker import Faker
fake = Faker()
def generate_random_user_agent():
    return fake.user_agent()
print(generate_random_user_agent())

使用示例数据进行测试

你可以将这些脚本集成到你的测试框架中,例如使用pytest、unittest或requests库来发送HTTP请求并验证API的行为。这些脚本可以帮助你生成各种类型的测试数据,以确保你的API在不同的输入情况下都能正常工作。

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

软件测试面试文档

我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值