【屬性介紹】
config
在這里進行配置,對當前測試類中的所有用例都有效。
官方demo
from httprunner import HttpRunner, Config, Step, RunRequest, RunTestCase
class TestCaseRequestWithFunctions(HttpRunner): config = ( Config("request methods testcase with functions") .variables( **{ "foo1": "config_bar1", "foo2": "config_bar2", "expect_foo1": "config_bar1", "expect_foo2": "config_bar2", } ) .base_url("http://demo.qa.com") .verify(False) .export(*["foo3"]) ) teststeps = [ Step( RunRequest("get with params") .with_variables( **{"foo1": "bar11", "foo2": "bar21", "sum_v": "${sum_two(1, 2)}"} ) .get("/get") .with_params(**{"foo1": "$foo1", "foo2": "$foo2", "sum_v": "$sum_v"}) .with_headers(**{"User-Agent": "HttpRunner/${get_httprunner_version()}"}) .extract() .with_jmespath("body.args.foo2", "foo3") .validate() .assert_equal("status_code", 200) .assert_equal("body.args.foo1", "bar11") .assert_equal("body.args.sum_v", "3") .assert_equal("body.args.foo2", "bar21") ), Step( RunRequest("post form data") .with_variables(**{"foo2": "bar23"}) .post("/post") .with_headers( **{ "User-Agent": "HttpRunner/${get_httprunner_version()}", "Content-Type": "application/x-www-form-urlencoded", } ) .with_data("foo1=$foo1&foo2=$foo2&foo3=$foo3") .validate() .assert_equal("status_code", 200) .assert_equal("body.form.foo1", "$expect_foo1") .assert_equal("body.form.foo2", "bar23") .assert_equal("body.form.foo3", "bar21") ), ] if __name__ == "__main__": TestCaseRequestWithFunctions().test_start()
name (必選)
指定測試用例名稱,在日志和測試報告中為展示該名稱。
base_url (可選)
指定被測系統的 host 部分,例如 https://postman-echo.com
。如果指定了 base_url,則 teststep 中的 url 只能設置相對路徑部分。這對於在不同的測試環境中切換非常有用。
variables (可選)
指定測試用例的公共變量。每個測試步驟都可以引用這里設置的變量,當然在測試步驟中也可以設置步驟級別的變量。如果測試步驟和測試用例同時設置了變量屬性,則以步驟為准。
變量,這里可以存放一些公共的變量,可以在測試用例里引用。這里大家可以記住這個“公共”的詞眼,因為在后面的Step中,還會有步驟變量。
比如說,我的接口有個傳參是不變的,比如用戶名username,而且后面的每個Step都會用到這個傳參,那么username就可以放在config的公共變量里。
另外,Step里的變量優先級是比config里的變量要高的,如果有2個同名的變量的話,那么引用的時候,是優先引用步驟里的變量的。
verify (可選)
指定是否驗證服務器的 TLS 證書。如果我們想記錄測試案例執行的 HTTP 請求內容,就需要設置。如果沒有設置 verify 屬性或者值不為 True,則會發生 SSLError。
通常設置為False,當請求https請求時,就會跳過驗證。如果你運行時候發現拋錯SSLError,可以檢查一下是不是verify沒傳,或者設置了True。
SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate in certificate chain (_ssl.c:1076)'))
export (可選)
這里的導出,主要是為了關聯做准備。
比如一個用例的某些響應字段需要在其他的用例中使用時,或者在同一個用例中,某個步驟的結果字段會被另外的結果字段引用,可以將需要提取的字段變量放在 config 的 export 部分。
導出的變量,主要是用於Step之間參數的傳遞。還是以上面的官方代碼為例:
- 在config中配置export“foo3”這個變量。
- 在第一個Step中,.extract() 提取了"body.args.foo2"給變量“foo3”。
- 在第二個Step中,引用變量"foo3"。