【造数】利用Python快速生成测试数据

前言

我们在做测试的过程中,时常需要构造测试数据,Python提供了一些模块和库可以快速的帮我们构造测试数据。用好这些库可以使我们的测试工作事半功倍。

1、日期数据生成

使用datetime模块,自动获取当前时间,一小时前时间,一天前时间,一天后时间
import datetime

nowTime=datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')#现在

pastTime = (datetime.datetime.now()-datetime.timedelta(hours=1)).strftime('%Y-%m-%d %H:%M:%S')#过去一小时时间

yesterdayTime = (datetime.datetime.now()+datetime.timedelta(days=-1)).strftime('%Y-%m-%d %H:%M:%S')#昨天

afterTomorrowTime = (datetime.datetime.now()+datetime.timedelta(days=2)).strftime('%Y-%m-%d %H:%M:%S')#后天

tomorrowTime = (datetime.datetime.now()+datetime.timedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')#明天

print('  当前时间:',nowTime)
print('一个小时前:',pastTime)
print('    一天前:',yesterdayTime)
print('    一天后:',tomorrowTime)
print('    两天后:',afterTomorrowTime)

【造数】利用Python快速生成测试数据_第1张图片

2、生成数字和字符串

2.1 random和string模块基本使用介绍

【造数】利用Python快速生成测试数据_第2张图片

代码实现:
import random
import string

#1、生成[0,1]之间的1个随机数
print(random.random())  #结果:0.5681789770905409

#2、生成[a,b]之间的1个随机数整数
print(random.randint(1,10))  # 结果:7

#3、生成[a,b]之间的1个随机浮点数
print(random.uniform(1,10)) # 结果:4.10465640319117

#4、从列表中随机取一个值
char_list=['a','b','c','d','e','f','g']
print(random.choice(char_list))  # 结果:g

#5、从列表中随机取n个值
print(random.sample(char_list,3))  #结果:['g', 'd', 'a']

#6、获取英文字母小写:abcdefghijklmnopqrstuvwxyz
print(string.ascii_lowercase)

#7、获取英文字母大写:ABCDEFGHIJKLMNOPQRSTUVWXYZ
print(string.ascii_uppercase)

#8、获取英文字母大小写:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
print(string.ascii_letters)

#9、获取数字:0123456789
print(string.digits)

2.2 生成指定长度的随机字符串
import string
import random

'''
方法一:定义一个函数,参数为所要生成随机字符串的长度。通过random.randint(a, b)方法得到随机数字,具体函数如下:
'''
def generate_random_str(randomlength=16):
    """
    生成一个指定长度的随机字符串
    """
    random_str = ''
    base_str = 'ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789'
    length = len(base_str) - 1
    for i in range(randomlength):
        random_str += base_str[random.randint(0, length)]
    return random_str

'''
方法二:方法一中我们采用将数字及字母罗列出来,并从中随机选择的方法进行生成,显得不够pythonic,
方法二中我们采用string模块得到数字及字母,并通过列表生成式的方法得到结果。方法如下:
'''
def generate_random_str(randomlength=16):
    """
    生成一个指定长度的随机字符串,其中
    string.digits=0123456789
    string.ascii_letters=abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
    """
    str_list = [random.choice(string.digits + string.ascii_letters) for i in range(randomlength)]
    '''
    概述:python中' '.JOIN()的使用,将序列中的元素以指定的字符连接生成一个新的字符串。
    语法: ‘delimiter’.join(seq)
    delimiter:分隔符。可以为空
    delimiter:要连接的元素序列、字符串、元组、字典
    '''
    random_str = ''.join(str_list)
    return random_str

randomstr= generate_random_str(24)
print (randomstr)   #fFBKoFgZZ5X9s3xfQ649VO49

你可能感兴趣的:(编程,#,python基础)