一、測試需求描述
對服務(wù)后臺一系列的http接口功能測試拗盒。
輸入:根據(jù)接口描述構(gòu)造不同的參數(shù)輸入值(Json格式)
輸出:字符串(傳入的方式+傳入的字符串)
二怖竭、實現(xiàn)方法
1、選用ruby腳本來驅(qū)動測試
2陡蝇、采用Excel表格管理測試數(shù)據(jù)痊臭,包括用例的管理、測試數(shù)據(jù)錄入登夫、測試結(jié)果顯示等等广匙,這個需要封裝一個Excel的類。
3恼策、調(diào)用http接口采用java自帶的的API
4鸦致、測試需要的將參數(shù)轉(zhuǎn)化成字符串
5、通過預(yù)期結(jié)果和實際結(jié)果的對比涣楷,將實際結(jié)果和對比結(jié)果寫入Excel用例中分唾,這里封裝了一個類
6、首次執(zhí)行測試采用人工檢查輸出的是否正確狮斗,一旦正確寫入Excel的期望結(jié)果中绽乔,如果發(fā)現(xiàn)錯誤手工修正為預(yù)期文件。
三碳褒、Excel表格設(shè)計
四折砸、代碼結(jié)構(gòu)
五、實現(xiàn)代碼
1沙峻、main.rb
$path = "C:\\test\\"
require $path + "Function\\function.rb"
#---------------------環(huán)境初使化-(Begin)--------------------------------------------------------
print "正在進(jìn)行環(huán)境初使化"
#運行前關(guān)閉掉所有IE進(jìn)程
system("taskkill /f /IM et.EXE")
#運行前關(guān)閉掉所有excel進(jìn)程
system("taskkill /f /IM excel.EXE")
$url="url1"? ? ? ? ? ? ? ? #睦授、APPS接口
$url_cache="url2"? ? ? ? #兒歌動畫
#創(chuàng)建測試報告文件
$f = File.new("TestReports.txt","w")
$f.puts("自動化測試過程記錄:")
$f.puts("")
#----------------------環(huán)境初使化-(End)---------------------------------------------------------------
#----------------------------開始進(jìn)行測試-(Begin)-----------------------------------------------------
#測試過程
#=begin
$sheet_num = 1
while($sheet_num <= 4) #3是工作簿總個數(shù)
#讀取控制表中的數(shù)據(jù)
excel = WIN32OLE::new("excel.Application")
excel['Visible'] = false
book = excel.Workbooks.Open("c:\\test\\GUI_Data\\用例執(zhí)行控制總表.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
#開始進(jìn)行測試
$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)
#測試結(jié)束時間
$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
#--------------------------------------測試結(jié)束-(End)---------------------------------------------------------
#--------------------------------書寫全局測試日志-(Begin)--------------------------------------------------------
#書寫全局測試日志
$f.puts("==================")
$f.puts("web測試結(jié)果匯總:")
$f.puts("")
$f.puts("總共執(zhí)行測試用例#{$num_test_total}個")
$f.puts("測試失敗測試用例數(shù)#{$num_test_fail}個")
#$f.puts("測試中止功能模塊#{$num_model_halt}個")
$f.puts("測試總共消耗時間#{$last_hour}小時#{$last_min}分鐘#{$last_sec}秒")
$f.close()
2、function.rb
五摔寨、測試結(jié)果