case執(zhí)行完成后一般通過預(yù)期結(jié)果判斷case是否執(zhí)行成功,然后將測試結(jié)果寫回到excel中
1、通過預(yù)期結(jié)果判斷case是否執(zhí)行成功
首先需要判斷case執(zhí)行是否通過,就需要拿預(yù)期結(jié)果中的值,與case實際運(yùn)行的值進(jìn)行比較撩穿,所以我們可以拿接口中返回的某一個數(shù)據(jù)作為預(yù)期結(jié)果與接口實際執(zhí)行結(jié)果進(jìn)行比較
判斷比較預(yù)期結(jié)果是否在我們接口返回數(shù)據(jù)里面,如果“在”谒撼,case執(zhí)行成功食寡,反之執(zhí)行失敗。
創(chuàng)建一個方法(common_util.py):判斷一個字符串是否在另外一個字符串中
#coding:utf-8
class CommonUtil:
def is_contain(self,str_one,str_two):
"""
判斷一個字符串是否在另外一個字符串中
:param str_one:查找的字符串
:param str_two:被查找的字符串
:return:
"""
flag = None
if str(str_one) in str(str_two):
flag = True
else:
flag = False
return flag
在主程序case循環(huán)執(zhí)行中獲取預(yù)期結(jié)果值廓潜,expect = self.data.get_expect_data(i)
,然后將新創(chuàng)建的方法引入到主程序from util.common_util import CommonUtil
執(zhí)行代碼如下:
# coding:utf-8
import sys
sys.path.append("F:/project/untitled")
from base.runmethod import RunMethod
from data.get_data import GetData
from util.common_util import CommonUtil
class RunTest:
def __init__(self):
self.run_method = RunMethod()
self.data = GetData()
self.com_until = CommonUtil()
# 程序執(zhí)行主入口
def go_on_run(self):
rs = ""
# 獲取excel行數(shù)抵皱,即case個數(shù)
rows_count = self.data.get_case_lines()
# 循環(huán)執(zhí)行case
for i in range(1,rows_count):
res=""
url = self.data.get_request_url(i)
method = self.data.get_request_method(i)
is_run = self.data.get_is_run(i)
data = self.data.get_data_for_json(i) # 請求數(shù)據(jù)存放在json文件
expect = self.data.get_expect_data(i) # 獲取預(yù)期結(jié)果值
header = self.data.is_header(i)
if is_run:
# 傳入?yún)?shù)順序與runmethod.py文件中run_main方法入?yún)⒁恢? res = self.run_method.run_main(method, url, data, header)
if self.com_until.is_contain(expect,res):
print("測試通過!")
else:
print("測試失敱绲啊呻畸!")
rs+=str(res)+'\n'
return rs
if __name__ == '__main__':
run = RunTest()
run.go_on_run()
2、將測試結(jié)果寫入到excel中
在operation.py中加入寫入數(shù)據(jù)的方法
from xlutils.copy import copy
#寫入數(shù)據(jù)
def write_value(self,row,col,value):
'''
寫入excel數(shù)據(jù)
'''
read_data = xlrd.open_workbook(self.file_name)#先打開文件
write_data = copy(read_data)
sheet_data = write_data.get_sheet(0)
sheet_data.write(row,col,value)
write_data.save(self.file_name)
在get_data.py文件中封裝一個寫入數(shù)據(jù)的方法
#獲取實際結(jié)果
def write_result(self,row,value):
col = int(data.data_config.get_result())
self.opera_excle.write_value(row,col,value)#調(diào)用寫入數(shù)據(jù)的方法
在主方法(run_test.py)中寫入用例執(zhí)行結(jié)果
if is_run:
# 傳入?yún)?shù)順序與runmethod.py文件中run_main方法入?yún)⒁恢? res = self.run_method.run_main(method, url, data, header)
if self.com_until.is_contain(expect,res):
self.data.write_result(i,'pass')#調(diào)用獲取實際結(jié)果的方法
else:
self.data.write_result(i,'fail')
rs+=str(res)+'\n'
關(guān)閉excle后執(zhí)行程序