Example #1
0
	def start(order):


		'''
		print 'order.client',order.clientlist,'\norder.client_location',order.client_location,'\norder.clientIP',order.clientIP

		for curclient in order.clientlist:
			curclientinfo=order.clientIP[curclient]
			print 'curclient:',curclient,'radio',curclient,'clientID',curclientinfo['clientid'],'A:',curclientinfo['A'],'E:',curclientinfo['E']
		'''	
		atestcasestatus='%s_%s_%s'%(order.passedcasecount,order.failedcasecount,order.totalcasecount)
		TMS.updateprogress((order.passedcasecount+order.failedcasecount)/float(order.totalcasecount)*100,'------',order.errorlog,atestcasestatus,order.order_exec_id,1)

		#TMS2.updateprogress((order.passedcasecount+order.failedcasecount)/float(order.totalcasecount)*100,datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),order.errorlog,atestcasestatus,order.order_exec_id)

		order.run(order.remainingcases)
Example #2
0
	def uploadresult(case,testorder,dut,tmsserver):

		upR={'client':case.clientID,"ptcid":case.ID,'tcvid':case.tcvid,'testplan':testorder.testplan,"product_id":dut['product_id'],"swbuild_id":dut["swbuild_id"],"testdate":case.starttime,"tester":testorder.tester,"testerid":testorder.testerid,"dutsn":dut['sn'],"trial":case.trial,'dutxangle':case.xangle,"testnote":case.testnote,"otatstA":case.result_tst['A'],"otacsvA":case.result_csv['A'],"otatstB":case.result_tst['B'],"otacsvB":case.result_csv['B'],"otatstC":case.result_tst['C'],"otacsvC":case.result_csv['C'],"otatstD":case.result_tst['D'],"otacsvD":case.result_csv['D'],"otatstE":case.result_tst['E'],"otacsvE":case.result_csv['E'],"otapdfA":case.result_pdf['A'],"otapdfB":case.result_pdf['B'],"otapdfC":case.result_pdf['C'],"otapdfD":case.result_pdf['D'],"otapdfE":case.result_pdf['E']}

		upload_fail=TMS.tms_upload_ota(tmsserver,upR)
		if upload_fail:
			print "The result upload failed."
			case.Failinfo += "Upload failed"
			return False	
Example #3
0
def main(orderid):
	
	
	curorder=ixchorder(orderid)
	if not curorder.isInited():
		sys.exit(0)
	print '\ndut_IP:  ',dut['IP'],type(dut['IP'])
	try:
		dut_ip_sub=re.search(r'(\d{1,3}.\d{1,3}.\d{1,3})',dut['IP']).group(1)
	except:
		print "the DUT IP is not set correctly"
		dut_ip_sub='192.168.1'
	#dut_ip_sub='%s.%s'%(re.search(r'(\d{1,3}.\d{1,3}.\d{1,3})',dut['IP']).group(1),77)

	print 'dut_ip_sub',dut_ip_sub
	curorder.order_exec={'testorderid':curorder.orderid,'plan_start':'0000-00-00 00:00:00','plan_stop':'0000-00-00 00:00:00','starttime':curorder.stime.strftime('%Y-%m-%d %H:%M:%S'),'finishtime':'------','progress':0,'status':1,'testcasestatus':'0_0_0','log':'','testerid':11}
	curorder.order_exec_id=TMS.addexetable(curorder.order_exec)
	if not curorder.order_exec_id:
		print "Can not connected with TMS server, created exec_order table"
		sys.exit(1)
	else:
		print " The execute table is built"
	#curorder.totalcasecount=totaltrytimes*curorder.xangle*len(curorder.clientlist)*curorder.totalcases/3
	#print 'fo.log-----------------------------------------',fo.log
	logfilename='%s%slogfile.txt'%(curorder.backupdir,os.sep)
	testlogfile=open(logfilename,'w',0)	
	#fo=Getstdout()
	sout=stdsplit(testlogfile,curorder.order_exec_id)
	sys.stdout=sout		
	
	curorder.start()
	#atestcasestatus='%s_%s_%s'%(curorder.passedcasecount,curorder.failedcasecount,curorder.totalcasecount)
	#TMS.updateprogress(100.0,datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),fo.log,atestcasestatus,curorder.order_exec_id,0)

	atestcasestatus='%s_%s_%s'%(curorder.passedcasecount,curorder.failedcasecount,curorder.totalcasecount)
	#print '\n-------------------------time',datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
	#TMS.updateprogress(100.0,datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),fo.log,atestcasestatus,curorder.order_exec_id,1)
	TMS.updateprogress(100.0,datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),curorder.errorlog,atestcasestatus,curorder.order_exec_id,0)
