如何制作中山地区的专业网站?
摘要:中山网站建设制作 .超凡科技,h5网页制作视频教程,网站开发 周期,网站域名如何从代理商那里转出来前言 断言是完整的测试用例中不可或缺的因素,用例只有加入断言,将实际结果与预期结果
中山网站建设制作 .超凡科技,h5网页制作视频教程,网站开发 周期,网站域名如何从代理商那里转出来前言
断言是完整的测试用例中不可或缺的因素#xff0c;用例只有加入断言#xff0c;将实际结果与预期结果进行比对#xff0c;才能判断它的通过与否。
unittest 框架提供了其特有的断言方式#xff0c;如#xff1a;assertEqual、assertTrue、assertIn等#xff0c;py…前言
断言是完整的测试用例中不可或缺的因素用例只有加入断言将实际结果与预期结果进行比对才能判断它的通过与否。
unittest 框架提供了其特有的断言方式如assertEqual、assertTrue、assertIn等pytest 同样有自己的断言方式即使用assert进行断言。
assert
pytest 中使用python源生态assert字段进行断言。
常用断言方式
pytest常用的断言方式如下
判断是否相等assert Actual(实际结果) Expected(期望结果)判断是否不相等assert Actual ! Expected其他如 、、、 都可直接使用。判断xx是否为真assert xx判断xx是否不为真assert not xx判断b是否包含aassert a in b判断b不包含aassert a not in b
assert 断言的对象可以是字符串、int、float、list、dict、tuple 任一类型。
使用示例
自定义了一个查询所有用户信息接口返回参数格式如下
{code: 1000,data: [{id: 1, username: 刘德华, sex: 0, telephone: 12306, address: 香港九龙区},{id: 2, username: 梅艳芳, sex: 1, telephone: 95511, address: 上海黄浦区},{id: 3, username: 陈百强, sex: 0, telephone: 10086, address: 北京海淀区},]
}用例断言如下
def test_get_all_users():查询所有用户信息url http://127.0.0.1:5000/usersres requests.get(urlurl).textres json.loads(res)# 断言是否相等assert res[code] 1000# 断言返回结果中data是否为True这里其实就是判断是否为空assert res[data]Andy {id: 1, username: 刘德华, sex: 0, telephone: 12306, address: 香港九龙区}# 断言返回结果中data是否包含刘德华的信息assert Andy in res[data]断言通过 我们修改一下脚本让断言不通过如下
def test_get_all_users():查询所有用户信息url http://127.0.0.1:5000/usersres requests.get(urlurl).textres json.loads(res)# 断言是否相等assert res[code] 1001# 断言返回结果中data是否为True这里其实就是判断是否为空assert not res[data]Andy {id: 1, username: 刘德华, sex: 0, telephone: 12306, address: 香港九龙区}# 断言返回结果中data是否包含刘德华的信息assert Andy not in res[data]运行结果如下 可以看到code 的 Actual 为1000而 Excepted 为1001所以断言直接报错不继续执行后面的代码。
断言结果添加异常信息
我们可以在断言异常的时候输出一些提示信息这样断言报错后可以方便我们查看原因。
自定义的用户信息接口可以查询某个用户的信息对它编写测试脚本如下
def test_get_user():查询所有用户信息url http://127.0.0.1:5000/users/1res requests.get(urlurl).textres json.loads(res)assert res[code] 1000assert res[data][username] 张学友, 判断返回是否为张学友实际返回{}.format(res[data][username])运行结果如下 总结
pytest 还能对执行过程中产生的 Exception 及 Warnning 进行断言但这些情况在我们的测试中很少会用到所以不做过多阐述。
