亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Ruby > 正文

Ruby配置rspec和RestClient來檢測服務器

2020-10-29 19:38:19
字體:
來源:轉載
供稿:網友

如果你手工測試Restful 服務將會是一件非常單調乏味的事情。當然,目前有一些瀏覽器插件可以通過可視化的界面幫助你手工測試,例如postman、rest console,但是每次系統版本更新,你都需要去手動執行大量的測試,顯然這種方式不是非常實用。Ruby擁有許多出色的gem包,你可以使用它們完成這項枯燥的工作。其中RestClient是我比較喜歡的一個。結合ruby的rspec框架使用RestClient可以編寫非常強大的測試腳本。假如Github想讓你測試他們的Restful API。你可能想做的第一件事就是確保端點返回你預計的響應代碼。開始前,你需要確認你已經安裝了相應的gems。 最便利的方式是使用bundler安裝:

 source "https://rubygems.org" gem 'rest-client' gem 'rspec' gem 'json_expressions'

在cmd(windows,linux/mac環境請自行解決)進入你創建gemfile文件的同層目錄,運行 'bundle'

rafs-computer:rafael$ bundleUsing diff-lcs 1.2.5Using json_expressions 0.8.3Using mime-types 2.3Using netrc 0.7.7Using rest-client 1.7.2Using rspec-support 3.1.1Using rspec-core 3.1.4Using rspec-expectations 3.1.2Using rspec-mocks 3.1.2Using rspec 3.1.0Using bundler 1.7.3Your bundle is complete!

現在讓我們來驗證我們從用戶終端得到200響應:

require 'rspec'require 'rest_client'describe 'GitHub API' do    it 'should return information about a user' do     result = RestClient.get 'https://api.github.com/users/rest-client', :content_type => :json, :accept => :json    expect(result.code).to eq(200)  endend

在命令行執行rspec -f doc filename

2015713114043998.png (543×129)

因此返回碼是對的,但是我們如何知道返回的json也是對的呢?

有幾種不同的方式去驗證。一種方法是解析body中的json(由key,value組成),然后針對你要檢查的每個key創建斷言。這種方式可以使用,但是它需要你寫多個斷言而且是比較難于維護的。另外一種方法是和一個已知有效的json格式的數據文件比較。你可以使用json_expressions gem包去做這個事情。下面的例子是相同的spec文件。新增一個testcase用來驗證json數據。

首先準備一個users.json文件

{ "login": "rest-client", "id": 2386701, "avatar_url": "https://avatars.githubusercontent.com/u/2386701?v=3", "gravatar_id": "", "url": "https://api.github.com/users/rest-client", "html_url": "https://github.com/rest-client", "followers_url": "https://api.github.com/users/rest-client/followers", "following_url": "https://api.github.com/users/rest-client/following{/other_user}", "gists_url": "https://api.github.com/users/rest-client/gists{/gist_id}", "starred_url": "https://api.github.com/users/rest-client/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/rest-client/subscriptions", "organizations_url": "https://api.github.com/users/rest-client/orgs", "repos_url": "https://api.github.com/users/rest-client/repos", "events_url": "https://api.github.com/users/rest-client/events{/privacy}", "received_events_url": "https://api.github.com/users/rest-client/received_events", "type": "Organization", "site_admin": false, "name": "REST-Client Team", "company": null, "blog": "", "location": null, "email": null, "hireable": false, "bio": null, "public_repos": 1, "public_gists": 0, "followers": 0, "following": 0, "created_at": "2012-09-20T15:01:43Z", "updated_at": "2015-03-11T19:08:01Z"}

然后編寫測試用例spec文件

require 'rspec'require 'rest_client'require 'json_expressions/rspec'describe 'GitHub API' do it 'should return 200 when asking information about a user' do  result = RestClient.get 'https://api.github.com/users/rest-client', :content_type => :json, :accept => :json  expect(result.code).to eq(200) end it 'should return proper data for a user' do  expected_data = JSON.parse(IO.read('users.json'))  result = RestClient.get 'https://api.github.com/users/rest-client', :content_type => :json, :accept => :json  expect(result).to match_json_expression(expected_data)  endend

這個users.json文件包含了一個已知的響應。正如你可能猜到了,一些這樣的服務返回值可以改變很快。例如,"updated_at"是返回值可能經常變化的key。假如你只是想要驗證key是否存在,而不關心它的值,你可以增加如下的代碼到你的測試用例中。

