可以根据接口文档进行接口测试,如果接口文档不全的话,可以使用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()
错误结果测试