api - 如何使用Resty创建自动化API POST测试请求

标签 api go automated-tests

我已经成功地使用Resty在Go中成功设置了API自动化测试,并执行了GET请求。
但是,我正在努力进行POST API测试以返回200,而不是收到400错误消息。我不确定自己在做什么错。
请在下面查看我的代码。 (顺便说一下,POST请求在Postman中有效!)

func Test_Post(t *testing.T){
    client := resty.New()
    resp, _ := client.R().
    SetBody(`{
            "text": "Hello, I am learning how to test APIs with Postman!"  
    }`).
    Post("https://api.funtranslations.com/translate/yoda")

    assert.Equal(t, 200, resp.StatusCode())
}

最佳答案

您需要添加一个内容类型。这应该工作:

func Test_Post(t *testing.T){
    client := resty.New()
    resp, _ := client.R().
    SetBody(`{
            "text": "Hello, I am learning how to test APIs with Postman!"  
    }`).
    SetHeader("Content-Type", "application/json").
    Post("https://api.funtranslations.com/translate/yoda")

    assert.Equal(t, 200, resp.StatusCode())

}
如果向客户端传递json可序列化的数据类型而不是字符串,则它将知道您打算发送JSON并正确设置 header :
resp, _ := client.R().
    SetBody(map[string]string{
        "text": "Hello, I am learning how to test APIs with Postman!",
    }).
    Post("https://api.funtranslations.com/translate/yoda")

关于api - 如何使用Resty创建自动化API POST测试请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65169149/

相关文章:

api - 设计一个接受大量数据作为输入的 REST API 端点

javascript - 如何分离axios获取数组对象

ios - 如何从带有 JSON 数据的字符串中获取 UIImage

swt - Eclipse 图形界面测试工具?

java - 使用 Java 和 JSON 请求的服务器端自动化测试

php - Laravel 多对多查询 Controller

logging - 如何在 golang 中实现基于级别的日志记录?

go - 如何获取集群内 go Kubernetes 客户端的当前命名空间

cgo 如何设置 C union 值

c# - 如何测试href值是否是selenium的相对值