python+ unittest+断言

该博客展示了如何使用Python的requests库对天气预报API进行POST请求,获取并解析返回的JSON数据。测试用例包括对北京和南京的天气查询,检查返回的状态码、消息及城市信息,并进行了断言验证。
摘要由CSDN通过智能技术生成

接口返回:

“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”
}
}

代码:

coding=utf-8
 import requests
 import unittest
#4.编写测试用例和断言
 class TestWeather(unittest.TestCase):          '''测试天气预报接口'''       # 此注释将展示到测试报告的测试组类
         def test_beijin_weather(self):                         '''查询北京天气预报'''         # 此注释将展示到测试报告的用例标题
       
         url = "https://www.apiopen.top/weatherApi"

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

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

注:本贴主要学习作用,如有侵权,请联系我删帖,并道歉谢谢!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值