httpRunner使用(五):讀取參數爲str類型,導致與預期結果比較失敗

parameters:
    monitorIds-startTime-endTime-alarmTypes-status_code-code-message: ${P(data/count.csv)}

AssertionError:
validate: status_code equals 200)(str)  ==> fail
200(int) equals 200)(str)

可以testsuite中使用直接傳參,可正常比較
parameters:
    monitorIds-startTime-endTime-alarmTypes-status_code-code-message:
        - [ca8596fe-210d-448f-ae50-c60fecfaec03,20200328,20200328,"3,11",200,10000,'OK']

testsuite代碼: 

config:
    name: "paas_cloud_testsuite"
    variables:
        device_sn:
    base_url: "http://113.204.5.58"

testcases:
-
    name: alarm/count/type True
    parameters:
        monitorIds-startTime-endTime-alarmTypes-status_code-code-message:
            - [ca8596fe-210d-448f-ae50-c60fecfaec03,20200328,20200328,"3,11",200,10000,OK]
            - ["ca8596fe-210d-448f-ae50-c60fecfaec03",20200328,20200328,"3,13,14,29,30,157,158,0,1,2,18,19,2011,2012,20,2111,2112,21,2211,2212,22,23,15,148,149,164,24,25,26,27,28,31,4,5,6,7,8,9,10,11,12,16,17,651,652,653,661,662,663,14303,14301,14300,14302,14304,14305,14306,681,682,701,1321,702,683,67,124,12411,14411,125,126,1271,1272,130,128,131,129,77,75,147,76,7211,7212,7311,7312,11911,11912,151,150,82,7702,7703,79,81,32,118,11511,11512,11611,11612,123,1111,1112,113,114,107,106,104,105,108,109,18712,18715,18710,18716,18717,18714,18711,18713",200,10000,OK]
            - [\,\,\,\,400,20000,格式錯誤]
            - [ca8596fe-210d-448f-ae50-c60fecfaec03,202003,202003,X,400,20000,格式錯誤]
#    parameters:
#        monitorIds-startTime-endTime-alarmTypes-status_code-code-message: ${P(data/count.csv)}
    testcase: testcases\paas_cloud\alarm_count_type.yml
#    validate:
#        - eq: ["status_code",200]
#        - eq: ["content.code",10000]
#        - eq: ["content.message",'OK']


testcase代碼: 

config:
    name: "/api/alarm/count/type"
    base_url: "http://113.204.5.58"
# 單個監控對象,多個監控對象
# 1天以上,不跨天一整天,幾個小時,爲空
# 報警類型:1個報警、多個報警,全部報警
teststeps:
-
    name: /api/alarm/count/type
    variables:
        monitorIds: "ca8596fe-210d-448f-ae50-c60fecfaec03"
        startTime: 20200328
        endTime:  20200328
        alarmTypes: "3,13,14,29,30,157,158,0,1,2,18,19,2011,2012,20,2111,2112,21,2211,2212,22,23,15,148,149,164,24,25,26,27,28,31,4,5,6,7,8,9,10,11,12,16,17,651,652,653,661,662,663,14303,14301,14300,14302,14304,14305,14306,681,682,701,1321,702,683,67,124,12411,14411,125,126,1271,1272,130,128,131,129,77,75,147,76,7211,7212,7311,7312,11911,11912,151,150,82,7702,7703,79,81,32,118,11511,11512,11611,11612,123,1111,1112,113,114,107,106,104,105,108,109,18712,18715,18710,18716,18717,18714,18711,18713"
        status_code: 200
        code: 10000
        message: 'OK'
    api: api\paas_cloud\alarm_count_type.yml
    validate:
        - eq: ["status_code",$status_code]
        - eq: ["content.code",$code]
        - contains: ["content.message",$message]

api代碼:

name: /api/alarm/count/type
variables:
    base_url: ${ENV(URL)}
    message: 'OK'
    monitorIds: "ca8596fe-210d-448f-ae50-c60fecfaec03"
    startTime: 20200328
    endTime:  20200328
    alarmTypes: "3,13,14,29,30,157,158,0,1,2,18,19,2011,2012,20,2111,2112,21,2211,2212,22,23,15,148,149,164,24,25,26,27,28,31,4,5,6,7,8,9,10,11,12,16,17,651,652,653,661,662,663,14303,14301,14300,14302,14304,14305,14306,681,682,701,1321,702,683,67,124,12411,14411,125,126,1271,1272,130,128,131,129,77,75,147,76,7211,7212,7311,7312,11911,11912,151,150,82,7702,7703,79,81,32,118,11511,11512,11611,11612,123,1111,1112,113,114,107,106,104,105,108,109,18712,18715,18710,18716,18717,18714,18711,18713"
request:
    headers:
        'cache-control': "no-cache"
    params:
        monitorIds: ${monitorIds}
        startTime: "${startTime}000000"
        endTime: "${endTime}235959"
        alarmTypes: ${alarmTypes}
    method: 'POST'
    url: '${base_url}/api/alarm/count/type'
validate:
    - eq: ["status_code",200]
    - eq: ["content.code",10000]
    - contains: ["content.message",$message]

改源碼設想:通過判斷字符串是否是純數字,是純數據則轉換爲int

str1="999"
if(str1.isdecimal()):
    str1=int(str1)

直接將比較關鍵字- eq 改爲- str_eq可解決此問題

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章