【问题标题】:Ruby - API RestClient - JSONRuby - API RestClient - JSON
【发布时间】:2016-04-21 18:44:31
【问题描述】:

刚刚开始进行 API 测试并苦苦挣扎,过去只是进行前端 selenium Web 驱动程序测试,但是,我需要了解 API 测试。

我有点理解基本知识,例如 Get 将从 url 获取数据,而 post 会将数据发布到 url,我认为这是正确的,但是,我可能是错的。

我遇到的问题如下:

 response = RestClient.post 'http://jsonplaceholder.typicode.com/posts',

  {:title => 'mr', :first_name => 'bob', :second_name => 'smith'}

    data1 = JSON.parse(response)

        p data1

所以我将restclient.post 分配给响应变量并将散列键、值对发布到url?然后我使用 JSON 来解析响应,然后将响应打印到控制台。我需要做的是从哈希中提取每个值并将每个值打印到控制台,以便将数据显示为 mr bob smith。而不是 {:title => 'mr', :first_name => 'bob', :second_name => 'smith'}

【问题讨论】:

    标签: ruby json api rest automated-tests


    【解决方案1】:
    print "#{ data1[ :title ]} #{data1[:first_name]} #{data1[:second_name]}"
    

    【讨论】:

    • 你能解释一下吗?我知道 data1 是变量,在方括号之间它们是哈希中的键,但是,你能解释一下这是如何打印键的值而不是键本身吗?
    • 当然。当您使用 "#{ foo }" foo 时,会进行评估。在这种情况下,我们正在访问键的值:data1[:title]。
    • 谢谢,这是做我需要做的最好的方法,还是你可以遍历哈希然后以这种方式打印每个值?想这样工作吗? data1.each 做 |i| p i['title']['first_name']['second_name'] end
    • 哈哈,我也是这么想的。遍历键是没有意义的,因为散列没有顺序。使用 use 方法来包装字符串可能是有意义的。
    • 顺便说一句,这是错误的答案,但我想通了,我会更改代码,所以编辑是正确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 1970-01-01
    • 1970-01-01
    • 2017-08-20
    • 2011-08-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多