Python之random库常用函数

前言

在进行接口测试时,有些接口字段在不需要测试的时候往往是被写死的,但是你不能保证它就不会出现问题,所以在平时测试的时候就需要覆盖各种情况,这时候就可以为此专门写一个函数或者类来实现字段动态值了。由于我们组的自动化脚本里面的金额字段是固定的,现在需要改成动态值,我用的是python的random库写的,现在来详细记录一下。

一 random库介绍

在python中,用于生成随机数的是random库。但random库生成的随机数是一种采用梅森旋转算法生成的伪随机数,不是真正的随机数,因为计算机是不能产生真正的随机数的。
random库是python的标准库,因此只要安装了python环境,基本就能使用random库,使用方法如下

import random

二 基本随机函数

random库中的随机数由两个基本随机函数产生,一个是seed()函数,一个是random()函数,如下

1. seed()
  • seed(a=None): 随机数种子函数,默认参数a等于当前系统时间如果参数a值固定,则随之产生的随机数也会是同一个值。如下
import random
import time

random.seed(a=1)
ran_num1 = random.random()
ran_num3 = random.randint(1, 6)
print("我是第一次随机结果:")
print(ran_num1)
print(ran_num3)

time.sleep(3)
print("我是第二次随机结果:")
print(ran_num1)
print(ran_num3)

在这里插入图片描述
从结果可以看出,当参数a的值确定时,产生的就不是随机数了。

2. random()
  • random(): 生成一个[0.0, 1.0)之间的随机小数
a = 0
while a < 10:
    num = random.random()
    a += 1
    print(num)

在这里插入图片描述

三 扩展随机函数

由于基本随机函数不够用,所以又有了以下的扩展随机函数,如下。

1. randint()
  • randint(a, b): 生成一个[a, b]之间的随机整数
#randint
a = 0
while a < 5:
    num = random.randint(1, 5)
    a += 1
    print(num)

在这里插入图片描述

2. uniform()
  • uniform(a, b): 生成一个[a, b]之间的随机小数
#uniform
a = 0
while a < 5:
    num = random.uniform(1, 7)
    a += 1
    print(num)

在这里插入图片描述

3. randrange()
  • randrange(m,n[,k]): 生成一个[m,n)之间以k(默认为1)为步长的随机整数
#randrange
a = 0
while a < 5:
    num = random.randrange(1, 5)
    a += 1
    print(num)

在这里插入图片描述

4. choice()
  • choice(seq): 从序列中随机选择一个数
#choice
a = 0
while a < 5:
    num = random.choice('abcd')
    a += 1
    print(num)

在这里插入图片描述

5. shuffle()
  • shuffle(seq): 将列表元素顺序打乱,返回打乱后的列表
#shuffle
l = [1, 2, 3, 4]
a = 0
while a < 5:
    random.shuffle(l)
    a += 1
    print(l)

在这里插入图片描述

6. sample()
  • sample(seq, n): 从指定的序列seq中,随机返回n个元素,以列表形式返回
#sample
s = 'abcdfg'
a = 0
while a < 5:
    num = random.sample(s, 1)
    a += 1
    print(num)

在这里插入图片描述

四 实例(动态金额值)

要求:返回一个动态金额值,金额范围:

  1. 0~1的一位小数,两位小数;
  2. 不超过100的整数;
  3. 1~100的一位小数,两位小数;
    (测试金额字段,会不会自动补全两位小数)

实现;

#测试金额字段,会不会自动补全两位小数
#实现金额字段动态值
import random

def get_random_amount():
    '''
    实现金额字段动态值
    :return: random_amount
    '''

    #小于1的一位小数,两位小数值
    amount1 = round(random.random(), 1)
    amount2 = round(random.random(), 2)
    #整数
    amount3 = random.randint(1, 100)
    #1~100的一位小数,两位小数值
    amount4 = round(random.uniform(1, 100), 1)
    amount5 = round(random.uniform(1, 100), 2)
    #从5个金额值中随机返回一个
    randomList = [amount1, amount2, amount3, amount4, amount5]
    random_amount = random.sample(randomList, 1)[0]
    print(randomList)

    return random_amount
    
#函数调用
random_amount = get_random_amount()
print(random_amount)

测试结果如下
在这里插入图片描述

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值