接口测试的一般步骤
- 先有对应的测试文档。
- 根据文档上的定义
- 请求地址 URL
- 请求方式 GET,POST。。。。
- 请求参数:
- 服务器响应结果(预期结果)
- 使用工具Postman 将这些内容输入进去,查看服务器返回的结果是否正确
用户认证问题
在一些商业应用中,API调用都需要用到用户的信息认证,
常用的认证方式
- token 令牌的方式
- appcode app密钥认证
postman 发送get请求
前提条件
AppCode:36a6d64593884af1971d218d14a23f9d
天气预报接口
查询天气信息
接口地址: http://jisutqybmf.market.alicloudapi.com/weather/query
请求方式: GET
请求参数(Headers):
Authorization | APPCODE 36a6d64593884af1971d218d14a23f9d |
---|---|
请求参数(Query):
名称 | 类型 | 是否必须 | 描述 |
---|---|---|---|
city | STRING | 可选 | 城市(city,cityid,citycode三者任选其一) |
citycode | STRING | 可选 | 城市天气代号(city,cityid,citycode三者任选其一) |
cityid | STRING | 可选 | 城市ID(city,cityid,citycode三者任选其一) |
ip | STRING | 可选 | IP |
location | STRING | 可选 | 经纬度 纬度在前,,分割 如:39.983424,116.322987 |
请求参数(Body): 无
返回结果:
{
"status": 0,
"msg": "ok",
"result": {
"city": "上海",
"cityid": 24,
"citycode": 101020100,
"date": "2021-09-28",
"week": "星期二",
"weather": "多云",
"temp": "29",
"temphigh": "32",
"templow": "24",
"img": "1",
"humidity": "64",
"pressure": "1012",
"windspeed": "1.8",
"winddirect": "西北风",
"windpower": "2级",
"updatetime": "2021-09-28 10:19:00",
"index": [
{
"iname": "空调指数",
"ivalue": "部分时间开启",
"detail": "天气热,到中午的时候您将会感到有点热,因此建议在午后较热时开启制冷空调。"
},
{
"iname": "运动指数",
"ivalue": "较适宜",
"detail": "天气较好,但因气温较高且风力较强,请适当降低运动强度并注意户外防风。推荐您进行室内运动。"
},
{
"iname": "紫外线指数",
"ivalue": "中等",
"detail": "属中等强度紫外线辐射天气,外出时建议涂擦SPF高于15、PA+的防晒护肤品,戴帽子、太阳镜。"
},
{
"iname": "感冒指数",
"ivalue": "少发",
"detail": "各项气象条件适宜,发生感冒机率较低。但请避免长期处于空调房间中,以防感冒。"
},
{
"iname": "洗车指数",
"ivalue": "较适宜",
"detail": "较适宜洗车,未来一天无雨,风力较小,擦洗一新的汽车至少能保持一天。"
},
{
"iname": "空气污染扩散指数",
"ivalue": "良",
"detail": "气象条件有利于空气污染物稀释、扩散和清除,可在室外正常活动。"
},
{
"iname": "穿衣指数",
"ivalue": "炎热",
"detail": "天气炎热,建议着短衫、短裙、短裤、薄型T恤衫等清凉夏季服装。"
}
],
"aqi": {
"so2": "8",
"so224": "0",
"no2": "33",
"no224": "0",
"co": "0.710",
"co24": "0.000",
"o3": "67",
"o38": "0",
"o324": "0",
"pm10": "47",
"pm1024": "0",
"pm2_5": "31",
"pm2_524": "0",
"iso2": "3",
"ino2": "17",
"ico": "8",
"io3": "22",
"io38": "0",
"ipm10": "46",
"ipm2_5": "44",
"aqi": "46",
"primarypollutant": "PM10",
"quality": "优",
"timepoint": "2021-09-28 09:00:00",
"aqiinfo": {
"level": "一级",
"color": "#00e400",
"affect": "空气质量令人满意,基本无空气污染",
"measure": "各类人群可正常活动"
}
},
"daily": [
{
"date": "2021-09-28",
"week": "星期二",
"sunrise": "05:45",
"sunset": "17:44",
"night": {
"weather": "晴",
"templow": "24",
"img": "0",
"winddirect": "南风",
"windpower": "微风"
},
"day": {
"weather": "多云",
"temphigh": "32",
"img": "1",
"winddirect": "东南风",
"windpower": "微风"
}
},
{
"date": "2021-09-29",
"week": "星期三",
"sunrise": "05:45",
"sunset": "17:43",
"night": {
"weather": "阴",
"templow": "24",
"img": "2",
"winddirect": "西北风",
"windpower": "微风"
},
"day": {
"weather": "多云",
"temphigh": "32",
"img": "1",
"winddirect": "南风",
"windpower": "微风"
}
},
{
"date": "2021-09-30",
"week": "星期四",
"sunrise": "05:46",
"sunset": "17:42",
"night": {
"weather": "多云",
"templow": "21",
"img": "1",
"winddirect": "北风",
"windpower": "微风"
},
"day": {
"weather": "晴",
"temphigh": "29",
"img": "0",
"winddirect": "北风",
"windpower": "微风"
}
},
{
"date": "2021-10-01",
"week": "星期五",
"sunrise": "05:47",
"sunset": "17:40",
"night": {
"weather": "晴",
"templow": "22",
"img": "0",
"winddirect": "东南风",
"windpower": "微风"
},
"day": {
"weather": "晴",
"temphigh": "30",
"img": "0",
"winddirect": "东风",
"windpower": "微风"
}
},
{
"date": "2021-10-02",
"week": "星期六",
"sunrise": "05:47",
"sunset": "17:39",
"night": {
"weather": "晴",
"templow": "23",
"img": "0",
"winddirect": "东南风",
"windpower": "微风"
},
"day": {
"weather": "晴",
"temphigh": "30",
"img": "0",
"winddirect": "东南风",
"windpower": "微风"
}
},
{
"date": "2021-10-03",
"week": "星期日",
"sunrise": "05:48",
"sunset": "17:38",
"night": {
"weather": "晴",
"templow": "24",
"img": "0",
"winddirect": "南风",
"windpower": "微风"
},
"day": {
"weather": "多云",
"temphigh": "30",
"img": "1",
"winddirect": "东南风",
"windpower": "微风"
}
},
{
"date": "2021-10-04",
"week": "星期一",
"sunrise": "05:48",
"sunset": "17:37",
"night": {
"weather": "晴",
"templow": "25",
"img": "0",
"winddirect": "东南风",
"windpower": "微风"
},
"day": {
"weather": "多云",
"temphigh": "30",
"img": "1",
"winddirect": "东南风",
"windpower": "微风"
}
}
],
"hourly": [
{
"time": "10:00",
"weather": "多云",
"temp": "28",
"img": "1"
},
{
"time": "11:00",
"weather": "多云",
"temp": "29",
"img": "1"
},
{
"time": "12:00",
"weather": "多云",
"temp": "30",
"img": "1"
},
{
"time": "13:00",
"weather": "多云",
"temp": "31",
"img": "1"
},
{
"time": "14:00",
"weather": "多云",
"temp": "32",
"img": "1"
},
{
"time": "15:00",
"weather": "多云",
"temp": "32",
"img": "1"
},
{
"time": "16:00",
"weather": "多云",
"temp": "31",
"img": "1"
},
{
"time": "17:00",
"weather": "多云",
"temp": "31",
"img": "1"
},
{
"time": "18:00",
"weather": "晴",
"temp": "30",
"img": "0"
},
{
"time": "19:00",
"weather": "晴",
"temp": "29",
"img": "0"
},
{
"time": "20:00",
"weather": "晴",
"temp": "28",
"img": "0"
},
{
"time": "21:00",
"weather": "晴",
"temp": "27",
"img": "0"
},
{
"time": "22:00",
"weather": "晴",
"temp": "27",
"img": "0"
},
{
"time": "23:00",
"weather": "晴",
"temp": "26",
"img": "0"
},
{
"time": "0:00",
"weather": "晴",
"temp": "26",
"img": "0"
},
{
"time": "1:00",
"weather": "晴",
"temp": "26",
"img": "0"
},
{
"time": "2:00",
"weather": "晴",
"temp": "26",
"img": "0"
},
{
"time": "3:00",
"weather": "晴",
"temp": "26",
"img": "0"
},
{
"time": "4:00",
"weather": "晴",
"temp": "25",
"img": "0"
},
{
"time": "5:00",
"weather": "晴",
"temp": "25",
"img": "0"
},
{
"time": "6:00",
"weather": "晴",
"temp": "26",
"img": "0"
},
{
"time": "7:00",
"weather": "晴",
"temp": "27",
"img": "0"
},
{
"time": "8:00",
"weather": "晴",
"temp": "27",
"img": "0"
},
{
"time": "9:00",
"weather": "晴",
"temp": "29",
"img": "0"
}
]
}
}
请注意!!免费版接口流量限制情况(每个用户ID):30次流控/分钟。
使用postman做接口
- 添加headers
- 添加请求 query信息
测试用例
整理测试点
编写测试用例
编号 | 模块 | 前置条件 | 请求方式 | 请求路径 | 请求参数 | 检查点(预期) | 备注 |
---|---|---|---|---|---|---|---|
001 | 天气预报 | headers中添加 appcode用户认证 | GET | http://jisutqybmf.market.alicloudapi.com/weather/query | city=上海 | “status”: 0, “msg”: “ok”, “city”: “上海”, |
|
需要注意的是:除了正常的业务场景需要进行测试,异常的业务场景也需要进行测试。用例中需要包含如下异常场景;
错误码 | 错误信息 | 描述 |
---|---|---|
201 | City and city ID and city code are empty | 城市和城市ID和城市代号都为空 |
202 | City does not exist | 城市不存在 |
203 | There is no weather information in this city | 此城市没有天气信息 |
210 | No information | 没有信息 |
postman发送post请求
企业微信机器人自动发布消息接口
请求地址:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=e7e82c31-2d04-4ca7-895e-936ae3df57c5
请求方式:POST
请求参数(headers):无
请求参数(query):无
请求参数(body):
数据类型:json类型
{
"msgtype": "text",
"text": {
"content": "上海今日天气:29度,大部分多云,降雨概率:10%",
"mentioned_list":["wangqing","@all"],
"mentioned_mobile_list":["13800001111","@all"]
}
}
body 中的参数说明
参数 | 是否必填 | 说明 |
---|---|---|
msgtype | 是 | 消息类型,此时固定为text |
content | 是 | 文本内容,最长不超过2048个字节,必须是utf8编码 |
mentioned_list | 否 | userid的列表,提醒群中的指定成员(@某个成员),@all表示提醒所有人,如果开发者获取不到userid,可以使用mentioned_mobile_list |
mentioned_mobile_list | 否 | 手机号列表,提醒手机号对应的群成员(@某个成员),@all表示提醒所有人 |
响应结果
{
"errcode": 0,
"errmsg": "ok"
}