一. 工具选择
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上执行结果显示出来是乱码的)
请发表评论