接口测试的一般步骤
- 先有对应的测试文档。
- 根据文档上的定义
- 请求地址 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"}
postman操作

