예제 #1
0
class IsContent:
	def __init__(self):
		self.excel=OperationExcel()
		self.log=MyLog()

	def isContent(self,row,str2):
		flag=None
		if self.excel.getExpect(row=row) in str2:
			flag=True
			self.log.infoLog('%s接口通过预期结果断言成功'%self.excel.getCaseID(row))
		else:
			flag=False
			self.log.errorLog('%s接口通过预期结果断言失败'%self.excel.getCaseID(row))
		return flag
예제 #2
0
class Method:
	def __init__(self):
		self.operationJson=OperationJson()
		self.excel=OperationExcel()
		self.log=MyLog()

	def post(self,row,data=None):
		try:
			r=requests.post(
				url=self.excel.getUrl(row),
				data=data,
				headers=getHeadersValue(),
				timeout=6)
			self.log.infoLog('接口%s请求成功,请求方式:post,请求参数:%s' %(self.excel.getCaseID(row),data))
			return r
		except Exception as e:
			self.log.errorLog('接口%s请求错误,原因:%s'%(self.excel.getCaseID(row),e))
			raise  RuntimeError('接口请求发生未知的错误')

	def get(self,row,params=None):
		try:
			r=requests.get(url=self.excel.getUrl(row),
						params=params,
						headers=getHeadersValue(),
						timeout=6)
			self.log.infoLog('接口%s请求成功,请求方式:get,请求参数:%s' %(self.excel.getCaseID(row),params))
			return r
		except Exception as e:
			self.log.errorLog('接口%s请求错误,原因:%s'%(self.excel.getCaseID(row),e))
			raise RuntimeError('接口请求发生未知错误')

	def method(self,row,data=None,params=None):
		method=self.excel.getMethod(row)
		if method == 'post':
			r=requests.post(
				url=self.excel.getUrl(row),
				data=data,
				headers=getHeadersInfo(),
				timeout=6)
			self.log.infoLog('接口%s请求成功,请求方式:post,请求参数:%s' %(self.excel.getCaseID(row),data))
			return r
		elif method == 'get':
				r=requests.get(
					url=self.excel.getUrl(row),
					params=params,
					headers=getHeadersInfo(),
					timeout=6)
				self.log.infoLog('接口%s请求成功,请求方式:get,请求参数:%s' %(self.excel.getCaseID(row),params))
				return r
		else:
			self.log.errorLog('接口请求方式不正确')
예제 #3
0
class OperationExcel:
	def __init__(self):
		self.log=MyLog()

	def getExcel(self):
		db=xlrd.open_workbook(data_dir('data','data.xls'))
		sheet=db.sheet_by_index(0)
		return sheet

	def get_rows(self):
		'''获取excel的行数'''
		return self.getExcel().nrows

	def get_row_cel(self,row,col):
		'''获取单元格的内容'''
		return self.getExcel().cell_value(row,col)

	def getCaseID(self,row):
		'''获取测试ID'''
		return self.get_row_cel(row,getCaseID())

	def getUrl(self,row):
		'''获取请求地址'''
		return self.get_row_cel(row,getUrl())

	def get_request_data(self,row):
		'''获取请求参数'''
		return self.get_row_cel(row, get_request_data())

	def getMethod(self,row):
		'''获取请求方式'''
		return self.get_row_cel(row,getMethod())

	def getExpect(self,row):
		'''获取期望结果'''
		return self.get_row_cel(row,getExpect())

	def getResult(self,row):
		'''获取实际的结果'''
		return self.get_row_cel(row,getResult())

	def writeResult(self,row,content):
		'''测试结果写到文件中'''
		try:
			col=getResult()
			work =xlrd.open_workbook(data_dir('data','data.xls'))  #打开表
			old_content = copy(work)     #利用xlutils.copy下的copy函数复制
			ws = old_content.get_sheet(0)   #获取表单0
			ws.write(row,col,content)     ##改变(row,col)的值
			old_content.save(data_dir("data","data.xls"))   #保存文件
			self.log.infoLog('测试结果写入excel成功,写入结果:%s' %content)

		except Exception as e:
			self.log.errorLog('测试结果写入excel失败,原因:%s'%e)

	def run_success_result(self):
		'''获取执行成功的用例数'''
		pass_count=[]
		fail_count=None
		for i in range(1,self.get_rows()):
			if self.getResult(i)=='pass':
				pass_count.append(i)
		return int(len(pass_count))

	def run_fail_result(self):
		'''获取执行失败的用例数'''
		return int((self.get_rows()-1)-self.run_success_result())  #总数减去成功数

	def run_pass_rate(self):
		'''测试结果通过率'''
		rate=''
		if self.run_fail_result()==0:
			rate='100%'
		elif self.run_fail_result()!=0:
			rate=str(int(self.run_success_result()/int(self.get_rows()-1)*100))+'%'
		return rate