一. 工具選擇
IDE:rubymine;http接口請求:Unirest,ruby單元測試框架:rspec
二.工程創建
新建工程,在工程目錄下,執行:rspec --init;初始化rspec工程
可以看到工程下生成了兩個文件.rspec和spec/rspec_helper.rb
.rspec(用於命令行參數的配置)
rspec_helper.rb(用於rspec工程的全局公共的一些配置)
三.編寫測試腳本(以天氣查詢接口為例)
rspec_helper.rb文件末尾中導入rspec,unirest的gems包,並定義參數導入方法
require 'unirest' require 'rspec' def load_data(file) load file data end
創建data.rb文件用於存放腳本中的參數
def data @weather_host = 'https://www.sojson.com' @beijing = '北京' @hangzhou = '杭州' end
創建測試文件weather_spec.rb(注意一定要以_spec為結尾,rspec默認是以這個來識別測試文件的)
describe '天氣接口' do before(:all) do load_data(__dir__+'/data.rb') end it '查看北京天氣' do parameters = {city:@beijing} response = Unirest.get(@douban_host+'/open/api/weather/json.shtml', parameters:parameters) puts response.body expect(response.body['city']).to match /北京/i end it '查看杭州天氣' do parameters = {city:@hangzhou} response = Unirest.get(@douban_host+'/open/api/weather/json.shtml', parameters:parameters) puts response.body expect(response.body['city']).to match /北京/i end end
這樣一個簡單的測試腳本就寫好了
四.用例執行(類似於pycharm執行unittest)
- rubymine執行:
單個用例或者
單個測試集(下圖方法或者腳本中選到用例外的區域右鍵執行) - 命令行執行
工程目錄下,cmd執行rspec命令執行本所有用例,具體參數可以通過rspec -h查看
參數可以寫到.rspec文件中去
這樣就生成了rspec的測試報告(測試報告可以改源碼自己優化或者jenkins集成的時候使用其他風格的報告)
五.注意點:
1.ruby安裝時,設置環境變量(不然命令行下發有中文會認為是GBK編碼,產生編碼錯誤):
2.rubymine設置(不然返回結果有中文的時候,rubymine上執行結果顯示出來是亂碼的)