断言是判定用例是否达到测试标准,验证实际结果是否与预期结果一致的关建锁。

在接口测试、GUI自动化测试,接口自动化测试时自动校验结果适合做大批量重复的判断时使用。

Python做接口测试的断言

1.1 Python内置断言方式——assert( )

语法:assert boolean [,arguments] 其中arguments参数设置为异常信息的解释

示例:

(1)assert 'a' == b

(2)assert len(lists) >= 20 , '列表信息小于20个'

(3)assert '请求成功' in response.text , "请求失败,请检查入参和请求头"

(4)assert response.Json().message == "OK" ,"统一标识符检验失败"

1.2 unittest框架独有断言方式

该框架需要引用unittest,以及类继承unittest.TestCase,使用方式为self.assertXXX( )

接口测试零基础入门(接口测试在不同工具下如何做断言)(1)

常用断言的说明:

(1)assertIn(a,b) 校验a是b的子串

(2)assertIs(a,b) 校验a和b是同一个对象

(3)assertTrue(x) 校验x为True

(4)assertFalse(x) 校验x为False

(5)assertEqual(a,b) 校验a等于b

(6)assertNotEqual(a,b) 校验不等于b

(7)assertIsNot(a,b) 校验a和b不是同一个对象

(8)assertIsNone(x) 校验x是None

(9)assertIsNotNone(x) 校验x不是None

(10)assertNotIn(a,b) 校验a不是b的自串

(11) isinstance(a,b) 校验a对象是b类的实例

(12)not isinstance(a,b) 校验a不是b的实例

(13)assertRegex(s, r) 校验r.search(s)

(14)assertNotRegex(s, r) 校验not r.search(s)

(15)assertListEqual(a, b) 校验list列表类型的a和b内容一致

(16)assertTupleEqual(a, b) 校验tuple元组类型的a和b内容一致

(17)assertSetEqual(a, b) 校验set集合类型的a和b内容一致

(18)assertMultiLineEqual(a, b) 校验string类型的a和b内容一致

Jmeter做接口测试的断言

Jmeter接口测试中实现数据库断言

在请求接口下添加断言:

接口测试零基础入门(接口测试在不同工具下如何做断言)(2)

比如选择Response Assertion,然后进行具体的断言配置

接口测试零基础入门(接口测试在不同工具下如何做断言)(3)

最后在接口请求下添加观察结果树、断言结果等监听组件

接口测试零基础入门(接口测试在不同工具下如何做断言)(4)

查看断言结果展示的情况

接口测试零基础入门(接口测试在不同工具下如何做断言)(5)

接口测试零基础入门(接口测试在不同工具下如何做断言)(6)

postman做接口测试的断言

postman上的快捷断言Tests

接口测试零基础入门(接口测试在不同工具下如何做断言)(7)

常用断言方式:学会几种断言,才算掌握了postman

Postman接口测试工具如何发送请求、断言以及请求数据参数化

(1)响应状态码断言:验证响应结果的状态码是否为200

pm.test("校验响应码为200", function () {

pm.response.to.have.status(200);

});

(2)响应String断言:校验响应内容String包含某字符串

pm.test("响应结构包含操作成功", function () {

pm.expect(pm.response.text()).to.include("操作成功");

});

(3)响应统一返回标识符断言:校验响应json格式的某个字段等于OK

pm.test("统一返回标识符为OK", function () {

var jsonData = pm.response.json();

pm.expect(jsonData.message).to.eql("OK");

});

(4)响应时间断言:响应的时间是否小于1000毫秒

pm.test("响应时间小于1000ms", function () {

pm.expect(pm.response.responseTime).to.be.below(1000);

});

(5)响应头断言:响应头信息是否包含某个字段

pm.test("响应头包含Content-Type字段", function () {

pm.response.to.have.header("Content-Type");

});

,