Go语言进行简单的接口测试


在正常的测试中,当我们需要进行接口测试时,通常使用接口调试工具,如postman进行接口测试
目前我在尝试使用Go语言进行接口测试,使用的库均为Go自带的
http
库。
注:当前采用的接口为时事新闻接口,每天可以请求100次,需要的同学,可以自行使用。
接口文档说明
  • 接口地址:http://v.juhe.cn/toutiao/index
  • 返回格式:json
  • 请求方式:get/post
  • 请求示例:http://v.juhe.cn/toutiao/index?type=top&key=APPKEY
{
    "国内": "guonei",
    "国际": "guoji",
    "娱乐": "yule",
    "体育": "tiyu",
    "军事": "junshi",
    "科技": "keji",
    "财经": "caijing",
    "时尚": "shishang",
    "游戏": "youxi",
    "汽车": "qiche",
    "健康": "jiankang"
}
名称必填类型说明
keystring接口key
typestring支持类型 top(推荐,默认) 其他字段如上
pageint当前页数, 默认1, 最大50
page_sizeint每页返回条数, 默认30 , 最大30
is_filterint是否只返回有内容详情的新闻, 1:是, 默认0
Go语言基础代码
package main

import (
	"bytes"
	"encoding/json"
	"fmt"
	"io/ioutil"
	"net/http"
)

func main() {
	// POST请求地址
	//urlPost := "http://v.juhe.cn/toutiao/index?"
	// POST请求参数
	//	payload := strings.NewReader(`{
	//		"key": "cbce0769105c8f98e55da6a0a56ad6d0",
	//        "type": "tiyu",
	//        "page": 1,
	//        "page_size": 30,
	//        "is_filter": 0
	//}`)

	// GET请求地址
	url := "http://v.juhe.cn/toutiao/index?key=cbce0769105c8f98e55da6a0a56ad6d0&type=tiyu&page=1&page_size=30&is_filter=0"

	// 请求方式
	method := "GET"
	// 构造请求
	client := &http.Client{}
	// GET请求
	req, err := http.NewRequest(method, url, nil)
	// 抛出请求异常
	if err != nil {
		fmt.Println(err)
		return
	}
	// 添加请求头部信息
	req.Header.Add("Content-Type", "application/json")
	//req.Header.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36")

	// 发出请求
	res, err := client.Do(req)
	// 回收返回异常
	if err != nil {
		fmt.Println(err)
		return
	}

	// 关闭请求连接
	defer res.Body.Close()

	// 获取返回体,并回收返回异常
	body, err := ioutil.ReadAll(res.Body)
	if err != nil {
		fmt.Println(err)
	}

	// Json字符串格式化
	var str bytes.Buffer
	_ = json.Indent(&str, body, "", "    ")
	fmt.Println("data: ", str.String())
}