登录
首页 >  Golang >  Go问答

使用 Resty 实现 API 的 POST 请求自动化测试

来源:stackoverflow

时间:2024-02-26 19:00:26 494浏览 收藏

对于一个Golang开发者来说,牢固扎实的基础是十分重要的,golang学习网就来带大家一点点的掌握基础知识点。今天本篇文章带大家了解《使用 Resty 实现 API 的 POST 请求自动化测试》,主要介绍了,希望对大家的知识积累有所帮助,快点收藏起来吧,否则需要时就找不到了!

问题内容

我已成功使用 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,并正确设置标头:

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")

今天关于《使用 Resty 实现 API 的 POST 请求自动化测试》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>