HttpRunner4.x поддерживает два метода (jmespath и обычный) для извлечения возвращаемых результатов и имеет богатые встроенные методы для проверки результатов.
Методы проверки, поддерживаемые validate
assert | аббревиатура | Функция |
---|---|---|
equal | “eq”, “equals”, “equal” | равный |
less_than | “lt”, “less_than” | меньше, чем |
less_or_equals | “le”, “less_or_equals” | меньше, или равен |
greater_than | “gt”, “greater_than” | больше, чем |
greater_or_equals | “ge”, “greater_or_equals” | больше, или равен |
not_equal | “ne”, “not_equal” | не равен |
string_equals | “str_eq”, “string_equals” | превратиться в нитьравный |
length_equal | “len_eq”, “length_equal” | длинаравный |
length_greater_than | “len_gt”,”length_greater_than” | длинабольше, чем |
length_greater_or_equals | “len_ge”,”length_greater_or_equals” | длинабольше, или равен |
length_less_than | “len_lt”, “length_less_than” | длинаменьше, чем |
length_less_or_equals | “”len_le”, “length_less_or_equals” | длинаменьше, или равен |
contains | check_value содержит ожидаемое_значение | |
contained_by | ожидаемое_значение содержит контрольное_значение | |
type_match | тип соответствие типа | |
regex_match | Обычное сопоставление re.match(expect_value, check_value) | |
startswith | Строка начинается с xx | |
endswith | Строка заканчивается на xx |
Существует два формата результатов проверки httprunner:
{"assert_name": [check_value, expect_value]}
{"check": check_value, "assert": assert_name, "expect": expect_value, "message": check status code}
Первый метод проверки — тот, который обычно использовался ранее.
validate:
- eq: [status_code, 200]
- eq: [body.url, "http://httpbin.org/post"]
- eq: [body.origin, "183.193.27.78"]
- eq: [headers."Content-Type", "application/json"]
Второй способ проверки
validate:
- check: status_code # контрольно-пропускные пункты, поддержка jmespath Регулярное извлечение
assert: eq # режим утверждения
expect: 200 # ожидаемый результат
message: check status code # Необязательно, запрос в случае сбоя проверки
(Примечание: во Второй способ проверки внесены некоторые изменения по сравнению с версией httprunner3.x.,Предыдущий формат проверки был{"check": check_value, "comparator": comparator_name, "expect": expect_value}
теперь изменилось на{"check": check_value, "assert": assert_name, "expect": expect_value, "message": check status code}
Общий «компаратор» Ключевое слово изменено на “assert”, Ключевое слово «сообщение» не имеет значения и малоэффективно.
)
Пример использования
config:
name: Результат проверки
teststeps:
-
name: post
variables:
username: test456
request:
method: POST
url: http://httpbin.org/post
json:
username: ${username}
password: "123456"
extract:
url: body.url
origin: body.origin
type: headers."Content-Type"
validate:
- check: status_code
assert: eq
expect: 200
- check: body.url
assert: eq
expect: "http://httpbin.org/postx"
message: Проверьте значение URL тела
Об определениях функций contains и contains_by
Пример использования
config:
name: Результат проверки
teststeps:
-
name: post
variables:
username: test456
request:
method: POST
url: http://httpbin.org/post
json:
username: ${username}
password: "123456"
extract:
url: body.url
validate:
- eq: [status_code, 200]
- contains: ["${url}", "httpbin.org/post"]