接口测试单排日记-2020/4/18-Python&unittest接口测试

可以根据接口文档进行接口测试,如果接口文档不全的话,可以使用Fiddler抓包,进行接口测试

接口文档

在这里插入图片描述

接口中心

接口中心申请接口
在这里插入图片描述

JSON返回示例:

{
    "resultcode": "200",
    "reason": "查询成功!",
    "result": {
        "sk": {	/*当前实况天气*/
            "temp": "21",	/*当前温度*/
            "wind_direction": "西风",	/*当前风向*/
            "wind_strength": "2级",	/*当前风力*/	
            "humidity": "4%",	/*当前湿度*/
            "time": "14:25"	/*更新时间*/
        },
        "today": {
            "city": "天津",
            "date_y": "2014年03月21日",
            "week": "星期五",
            "temperature": "8℃~20℃",	/*今日温度*/
            "weather": "晴转霾",	/*今日天气*/
            "weather_id": {	/*天气唯一标识*/
                "fa": "00",	/*天气标识00:晴*/
                "fb": "53"	/*天气标识53:霾 如果fa不等于fb,说明是组合天气*/
            },
            "wind": "西南风微风",
            "dressing_index": "较冷", /*穿衣指数*/
            "dressing_advice": "建议着大衣、呢外套加毛衣、卫衣等服装。",	/*穿衣建议*/
            "uv_index": "中等",	/*紫外线强度*/
            "comfort_index": "",/*舒适度指数*/
            "wash_index": "较适宜",	/*洗车指数*/
            "travel_index": "适宜",	/*旅游指数*/
            "exercise_index": "较适宜",	/*晨练指数*/
            "drying_index": ""/*干燥指数*/
        },
        "future": [	/*未来几天天气*/
            {
                "temperature": "28℃~36℃",
                "weather": "晴转多云",
                "weather_id": {
                    "fa": "00",
                    "fb": "01"
                },
                "wind": "南风3-4级",
                "week": "星期一",
                "date": "20140804"
            },
            {
                "temperature": "28℃~36℃",
                "weather": "晴转多云",
                "weather_id": {
                    "fa": "00",
                    "fb": "01"
                },
                "wind": "东南风3-4级",
                "week": "星期二",
                "date": "20140805"
            },
            {
                "temperature": "27℃~35℃",
                "weather": "晴转多云",
                "weather_id": {
                    "fa": "00",
                    "fb": "01"
                },
                "wind": "东南风3-4级",
                "week": "星期三",
                "date": "20140806"
            },
            {
                "temperature": "27℃~34℃",
                "weather": "多云",
                "weather_id": {
                    "fa": "01",
                    "fb": "01"
                },
                "wind": "东南风3-4级",
                "week": "星期四",
                "date": "20140807"
            },
            {
                "temperature": "27℃~33℃",
                "weather": "多云",
                "weather_id": {
                    "fa": "01",
                    "fb": "01"
                },
                "wind": "东北风4-5级",
                "week": "星期五",
                "date": "20140808"
            },
            {
                "temperature": "26℃~33℃",
                "weather": "多云",
                "weather_id": {
                    "fa": "01",
                    "fb": "01"
                },
                "wind": "北风4-5级",
                "week": "星期六",
                "date": "20140809"
            },
            {
                "temperature": "26℃~33℃",
                "weather": "多云",
                "weather_id": {
                    "fa": "01",
                    "fb": "01"
                },
                "wind": "北风4-5级",
                "week": "星期日",
                "date": "20140810"
            }
        ]
    },
    "error_code": 0
}

错误码参照
在这里插入图片描述
在这里插入图片描述

Python接口测试

请求方式为Get,请求正确:

# 导包
import requests

# 给接口地址定义变量名称
url = "http://v.juhe.cn/weather/index"
# 客户端要发送的参数
para = {"cityname": "北京", "key": "b0a86882e810768fe4121d1ad72838b0"}

# 发送请求,请求方式为get
r = requests.get(url, params=para)

# 打印状态码
print('状态码:', r.status_code)
# 打印json数据
print(r.json())
# 打印json数据中的信息
res = r.json()
print('状态:', res["reason"])
print('天气:', res["result"]['today']["weather"])
print('错误码:', res["error_code"])

在这里插入图片描述

请求方式为post,请求正确:

import requests
url ="http://v.juhe.cn/weather/ip"
# para = {"ip":"58.215.185.154","key":"221ec2c9d854d2859310ea808cb760fd"}
para = {"ip":"58.215.185","key":"221ec2c9d854d2859310ea808cb760fd"}
# 发送post请求
r = requests.post(url,data=para)
# 获取json数据
res = r.json()
print(res)
# print(res["reason"])
print(res["error_code"])

请求方式为Get,请求错误:

# 导包
import requests

# 给接口地址定义变量名称
url = "http://v.juhe.cn/weather/index"
# 客户端要发送的参数
para = {"cityname": "未知地区", "key": "b0a86882e810768fe4121d1ad72838b0"}

# 发送请求,请求方式为get
r = requests.get(url, params=para)

# 打印状态码
print('状态码:', r.status_code)
# 打印json数据
print(r.json())
# 打印json数据中的信息
res = r.json()
print('状态:', res["reason"])
print('天气:', res["result"]['today']["weather"])
print('错误码:', res["error_code"])

在这里插入图片描述
在这里插入图片描述

Python&unittest接口测试

在这里插入图片描述

读取xlsx表数据

import xlrd
# #打开excel
# book = xlrd.open_workbook("../Data/data1.xlsx")
# #定位sheet表
# table = book.sheet_by_name("Sheet1")
# print(table.nrows)
# print(table.ncols)
# table.nrows #统计有多少行
# table.ncols #统计列数
# table.row_values(0)#获取第一行数据
# print(table.row_values(0))
class Read_Ex():
    def read_excel(self,path):
        #打开excel表
        book = xlrd.open_workbook(path)
        #找到sheet页
        table = book.sheet_by_name("Sheet1")
        #获取总行数总列数
        row_Num = table.nrows
        col_Num = table.ncols

        s =[]
        key =table.row_values(0)# 这是第一行数据,作为字典的key值

        if row_Num <= 1:
            print("没数据")
        else:
            j = 1
            for i in range(row_Num-1):
                # print(i)
                d ={}
                values = table.row_values(j)
                for x in range(col_Num):
                    # print(values)
                    d[key[x]]=values[x]
                j+=1
                s.append(d)
            return s

if __name__ == '__main__':
    r = Read_Ex()
    s=r.read_excel('../Data/data2.xlsx')
    print(s)

使用unittest断言,预期结果与实际返回结果做断言

import requests
import unittest
from Commonlib.ReadExc import Read_Ex


class Test_Tq(unittest.TestCase):
    def setUp(self):
        print("开始")

    def tearDown(self):
        print("结束")

    def test01(self):
        res1 = Read_Ex()
        data = res1.read_excel('data2.xlsx')
        for i in data:
            # 接口地址
            url = "http://v.juhe.cn/weather/index"
            # 构造数据
            para = {"cityname": i["cityname"], "key": i["key"]}
            res = requests.get(url, params=para)
            r = res.json()
            # r["reason"]
            # self.assertEqual(r["reason"],"查询成功!")

            self.assertEqual(r["error_code"], int(i["exp"]))


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

在这里插入图片描述

错误结果测试
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值