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的更多內容!
推薦閱讀:
- Python如何生成隨機數及random隨機數模塊應用
- Python中的sys模塊、random模塊和math模塊
- Python標準庫之Math,Random模塊使用詳解
- Python+random模塊實現隨機抽樣
- Python 中random 庫的詳細使用