it 'should return proper data for a user' do  expected_data = JSON.parse(IO.read('users.json')) #解析users.json文件中的數據作為預期值   result = RestClient.get 'https://api.github.com/users/rest-client', :content_type => :json, :accept => :json  # expect(result).to match_json_expression(expected_data)   expected_data['updated_at'] = wildcard_matcher end

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
一本色道久久88精品综合| 亚洲肉体裸体xxxx137| 中文日韩在线视频| 91手机视频在线观看| y97精品国产97久久久久久| 91精品久久久久久综合乱菊| 亚洲欧美日韩爽爽影院| 日韩av一区在线| 78m国产成人精品视频| 欧美成人精品一区| 欧美激情一区二区三区在线视频观看| 国产精品7m视频| 国产精品久久久一区| 久久人人爽人人爽人人片av高清| 国产精品极品美女粉嫩高清在线| 韩曰欧美视频免费观看| 日韩在线观看免费高清完整版| 欧美激情区在线播放| 91理论片午午论夜理片久久| 精品久久久久久久久久久久| 国产丝袜一区二区三区| 国产亚洲人成a一在线v站| 国产精品自产拍在线观| 日韩天堂在线视频| 欧美国产精品va在线观看| 亚洲国产精品va在线看黑人动漫| 亚洲人成电影网站色www| 91精品国产沙发| 亚洲人成电影网站色…| 色综合久久天天综线观看| 日韩视频免费在线观看| 精品视频偷偷看在线观看| 日韩在线观看免费全集电视剧网站| 国产精品www| 国模精品系列视频| 视频一区视频二区国产精品| 欧美专区福利在线| 成人黄色av播放免费| 国产精品综合网站| 亚洲自拍偷拍色图| 亚洲sss综合天堂久久| 国产精品网红直播| 中文字幕日韩精品有码视频| 亚洲精品不卡在线| 亚洲美女又黄又爽在线观看| 国产99久久久欧美黑人| 亚洲欧美日韩高清| 亚洲午夜小视频| 中文字幕v亚洲ⅴv天堂| 在线播放国产一区二区三区| 日韩成人在线视频观看| 日韩电影中文字幕| 国产精品美女免费视频| 亚洲缚视频在线观看| 精品成人乱色一区二区| 中文字幕亚洲欧美| 亚洲色图在线观看| 精品色蜜蜜精品视频在线观看| 黄色91在线观看| 国内精品久久久久久中文字幕| 亚洲天堂精品在线| 久久久久在线观看| 成人免费黄色网| 国产中文字幕亚洲| 欧美极品第一页| 亚洲男人第一av网站| 亚洲有声小说3d| 亚洲综合视频1区| 日韩精品视频免费| 精品女同一区二区三区在线播放| 欧美电影免费观看高清完整| 亚洲影院在线看| 欧洲亚洲免费视频| 久久精品国产综合| 国产乱肥老妇国产一区二| 亚洲电影免费观看高清完整版| 亚洲第五色综合网| 国产视频精品一区二区三区| 欧美国产欧美亚洲国产日韩mv天天看完整| 韩国精品美女www爽爽爽视频| 一区二区三欧美| 午夜精品久久17c| 欧美日韩午夜激情| 亚洲无线码在线一区观看| 日韩免费视频在线观看| 久久亚洲精品国产亚洲老地址| 91在线视频导航| 在线亚洲午夜片av大片| 92看片淫黄大片欧美看国产片| 亚洲人在线视频| 亚洲精选中文字幕| 欧美日韩亚洲视频| 国产美女精彩久久| 狠狠做深爱婷婷久久综合一区| 91国产高清在线| 国产综合在线视频| 欧美成人免费一级人片100| 成人有码在线视频| 欧美一区第一页| 欧美资源在线观看| 欧美肥臀大乳一区二区免费视频| 欧美高清第一页| 欧美国产日韩精品| 91精品国产91| 日韩在线免费观看视频| 日韩人体视频一二区| 亚洲伊人成综合成人网| 成人乱色短篇合集| 日韩欧美a级成人黄色| 欧美做受高潮1| 久久99视频免费| 日韩中文字幕在线视频播放| 九九精品视频在线| 久久久精品免费视频| 欧美美女15p| 日本亚洲欧美成人| 成人免费黄色网| 成人久久18免费网站图片| 在线成人一区二区| 狠狠色狠狠色综合日日五| 亚洲日韩中文字幕在线播放| 亚洲美女黄色片| 欧美国产极速在线| 亚洲一区二区三区四区视频| 亚洲精品欧美日韩专区| 成人黄色免费网站在线观看| 亚洲午夜精品久久久久久久久久久久| 国产精品尤物福利片在线观看| 97久久精品视频| xvideos亚洲| 黄色一区二区三区| 日韩成人中文字幕| 欧美日韩激情美女| 欧美日韩国产综合视频在线观看中文| 亚洲国产成人精品电影| 2020欧美日韩在线视频| 乱亲女秽乱长久久久| 色妞一区二区三区| 91久久久亚洲精品| 亚洲免费伊人电影在线观看av| 午夜美女久久久久爽久久| 久久久久久国产三级电影| 国产精品福利无圣光在线一区| 久久婷婷国产麻豆91天堂| 日韩电影大片中文字幕| 久久久噜噜噜久久久| 岛国av一区二区三区| 久久久久久久电影一区| 欧美日韩aaaa| 97在线观看视频国产| 中文.日本.精品| 91av成人在线| 中文字幕无线精品亚洲乱码一区| 国产欧美日韩视频| 中文字幕精品av| 亚洲大胆人体在线| 久久成人一区二区| 日韩av三级在线观看| 国产精品免费一区二区三区都可以| 欧美福利视频在线观看| 伊人久久久久久久久久久久久| 91精品久久久久久久久久| 欧美黑人巨大xxx极品| 亚洲男女性事视频|