Example #4
0
        "trial": 1,
        "csvfile": "vw1.csv",
        "pdffile": "vw.pdf",
        "testnote": "uploadbytestvwcurl.py",
    }
    if len(sys.argv) != 2:
        print "--Wrong usage ! The program exited!--"
        sys.exit(1)

    orderid = sys.argv[1]
    if not orderid.isdigit():
        print "The order ID is not correct format, please check it again"
        sys.exit(1)

    print "Now run the cases from TMS server testorder ID: %s" % orderid
    runningcases, testbed, upload_result["testplan"] = TMS.getcase(orderid)
    running_status = TMS.getrunningstatus(orderid)
    totalcases = len(runningcases)
    print totalcases, testbed, running_status, runningcases, Tstype
    upload_result["tstype"] = Tstype

    print "The cases to run are:"

    for i in runningcases:
        print i
        """
		testvar()
		print "the type"+str(result_TMS_supported)
		match=re.search(r'^(\d{1,3})\t(\d{1,4})\t(\d{1,3})\t(.+)\t(\d+)\t(\d+)',i)
		print match.group(5),match.group(6)
		configfileid=match.group(6)
import sys
import logging
import time
import generics
import config
import getopt
from WebPAS import *
from TMS import *

#ENV SETTINGS
# Instantiate objects
testName = (inspect.getfile(inspect.currentframe()).split("\\", -1)[-1]).rsplit(".", 1)[0] #Extract current *.py file name

WebPAS = WebPAS(testName)
TMS = TMS(testName)

bundlePath = config.bundlePath
debug = WebPAS.debug
hospitalName = "Fremantle"

setBundlePath(bundlePath)
setShowActions(debug) # debug

#Logging configuration
localLog = logging.getLogger(testName)

### START ###

localLog.info("---Going to run %s test---", testName)
Example #6
0
# Log in to TMS
# Written by Shragovich Eugene 2013

import logging
import time
import config
import generics
from TMS import *

#ENV SETTINGS
testName = (inspect.getfile(inspect.currentframe()).split("\\", -1)[-1]).rsplit(".", 1)[0] #Extract current *.py file name

TMS = TMS(testName)

setBundlePath(config.bundlePath)
setShowActions(TMS.debug)

#Logging configuration
localLog = logging.getLogger(testName)

### START ###
localLog.info("### Going to run a test: %s ###", testName)

# Init test status to fail
generics.setTestStatus("TEST_INIT", 1, testName)

# Access the application
TMS.access(forceDirectLink=True)

# Exit the application
TMS.logOut()
Example #7
0
	def __init__(order,orderid):
		global dut
		print "the test order %s is initing..."%orderid
		order.orderid=orderid
		order.failedcases={}
		order.passedcases=[]
		order.remainingcases=[]
		order.anglelist=[0,45,90,135,180,225,270,315]
		#order.anglelist=[0,90,180,270]
		order.angleinterval='45'
		
		order.stime=datetime.datetime.now()
		order.starttime=order.stime.strftime('%Y_%m_%d_%H_%M_%S')
		order.endtime=''
		order.tester='test'
		order.testerid=11
		order.testtype='vw'
		order.clientlist=[]
		order.client_location=[]
		order.clientIP={}
		order.xangle=''

		order.passedcasecount=0
		order.failedcasecount=0
		order.totalcasecount=0
		order.errorlog=''
		order.iturntable=turntable(order.anglelist,order.angleinterval)
		
		order.totalcasecount,dut['sn'],dut['swbuild_id'],dut['product_id'],order.testbed,order.testplan,order.clientlist,order.client_location,order.xangle,order.clientIP,dut['APModel'],dut['APSWVersion'],order.caselist,dut['IP'],dut['NumTxAntennas'],dut['NumTxAntennas5G']=TMS.get_ota_order(orderid)
		#print dut['sn']
		if order.xangle=='all':
			print "Use the default 8 angles"
		else:
			order.anglelist=map(int,order.xangle.split(','))
			
		print 'xangle',order.xangle,'anglelist:',order.anglelist
		
		order.totalcases=len(order.caselist)
		if not order.totalcasecount:
			order.totalcasecount=order.totalcases
		order.totalcases=len(order.caselist)
		
		order.remainingcases=order.caselist[:]
		order.backupfilename='%s_%s_%s_on_%s'%(dut['APModel'],dut['APSWVersion'],order.orderid,order.starttime)
		print 'APSWVersion',dut['APSWVersion']
		#order.backupfilename='testorder_%s_%s_%s_%s_on_%s'%(order.orderid,dut['APModel'],dut['APSWVersion'],order.starttime)
		backupdir='resultbackup%s%s'%(os.sep,order.backupfilename)
		order.backupdir=re.sub(r"\s+","_",backupdir)
		#print order.backupdir
		#winbackupdir='c:\\ixch'+order.backupdir
		#print winbackupdir
		os.mkdir(order.backupdir,0755)

		#os.mkdir(winbackupdir)
		if order.testbed !=8 and order.testbed !=9:
			#what is ths for ixia or OTA
			print "Please choose the correct testbed, it should be the OTA Fisk or OTA chamber"
			sys.exit(1)
Example #8
0
	def run(order,toruncases):
		#order.starttime=datetime.datetime.now().strftime('%Y-%m-%d_%H:%M:%S')
		print "\n---------------------------------The test order %s begins at %s-----------------------"%(order.orderid,order.starttime)
		print 'Thread %s is running\n'%threading.current_thread().name  	
		numangle=len(order.anglelist)	
		for crcase in toruncases[:]:
			#print 'rem:',curorder.remainingcases,'total:',curorder.caselist
			active_status=TMS.getrunningstatus(order.orderid)
			if not active_status:
				print "The test order %s has been stop by the server"
				break
			match=re.search(r'^(\d{1,4})\s(\d+)',crcase)
			if not match:
				print 'Not matched, the format of testcase is not correct, can not generate the tclfile'
				order.failedcases[crcase]= "The test case is not in database"
				#order.remainingcases.remove(crcase)

			else: 
				#order.remainingcases.remove(crcase)
				order.passedcases.append(crcase)
				print match.group(1),match.group(2)
				cur_case=iccase(match.group(1),match.group(2))
				#print order.clientIP
				if cur_case.isInited():
					for curclient in order.clientlist:
						print 'curclient:',curclient
						#ttt='C'
						#print order.clientIP[curclient]['P'+ttt]
						#print curclientinfo['PA'],curclientinfo['PB'],curclientinfo['PC'],curclientinfo['PD'],curclientinfo['PE']

						if ':' in curclient:
							if cur_case.radio != 'Dual':
								print 'The current case radio is different, skip this client-------------------\n'
							else:
								print "the Dual band test"
								curclient_1=curclient.split(':')[0]
								curclient_2=curclient.split(':')[1]
								curclient_1info=order.clientIP[curclient_1]
								curclient_2info=order.clientIP[curclient_2]
								cur_case.clientID=curclient_1info['clientid']
								cur_case.location=['A','B','C','D','E']
								#curclient_1info['radio']=='2.4GHz':
								cur_case.endpoint_2G['A']=curclient_1info['A']
								cur_case.endpoint_5G['A']=curclient_2info['A']
								cur_case.endpoint_2G['PA']=curclient_1info['PA']
								cur_case.endpoint_5G['PA']=curclient_2info['PA']								
								if order.testbed == 8:
									cur_case.endpoint_2G['B']=curclient_1info['B']
									cur_case.endpoint_2G['C']=curclient_1info['C']
									cur_case.endpoint_2G['D']=curclient_1info['D']
									cur_case.endpoint_2G['E']=curclient_1info['E']
									cur_case.endpoint_5G['B']=curclient_2info['B']
									cur_case.endpoint_5G['C']=curclient_2info['C']
									cur_case.endpoint_5G['D']=curclient_2info['D']
									cur_case.endpoint_5G['E']=curclient_2info['E']
									cur_case.endpoint_2G['PB']=curclient_1info['PB']
									cur_case.endpoint_2G['PC']=curclient_1info['PC']
									cur_case.endpoint_2G['PD']=curclient_1info['PD']
									cur_case.endpoint_2G['PE']=curclient_1info['PE']
									cur_case.endpoint_5G['PB']=curclient_2info['PB']
									cur_case.endpoint_5G['PC']=curclient_2info['PC']
									cur_case.endpoint_5G['PD']=curclient_2info['PD']
									cur_case.endpoint_5G['PE']=curclient_2info['PE']									
								cur_case.creatclonefile()

								if numangle!=0:
									for iangle in range(numangle):
										#print order.anglelist
										cur_case.xangle=order.anglelist[iangle]

										print cur_case.xangle
										setangle_success=order.iturntable.setangle(cur_case.xangle)
										time.sleep(10)
										if not setangle_success:
											print " Failed to set the turntable angle, the system exit"
											break

										#print 'order.client:',order.client
										asucess=cur_case.go(curclient, order.client_location)
										if not asucess:
											order.failedcasecount+=1
											print "failed once",order.failedcasecount

										else:
											order.passedcasecount+=1
											print "passed",order.passedcasecount
										cur_case.uploadresult(order,dut,tms_server)
										#print cur_case.result_pdf,'\n',cur_case.result_csv,'\n',cur_case.result_tst
										cur_case.dealresult(order.backupdir,cur_case.xangle)
										order.errorlog+=' end :%s    \n' % datetime.datetime.now().strftime('%H:%M:%S')
										atestcasestatus='%s_%s_%s'%(order.passedcasecount,order.failedcasecount,order.totalcasecount)
										#atestcasestatus='%s_%s_%s'%(len(order.passedcases),len(order.failedcases),order.totalcases-len(order.failedcases)-len(order.failedcases))
										TMS.updateprogress((order.passedcasecount+order.failedcasecount)/float(order.totalcasecount)*100,'------',order.errorlog,atestcasestatus,order.order_exec_id,1)
										#for angleindex in range(order.xangle):
											#cur_case.xangle=ixchorder.iturntable.angle[angleindex]
											#

												#print " Failed to set the turntable angle, the system exit"
												#sys.exit(0)



								else:
									print iangle,[0,90,180,270][iangle]
									sys.exit(0)




						else:

							curclientinfo=order.clientIP[curclient]
							if cur_case.radio != curclientinfo['radio']:
								print 'The current case radio is different, skip this client-------------------\n'
							else:
								print '\n-----radio',cur_case.radio,curclientinfo['radio'],'clientID',curclientinfo['clientid'],'\n clientIP',curclientinfo['A'],'------'
								cur_case.clientID=curclientinfo['clientid']
								if order.testbed ==9:
									cur_case.location=['A','B','C','D','E']
								elif order.testbed ==8:
									cur_case.location=['A','B','C','D','E']
								else:
									print "wrong testbed"
									sys.exit(0)

								if cur_case.radio=='2.4GHz':
									cur_case.endpoint_2G['A']=curclientinfo['A']
									cur_case.endpoint_2G['PA']=curclientinfo['PA']
									if order.testbed == 8:
										cur_case.endpoint_2G['B']=curclientinfo['B']
										cur_case.endpoint_2G['C']=curclientinfo['C']
										cur_case.endpoint_2G['D']=curclientinfo['D']
										cur_case.endpoint_2G['E']=curclientinfo['E']
										cur_case.endpoint_2G['PB']=curclientinfo['PB']
										cur_case.endpoint_2G['PC']=curclientinfo['PC']
										cur_case.endpoint_2G['PD']=curclientinfo['PD']
										cur_case.endpoint_2G['PE']=curclientinfo['PE']										
								elif cur_case.radio=='5GHz':
									#cur_case.endpoint_5G['base']='192.168.8.205'
									cur_case.endpoint_5G['A']=curclientinfo['A']
									cur_case.endpoint_5G['PA']=curclientinfo['PA']
									if order.testbed == 8:
										cur_case.endpoint_5G['B']=curclientinfo['B']
										cur_case.endpoint_5G['C']=curclientinfo['C']
										cur_case.endpoint_5G['D']=curclientinfo['D']
										cur_case.endpoint_5G['E']=curclientinfo['E']
										cur_case.endpoint_5G['PB']=curclientinfo['PB']
										cur_case.endpoint_5G['PC']=curclientinfo['PC']
										cur_case.endpoint_5G['PD']=curclientinfo['PD']
										cur_case.endpoint_5G['PE']=curclientinfo['PE']										
								else:
									print "not supported"
								cur_case.creatclonefile()	
								if numangle!=0:
									for iangle in range(numangle):
										print 'iangle',iangle
										cur_case.xangle=order.anglelist[iangle]
										setangle_success=order.iturntable.setangle(cur_case.xangle)
										time.sleep(10)
										if not setangle_success:
											print " Failed to set the turntable angle, the system exit"
											break

										#print 'order.client:',order.client
										#cur_case.go(curclient, order.client_location)
										asucess=cur_case.go(curclient, order.client_location)
										if not asucess:
											order.failedcasecount+=1
											print "failed once",order.failedcasecount

										else:
											order.passedcasecount+=1
											print "passed",order.passedcasecount
										cur_case.uploadresult(order,dut,tms_server)
										#print cur_case.result_pdf,'\n',cur_case.result_csv,'\n',cur_case.result_tst
										cur_case.dealresult(order.backupdir,cur_case.xangle)
										#print fo.log
										#order.errorlog+=fo.log
										#print order.errorlog
										order.errorlog+=' end :%s    \n' % datetime.datetime.now().strftime('%H:%M:%S')

										atestcasestatus='%s_%s_%s'%(order.passedcasecount,order.failedcasecount,order.totalcasecount)
										#atestcasestatus='%s_%s_%s'%(len(order.passedcases),len(order.failedcases),order.totalcases-len(order.failedcases)-len(order.failedcases))
										TMS.updateprogress((order.passedcasecount+order.failedcasecount)/float(order.totalcasecount)*100,'------',order.errorlog,atestcasestatus,order.order_exec_id,1)
										#for angleindex in range(order.xangle):
											#cur_case.xangle=ixchorder.iturntable.angle[angleindex]
											#

												#print " Failed to set the turntable angle, the system exit"
												#sys.exit(0)



								else:
									print iangle,[0,90,180,270][iangle]
									sys.exit(0)

						#print ixchorder.iturntable[0]

						#print curclientinfo  case.location=['A','B','C','D','E'] case.clientID='2'

					#print 'curclient:',curclient,'radio',curclient,'clientID',curclientinfo['clientid'],'A:',curclientinfo['A'],'E:',curclientinfo['E']

					#case_i.dealresult(dut,'./tmpresult','./tmpresult')
					#case_i.uploadresult(testorder,dut,tms_server)
					print 'Failinfo',cur_case.Failinfo
					if not cur_case.Failinfo:
						print 'pass'
					else:
						print 'fail'
				else:
					print "the case failed"
Example #9
0
	testcaseid=''
	#upload_result['testdate']=time.strftime('%Y-%m-%d')
	
	if len(sys.argv) != 2 :
	 	print '--Wrong usage ! The program exited!--'
		sys.exit(1)
		
	orderid=sys.argv[1]
	if not orderid.isdigit():
		print 'The order ID is not correct format, please check it again'
		sys.exit(1)
		
  	print "Now run the cases from TMS server testorder ID: %s" %orderid
  	#tooltype,swbuild,product_id,testbed,tl_testplanid,runningcases=getcase(orderid)
  	#upload_result["resulttype"],upload_result['swbuild_id'],upload_result['product_id'],testbed,tl_testplanid,runningcases=TMS2.getcase(orderid)
  	upload_result['swbuild_id'],upload_result['product_id'],testbed,upload_result['testplan'],dut_parameter['APModel'],dut_parameter['APSWVersion'],runningcases,dut_parameter['IP'],dut_parameter['NumTxAntennas'],dut_parameter['NumTxAntennas5G']=TMS.getcase(orderid) 
	print dut_parameter['IP'],dut_parameter['NumTxAntennas'],dut_parameter['NumTxAntennas5G']  	
	#upload_result['testplan']=match.group(2)
	#runningcases,testbed,upload_result['testplan']=TMS2.getcase(orderid)
	#dut_parameter['IP'],dut_parameter['NumTxAntennas'],dut_parameter['NumTxAntennas5G']
	
	totalcases=len(runningcases)
	print "There are total %s cases to run.\n"%totalcases
	running_status=TMS.getrunningstatus(orderid)	
	if running_status==1:
		print "The running status is 1, the test can start."
	else:
		print "The running status is 0,stop the test"
		#sys.exit(1)
	
	#print totalcases,testbed,running_status,runningcases,Tstype