Python之random庫的常用函數(shù)有哪些
前言
在進行接口測試時,有些接口字段在不需要測試的時候往往是被寫死的,但是你不能保證它就不會出現(xiàn)問題,所以在平時測試的時候就需要覆蓋各種情況,這時候就可以為此專門寫一個函數(shù)或者類來實現(xiàn)字段動態(tài)值了。由于我們組的自動化腳本里面的金額字段是固定的,現(xiàn)在需要改成動態(tài)值,我用的是python的random庫寫的,現(xiàn)在來詳細(xì)記錄一下。
一 random庫介紹
在python中,用于生成隨機數(shù)的是random庫。但random庫生成的隨機數(shù)是一種采用梅森旋轉(zhuǎn)算法生成的偽隨機數(shù),不是真正的隨機數(shù),因為計算機是不能產(chǎn)生真正的隨機數(shù)的。
random庫是python的標(biāo)準(zhǔn)庫,因此只要安裝了python環(huán)境,基本就能使用random庫,使用方法如下
import random
二 基本隨機函數(shù)
random庫中的隨機數(shù)由兩個基本隨機函數(shù)產(chǎn)生,一個是seed()函數(shù),一個是random()函數(shù),如下
1. seed()
seed(a=None): 隨機數(shù)種子函數(shù),默認(rèn)參數(shù)a等于當(dāng)前系統(tǒng)時間。如果參數(shù)a值固定,則隨之產(chǎn)生的隨機數(shù)也會是同一個值。如下
import random
import time
random.seed(a=1)
ran_num1 = random.random()
ran_num3 = random.randint(1, 6)
print("我是第一次隨機結(jié)果:")
print(ran_num1)
print(ran_num3)
time.sleep(3)
print("我是第二次隨機結(jié)果:")
print(ran_num1)
print(ran_num3)

從結(jié)果可以看出,當(dāng)參數(shù)a的值確定時,產(chǎn)生的就不是隨機數(shù)了。
2. random()
random(): 生成一個[0.0, 1.0)之間的隨機小數(shù)
a = 0
while a < 10:
num = random.random()
a += 1
print(num)

三 擴展隨機函數(shù)
由于基本隨機函數(shù)不夠用,所以又有了以下的擴展隨機函數(shù),如下。
1. randint()
randint(a, b): 生成一個[a, b]之間的隨機整數(shù)
#randint
a = 0
while a < 5:
num = random.randint(1, 5)
a += 1
print(num)

2. uniform()
uniform(a, b): 生成一個[a, b]之間的隨機小數(shù)
#uniform
a = 0
while a < 5:
num = random.uniform(1, 7)
a += 1
print(num)

3. randrange()
randrange(m,n[,k]): 生成一個[m,n)之間以k(默認(rèn)為1)為步長的隨機整數(shù)
#randrange
a = 0
while a < 5:
num = random.randrange(1, 5)
a += 1
print(num)

4. choice()
choice(seq): 從序列中隨機選擇一個數(shù)
#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)

四 實例(動態(tài)金額值)
要求:返回一個動態(tài)金額值,金額范圍:
1.0~1的一位小數(shù),兩位小數(shù);
2.不超過100的整數(shù);
3.1~100的一位小數(shù),兩位小數(shù);(測試金額字段,會不會自動補全兩位小數(shù))
實現(xiàn);
#測試金額字段,會不會自動補全兩位小數(shù)
#實現(xiàn)金額字段動態(tài)值
import random
def get_random_amount():
'''
實現(xiàn)金額字段動態(tài)值
:return: random_amount
'''
#小于1的一位小數(shù),兩位小數(shù)值
amount1 = round(random.random(), 1)
amount2 = round(random.random(), 2)
#整數(shù)
amount3 = random.randint(1, 100)
#1~100的一位小數(shù),兩位小數(shù)值
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
#函數(shù)調(diào)用
random_amount = get_random_amount()
print(random_amount)
測試結(jié)果如下

總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
python構(gòu)建指數(shù)平滑預(yù)測模型示例
今天小編就為大家分享一篇python構(gòu)建指數(shù)平滑預(yù)測模型示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
python實戰(zhàn)游戲之史上最難最虐的掃雷游戲沒有之一
這篇文章主要介紹了使用 python 實現(xiàn)掃雷游戲,不同于傳統(tǒng)過時的掃雷,今天我們用 Python 增加了新花樣,文中給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09
pycharm終端無法激活conda環(huán)境的解決辦法
如果您在PyCharm終端中無法激活conda環(huán)境,可能是由于PyCharm沒有正確配置conda解釋器,這篇文章主要給大家介紹了關(guān)于pycharm終端無法激活conda環(huán)境的解決辦法,需要的朋友可以參考下2023-09-09
pyecharts如何旋轉(zhuǎn)折線圖的X軸標(biāo)簽
這篇文章主要介紹了pyecharts如何旋轉(zhuǎn)折線圖的X軸標(biāo)簽,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11
Python ORM框架SQLAlchemy學(xué)習(xí)筆記之?dāng)?shù)據(jù)添加和事務(wù)回滾介紹
這篇文章主要介紹了Python ORM框架SQLAlchemy學(xué)習(xí)筆記之?dāng)?shù)據(jù)添加和事務(wù)回滾介紹,需要的朋友可以參考下2014-06-06
pytorch之inception_v3的實現(xiàn)案例
今天小編就為大家分享一篇pytorch之inception_v3的實現(xiàn)案例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01

