zoukankan      html  css  js  c++  java
  • 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上执行结果显示出来是乱码的)

  • 相关阅读:
    部署phpmyadmin登录不进去
    无法获取快照信息:锁定文件失败
    nginx: [emerg] BIO_new_file("/etc/nginx/ssl_key/server.crt") failed (SSL: error:02001002:syste
    nginx重启失败
    An error occurred (500 Error)
    Failed to set session cookie. Maybe you are using HTTP instead of HTTPS to access phpMyAdmin.
    clnt_create: RPC: Program not registered
    [error] 2230#2230: *84 client intended to send too large body: 1711341 bytes
    lnmp部署知乎出现403
    easyui下拉框过滤优化
  • 原文地址:https://www.cnblogs.com/wf0117/p/9428135.html
Copyright © 2011-2022 走看看