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)

測試結果如下

在這裡插入圖片描述

總結

本篇文章就到這裡瞭,希望能夠給你帶來幫助,也希望您能夠多多關註WalkonNet的更多內容!  

推薦閱讀: