當面臨重複性測試工做的解決思路

是有這麼一個要求,須要用戶請求一次接口,會推給他他們一次實驗結果,次數太少沒法看到本身設置的機率是否符合。內容十分簡單,不復雜,可是當任務並行的時候,怎麼才能保證質量又保證測試範圍和效率,纔是首要解決的問題,因此咱們並非須要多麼高大上的測試代碼,怎麼簡單怎麼來。python

代碼很簡單,咱們在測試過程當中首先要保證正確性,其次是提升效率,我在其餘項目過程當中執行了幾回腳本,最後發現比率沒問題,測試前還跟開發review了一下腳本和思路,也運行過1000 5000 10000次,比率都是符合要求的。後來,我在和開發溝經過程中還了解到了random的seed的做用,seed不能被單獨調用,當seed後面數值一致的時候,纔會獲取兩組相同的隨機數。這樣能夠控制實驗變量,這樣更能設計實驗更準確,更具備實驗指導性。json

#coding=utf-8
import requests
import json
import time


def testExpClassAB(ii):
    # 定義登陸獲取cookie
    # post請求方法
    login_url = "https://loginXXXXXXXXXXXXXXXXXXXXX" #登陸接口地址
    api_url = "https://VVVVVVVVVVVVV" #被測接口鏈接
    data_login = {"sign": "XXXXXXX", "pwd": "XXXXX", "vcode": 0}
    login_re = requests.post(login_url, data=data_login)
    login_cookie = login_re.cookies
    data_expclass = {\
        "step": 3,          # 步驟 
        "gradeId": 8,       # 年級
        "subjectId": 2,     # 學科 
        "provinceId": 1}    # 省市 
    i = 1
    flag_407 = 0.0
    flag_408 = 0.0
    flag_4 = 0.0

    while i <= ii:
        expclass = requests.post(api_url, data=data_expclass, cookies=login_cookie)
        re_content = json.loads(expclass.content)
        print("第"+str(i)+"條:"+str(re_content['data']))
        for item in re_content['data']:

           if str(item['timeSlot']).find('[407]') > 0:
               flag_407 += 1

           elif str(item['timeSlot']).find("[408]") > 0:
               flag_408 += 1

           elif str(item['timeSlot']).find("[4]") > 0:
               flag_4 += 1
           else:
               pass
        i += 1
        time.sleep(0.5)
    print("flag_4="+str(flag_4), "flag_407="+str(flag_407), "flag_408="+str(flag_408))
    percent_4 = flag_4/(7*i)
    percent_407 = flag_407/(7*i)
    percent_408 = flag_408/(7*i)
    print("percent_4="+str(percent_4), "percent_407="+str(percent_407), "percent_408="+str(percent_408))

    percent_sum = percent_4+percent_407+percent_408
    print("percent_sum : "+str(percent_sum))


if __name__ == "__main__":
    Numbers = 10
    try:
        testExpClassAB(Numbers)
    except Exception as e:
        print("本次測試異常:"+e)
    print("============測試結束!============")
相關文章
相關標籤/搜索