一、测试需求描述
对服务后台一系列的http接口功能测试。
输入:根据接口描述构造不同的参数输入值(Json格式)
输出:字符串(传入的方式+传入的字符串)
二、实现方法
1、选用ruby脚本来驱动测试
2、采用Excel表格管理测试数据,包括用例的管理、测试数据录入、测试结果显示等等,这个需要封装一个Excel的类。
3、调用http接口采用java自带的的API
4、测试需要的将参数转化成字符串
5、通过预期结果和实际结果的对比,将实际结果和对比结果写入Excel用例中,这里封装了一个类
6、首次执行测试采用人工检查输出的是否正确,一旦正确写入Excel的期望结果中,如果发现错误手工修正为预期文件。
三、Excel表格设计
四、代码结构
五、实现代码
1、main.rb
$path = "C:\\test\\"
require $path + "Function\\function.rb"
#---------------------环境初使化-(Begin)--------------------------------------------------------
print "正在进行环境初使化"
#运行前关闭掉所有IE进程
system("taskkill /f /IM et.EXE")
#运行前关闭掉所有excel进程
system("taskkill /f /IM excel.EXE")
$url="url1" #、APPS接口
$url_cache="url2" #儿歌动画
#创建测试报告文件
$f = File.new("TestReports.txt","w")
$f.puts("自动化测试过程记录:")
$f.puts("")
#----------------------环境初使化-(End)---------------------------------------------------------------
#----------------------------开始进行测试-(Begin)-----------------------------------------------------
#测试过程
#=begin
$sheet_num = 1
while($sheet_num <= 4) #3是工作簿总个数
#读取控制表中的数据
excel = WIN32OLE::new("excel.Application")
excel['Visible'] = false
book = excel.Workbooks.Open("c:\\test\\GUI_Data\\用例执行控制总表.xls")
sheet=book.worksheets($sheet_num.to_i)
get_row(sheet)
get_column(sheet)
$last=$last_column+String($last_row)
$column=$num_column
$row=$num_row
$dT=sheet.Range("A2:#{$last}").Value
#开始进行测试
$num = 0
$testcase_num = $row
puts $testcase_num
$t = 0
puts $dT[$num][0].to_s
puts $dT[$num][1].to_s
while($num<=$testcase_num)
while($t<= $testcase_title.length)
# if($dT[$num][1].strip==$testcase_title[$t].to_s)
#开始测试时间
$begin_times = Time.now()
sheet.Range("c#{$num+2}")['Value']="是"
interfacetest($dT[$num][0].to_s,$dT[$num][1].to_s)
#测试结束时间
$end_times = Time.now()
#计算一个用例测试用时
# $once_execution_ts=times($begin_times,$end_times)
# puts $once_execution_ts
# Update_Executions($dbh,$result1,$testplanid,$tcversion_id[$t],$once_execution_ts)
# end
$t=$t+1
end
$num=$num+1
$t=0
end
$sheet_num += 1
book.close(1)
# book.quit()
end
#=end
#--------------------------------------测试结束-(End)---------------------------------------------------------
#--------------------------------书写全局测试日志-(Begin)--------------------------------------------------------
#书写全局测试日志
$f.puts("==================")
$f.puts("web测试结果汇总:")
$f.puts("")
$f.puts("总共执行测试用例#{$num_test_total}个")
$f.puts("测试失败测试用例数#{$num_test_fail}个")
#$f.puts("测试中止功能模块#{$num_model_halt}个")
$f.puts("测试总共消耗时间#{$last_hour}小时#{$last_min}分钟#{$last_sec}秒")
$f.close()
2、function.rb
五、测试结果