ruby做接口测试

一. 工具选择

  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)

  1. rubymine执行:
    单个用例

    或者


    单个测试集(下图方法或者脚本中选到用例外的区域右键执行)

  2. 命令行执行
    工程目录下,cmd执行rspec命令执行本所有用例,具体参数可以通过rspec -h查看


    参数可以写到.rspec文件中去

    这样就生成了rspec的测试报告(测试报告可以改源码自己优化或者jenkins集成的时候使用其他风格的报告)

 

五.注意点:

1.ruby安装时,设置环境变量(不然命令行下发有中文会认为是GBK编码,产生编码错误):

 

 2.rubymine设置(不然返回结果有中文的时候,rubymine上执行结果显示出来是乱码的)

 

posted @ 2018-08-06 01:48  掘屎男孩  阅读(1577)  评论(0编辑  收藏  举报