Apifox = Postman + Swagger + Mock + JMeter
1. 修改文档
1.1 设置POST
1.2 设置API
/ebill/ebillbiz/rest/upload/up
1.3 设置请求 Body
1.4 设置响应
可以快捷填写参数
{
"upparameter": {
"UserId": "94",
"Id": "54",
"serialNumber": "89",
"FileId": "100",
"Thumbnail": "test",
"base64": "test"
}
}
2. 测试接口
2.1 直接点快捷请求
2.2 复制URL到浏览器
3. 运行
C语言版本
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(curl, CURLOPT_URL, "http://127.0.0.1:4523/m1/2064114-0-default/ebill/ebillbiz/rest/upload/up");
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "User-Agent: Apifox/1.0.0 (https://www.apifox.cn)");
headers = curl_slist_append(headers, "Content-Type: application/json");
headers = curl_slist_append(headers, "Accept: */*");
headers = curl_slist_append(headers, "Host: 127.0.0.1:4523");
headers = curl_slist_append(headers, "Connection: keep-alive");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
const char *data = "{\n \"upparameter\": {\n \"UserId\": \"94\",\n \"Id\": \"54\",\n \"serialNumber\": \"89\",\n \"FileId\": \"100\",\n \"Thumbnail\": \"test\",\n \"base64\": \"test\"\n }\n}";
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
res = curl_easy_perform(curl);
}
curl_easy_cleanup(curl);
Go语言版本
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "http://127.0.0.1:4523/m1/2064114-0-default/ebill/ebillbiz/rest/upload/up"
method := "POST"
payload := strings.NewReader(`{
"upparameter": {
"UserId": "94",
"Id": "54",
"serialNumber": "89",
"FileId": "100",
"Thumbnail": "test",
"base64": "test"
}
}`)
client := &http.Client {
}
req, err := http.NewRequest(method, url, payload)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("User-Agent", "Apifox/1.0.0 (https://www.apifox.cn)")
req.Header.Add("Content-Type", "application/json")
req.Header.Add("Accept", "*/*")
req.Header.Add("Host", "127.0.0.1:4523")
req.Header.Add("Connection", "keep-alive")
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)
return
}
fmt.Println(string(body))
}
4. 高级mock
4.1 自定义脚本
// 获取智能 Mock 功能自动 Mock 出来的数据
var responseJson = fox.mockResponse.json();
// 修改 responseJson 里的分页数据
// 将 page 设置为请求参数的 page
responseJson.upparameter = fox.mockRequest.getParam('upparameter');
// 将修改后的 json 写入 fox.mockResponse
fox.mockResponse.setBody(responseJson);
5. 测试效果
当发送
{
"upparameter": {
"UserId": "94",
"Id": "54",
"serialNumber": "89",
"FileId": "100",
"Thumbnail": "test",
"base64": "test"
}
}
时,就可以收到同样的
{
"upparameter": {
"UserId": "94",
"Id": "54",
"serialNumber": "89",
"FileId": "100",
"Thumbnail": "test",
"base64": "test"
}
}