diff --git a/README.md b/README.md index 8d4d453..498ecea 100644 --- a/README.md +++ b/README.md @@ -192,7 +192,28 @@ case_info: 具体的用例数据,是以列表的形式进行管理 cookies: response.cookies ``` -### 6. 响应断言说明 +### 6. 断言方式 +以下是支持的几种断言方式: +| 断言方式 | 说明 | +| ------------ | ------------ | +| == | 相等,判断预期结果是否等于实际结果 | +| lt | 小于, 判断预期结果是否小于实际结果 | +| le | 小于等于, 判断预期结果是否小于等于实际结果 | +| gt | 大于, 判断预期结果是否大于实际结果 | +| ge | 大于等于,判断预期结果是否大于等于实际结果 | +| not_eq | 不相等,判断预期结果是否不等于实际结果 | +| str_eq | 字符串相等,判断预期结果是否等于实际结果 | +| len_eq | 长度等于,判断预期结果是否等于实际结果的长度 | +| len_gt | 长度大于,判断预期结果是否大于实际结果的长度 | +| len_ge | 长度大于等于,判断预期结果是否大于等于实际结果的长度 | +| len_lt | 长度小于,判断预期结果是否小于实际结果的长度 | +| len_le | 长度小于等于,判断预期结果是否小于等于实际结果的长度 | +| contains | 包含,判断预期结果内容被实际结果包含, 预期结果 in 实际结果 | +| contained_by | 被包含,判断预期结果包含实际结果, 实际结果 in 预期结果 | +| startswith | 以什么开头,判断实际结果是否是以预期结果开头的 | +| endswith | 以什么结尾,判断实际结果是否是以预期结果结尾的 | + +### 7. 响应断言说明 #### 断言状态码 如果想要断言接口响应码,直接这样写即可: 参考示例: @@ -202,6 +223,7 @@ case_info: 具体的用例数据,是以列表的形式进行管理 ``` #### 响应数据断言 + 响应断言的参数说明: ``` 断言标识(自定义,不为空即可,没有实际的意义): @@ -232,7 +254,7 @@ case_info: 具体的用例数据,是以列表的形式进行管理 type_jsonpath: $.user_id ``` -### 7. 数据库断言说明 +### 8. 数据库断言说明 数据库断言的参数说明: ``` 断言标识(自定义,不为空即可,没有实际的意义): @@ -268,7 +290,7 @@ case_info: 具体的用例数据,是以列表的形式进行管理 ``` -### 8. Excel用例单独说明 +### 9. Excel用例单独说明 框架支持excel多表单自动生成测试用例,每一个表单作为一个测试用例模块。 例如: excel表格名称是:test_demo.xlsx @@ -348,11 +370,8 @@ excel表单2名称是:示例模块 - [如何提取响应数据作为全局变量并使用?](https://www.gitlink.org.cn/zone/tester/newdetail/237) 在测试过程中,通常下一个接口需要用到上一个接口的响应数据,这个时候就涉及到参数的提取。 -- [如何进行响应数据断言?](https://www.gitlink.org.cn/zone/tester/newdetail/239) -目前支持5种响应断言方式:eq, in, gt, lt, not。 - -- [如何进行数据库断言?](https://www.gitlink.org.cn/zone/tester/newdetail/240) -目前暂时支持两种数据库断言方式:len, eq。其他方式待扩展。 +- [如何进行响应数据断言以及数据库断言?](https://www.gitlink.org.cn/zone/tester/newdetail/239) +目前支持的断言方式:==, lt, le, gt, ge, not_eq, str_eq, len_eq, len_gt, len_ge, len_lt, len_le, contains, contained_by, startswith, endswith - [如何配置邮箱通知?](https://www.gitlink.org.cn/zone/tester/newdetail/242) 我们通过第三方模块yagmail发送邮件。 @@ -366,6 +385,6 @@ excel表单2名称是:示例模块 ## 九、初始化项目可能遇到的问题 -- [测试机安装的是python3.7,但是本框架要求3.9.5,怎么办?](https://www.gitlink.org.cn/zone/tester/newdetail/245) +- [测试机安装python版本与本框架要求不一致,怎么办?](https://www.gitlink.org.cn/zone/tester/newdetail/245) - [无法安装依赖包或者安装很慢,怎么办?](https://www.gitlink.org.cn/zone/tester/newdetail/244) diff --git a/utils/assertion_utils/assert_function.py b/utils/assertion_utils/assert_function.py index c3e01e8..f9e8d0d 100644 --- a/utils/assertion_utils/assert_function.py +++ b/utils/assertion_utils/assert_function.py @@ -88,7 +88,7 @@ def length_greater_than(expect_value: Union[int, float], actual_value: Text, mes assert isinstance( expect_value, (float, int) ), "expect_value 需要为 float/int 类型" - assert len(str(actual_value)) > expect_value, message + assert expect_value > len(str(actual_value)), message @allure.step("长度大于等于 --> 预期结果:{expect_value} >= 实际结果:{actual_value}") @@ -125,7 +125,7 @@ def length_less_than_or_equals(expect_value: Union[int, float], actual_value: Te @allure.step("预期结果:{expect_value} in 实际结果:{actual_value}") def contains(expect_value: Any, actual_value: Any, message: Text = ""): """ - 判断预期结果内容包含在实际结果中 + 判断预期结果内容被实际结果包含 """ assert isinstance( actual_value, (list, tuple, dict, str, bytes) @@ -133,10 +133,10 @@ def contains(expect_value: Any, actual_value: Any, message: Text = ""): assert expect_value in actual_value, message -@allure.step("实际结果:{expect_value} in 预期结果:{actual_value}") +@allure.step("实际结果:{actual_value} in 预期结果:{expect_value}") def contained_by(expect_value: Any, actual_value: Any, message: Text = ""): """ - 判断实际结果包含在预期结果中 + 判断预期结果包含实际结果 """ assert isinstance( actual_value, (list, tuple, dict, str, bytes)