python 接口断言的方法_python接口自动化(二十四)--unittest断言——中(详解)...

本文转载自: https://www.cnblogs.com/du-hong/p/10766311.html

简介

上一篇通过简单的案例给小伙伴们介绍了一下unittest断言,这篇我们将通过结合和围绕实际的工作来进行unittest的断言。这里以获取城市天气预报的接口为例,设计了 2 个用例,一个是查询北京的天气,一个是查询

南京为例,你也可以查询别的城市的天气预报。

接口文档

1、在实际工作中,开发人员都会给你接口文档方便QA测试,和其他系统的开发人员对接。接口文档如下:

天气预报

获取实时天气

请求方式:POST

请求地址:https://www.apiopen.top/weatherApi

Query参数名类型必需描述示例 e.g.

city

string

城市名称

成都

返回示例:

{

"code": 200,

"msg": "成功!",

"data": {

"yesterday": {

"date": "14日星期五",

"high": "高温 7℃",

"fx": "无持续风向",

"low": "低温 4℃",

"fl": "",

"type": "阴"

},

"city": "成都",

"aqi": "89",

"forecast": [

{

"date": "15日星期六",

"high": "高温 10℃",

"fengli": "",

"low": "低温 2℃",

"fengxiang": "无持续风向",

"type": "多云"

},

{

"date": "16日星期天",

"high": "高温 15℃",

"fengli": "",

"low": "低温 3℃",

"fengxiang": "无持续风向",

"type": "晴"

},

{

"date": "17日星期一",

"high": "高温 14℃",

"fengli": "",

"low": "低温 5℃",

"fengxiang": "无持续风向",

"type": "晴"

},

{

"date": "18日星期二",

"high": "高温 11℃",

"fengli": "",

"low": "低温 6℃",

"fengxiang": "无持续风向",

"type": "多云"

},

{

"date": "19日星期三",

"high": "高温 12℃",

"fengli": "",

"low": "低温 6℃",

"fengxiang": "无持续风向",

"type": "多云"

}

],

"ganmao": "昼夜温差较大,较易发生感冒,请适当增减衣服。体质较弱的朋友请注意防护。",

"wendu": "9"

}

}

2、如果没有你可以自己通过fiddler抓包获取参数和接口URL,以及请求方式 。

设计测试用例

1、针对以上接口,设计两个城市接口测试用例

f228230b7a4e7dda2b8681cdd305f364

2、运行接口用例结果

5695b1b133884b54193c8dfde1ea1279

3、参考代码

1 # coding=utf-8

2 #1.先设置编码,utf-8可支持中英文,如上,一般放在第一行3

4 #2.注释:包括记录创建时间,创建人,项目名称。5 '''6 Created on 2019-4-26

7 @author: 北京-宏哥8 Project:学习和使用unittest框架编写断言-中篇9 '''10 #3.导入requests和unittest模块11 import requests12 import unittest13 #4.编写测试用例和断言14 classTestWeather(unittest.TestCase):15 '''测试天气预报接口'''# 此注释将展示到测试报告的测试组类16 def test_beijin_weather(self):17 '''查询北京天气预报'''# 此注释将展示到测试报告的用例标题18 url = "https://www.apiopen.top/weatherApi"

19

20 par ={21 "city": "北京", # 城市名22 }23 r = requests.post(url, params=par)24 print(r.text) # 获取返回的结果25 result = r.json()['code'] #获取状态码26 print(result)27 # 断言28 self.assertEqual(200, result)29 self.assertIn('msg', r.text)30 self.assertTrue('北京'inr.text)31 def test_nanjin_weather(self):32 '''查询南京天气预报'''# 此注释将展示到测试报告的用例标题33 url = "https://www.apiopen.top/weatherApi"

34 par ={35 "city": "南京", # 城市名36 }37 r = requests.post(url, params=par)38 print(r.text) # 获取返回的结果39 result = r.json()['code']#获取状态码40 print(result)41 # 断言42 self.assertEqual(200, result)43 self.assertIn('msg', r.text)44 self.assertTrue('南京' inr.text)45

46 if __name__ == "__main__":47 unittest.main()

小结

1、实际中的接口和这个也差不多,你可以增加没有这个城市的等等测试用例,可根据实际需要增加多个测试用例全面的断言。

2、实际开发或者测试工作中经常用到json数据,那么就会有这样一个需求:在谷歌浏览器中访问URL地址返回的json数据能否按照json格式展现出来。

展现效果如下:

d0d97203cb59b75e81983b81df3845d5

那么安装了JsonView扩展程序后的展现效果如下:

65215c450129323acf5cdd34bae91366

很明显,后者的效果更好。实现步骤如下:

1、下载JsonView扩展程序压缩包

点击【Clone or download】——【Download Zip】

39c8ed49be4f1d860a39da87aa4f31c0

2、解压这个压缩包

3fb53c8080e65334655670bf5f350a0b

3、打开谷歌浏览器的扩展程序界面

方式一:在谷歌浏览器地址栏中输入:chrome://extensions/

方式二:

f758b9a5762d012d4c568331fd22b5c8

4、加载JsonView扩展程序

选中开发者模式,点击【加载正在开发的扩展程序…】,选择插件目录(D:\JSONView-for-Chrome-master\WebContent)

1d7563c10da03996915a12a4e3e5562c

点击确定后,就安装上了。安装后界面如下:

d529a7b16d658275d299462c3e607b1c

安装完成,重新加载 (Ctrl+R)。本文转载自: https://www.cnblogs.com/du-hong/p/10766311.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值