class Testchannel1(unittest.TestCase): """项目管理-渠道管理接口""" @classmethod def setUpClass(cls): pass #---------------------------------------LOCALE START-------------------------------------------# @ddt.data(*(scripts.loadDdtData(filename='channel1.yaml', caseflag='channel1_CASE1'))) def testlist(self, data): '''渠道管理接口:查询渠道列表#/project/channel1/list''' #查询渠道列表 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['List'], desc=data['Desc'], url=data['Url'], instance_pro='post') #断言 self.assertEqual(res['code'], 0, res['msg']) #断言 @ddt.data(*(scripts.loadDdtData(filename='channel1.yaml', caseflag='channel1_CASE2'))) def testgetlist(self, data): '''渠道管理接口:查询渠道列表不分页#/project/channel1/getlist''' # 查询渠道列表不分页 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['GetList'], desc=data['Desc'], url=data['Url'], instance_pro='post') #断言 self.assertEqual(res['code'], 0, res['msg']) # self.assertTrue(res['res'],msg='查询列表为空为空res[]') @ddt.data(*(scripts.loadDdtData(filename='channel1.yaml', caseflag='channel1_CASE3'))) def testadd(self, data): '''渠道管理接口:新添加渠道#/project/channel1/add''' b = data['Add']['channel1Code'] print b newcode = b + str(scripts.sjshu()) print newcode data['Add']['channel1Code'] = newcode # 新添加渠道 res = scripts.loadtestInterface(instance=HttpWebRequest(), instance_pro='post', data=data['Add'], desc=data['Desc'], url=data['Url']) #断言 self.assertEqual(res['code'], 0, res['msg']) @ddt.data(*(scripts.loadDdtData(filename='channel1.yaml', caseflag='channel1_CASE4'))) def testupdate(self, data): '''渠道管理接口:更新渠道信息#/project/channel1/update''' # 更新渠道信息 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['Updata'], desc=data['Desc'], url=data['Url'], instance_pro='post') #断言 self.assertEqual(res['code'], 0, res['msg']) @ddt.data(*(scripts.loadDdtData(filename='channel1.yaml', caseflag='channel1_CASE5'))) def testdetele(self, data): '''渠道管理接口:删除渠道信息#/project/channel1/delete''' # 删除渠道 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['detele'], desc=data['Desc'], url=data['Url'], instance_pro='post') #断言 self.assertEqual(res['code'], 0, res['msg']) @classmethod def tearDownClass(cls): pass
class TestMachine(unittest.TestCase): """机器后台-管理接口""" @classmethod def setUpClass(cls): pass @ddt.data(*(scripts.loadDdtData(filename='machine.yaml', caseflag='MACHINE_CASE1'))) def testint(self, data): '''机器后台管理接口:初始化机器#/machine/initMachine''' intdata = json.dumps(data['int']) intnew = encrypt.jiami(intdata) #初始化机器 res = scripts.loadtestInterface(instance=HttpWebRequestss(), data=intnew, desc=data['Desc'], url=data['Url'], instance_pro='post') #断言 # print res res2 = json.loads(decrypt.jiemi(res)) self.assertEqual(res2['code'], 0) #断言 @ddt.data(*(scripts.loadDdtData(filename='machine.yaml', caseflag='MACHINE_CASE2'))) def testgetid(self, data): '''机器后台管理接口:获取机器ID#/machine/generateMachineId''' getiddata = json.dumps(data['getid']) getidnew = encrypt.jiami(getiddata) # 获取机器ID res = scripts.loadtestInterface(instance=HttpWebRequestss(), data=getidnew, desc=data['Desc'], url=data['Url'], instance_pro='post') #断言 res2 = json.loads(decrypt.jiemi(res)) self.assertEqual(res2['code'], 0) #断言 @ddt.data(*(scripts.loadDdtData(filename='machine.yaml', caseflag='MACHINE_CASE3'))) def testgetstatus(self, data): '''机器后台管理接口:获取机器状态#/machine/getMachineStatus''' getstatusdata = json.dumps(data['getstatus']) getstatusnew = encrypt.jiami(getstatusdata) # 获取机器状态 res = scripts.loadtestInterface(instance=HttpWebRequestss(), instance_pro='post', data=getstatusnew, desc=data['Desc'], url=data['Url']) res2 = json.loads(decrypt.jiemi(res)) self.assertEqual(res2['code'], 0) #断言 @ddt.data(*(scripts.loadDdtData(filename='machine.yaml', caseflag='MACHINE_CASE4'))) def testupstatus(self, data): '''机器后台管理接口:更改机器状态#/machine/updateMachineStatus''' upstatusdata = json.dumps(data['upstatus']) upstatusnew = encrypt.jiami(upstatusdata) # 更改机器状态 res = scripts.loadtestInterface(instance=HttpWebRequestss(), data=upstatusnew, desc=data['Desc'], url=data['Url'], instance_pro='post') res2 = json.loads(decrypt.jiemi(res)) self.assertEqual(res2['code'], 0) #断言 @ddt.data(*(scripts.loadDdtData(filename='machine.yaml', caseflag='MACHINE_CASE5'))) def testgetlocale(self, data): '''机器后台管理接口:获取机器点位#/machine/getMachineLocale''' getlocaledata = json.dumps(data['getlocale']) getloaclenew = encrypt.jiami(getlocaledata) # 获取机器点位 res = scripts.loadtestInterface(instance=HttpWebRequestss(), data=getloaclenew, desc=data['Desc'], url=data['Url'], instance_pro='post') res2 = json.loads(decrypt.jiemi(res)) self.assertEqual(res2['code'], 0) #断言 @ddt.data(*(scripts.loadDdtData(filename='machine.yaml', caseflag='MACHINE_CASE6'))) def testgetapp(self, data): '''机器后台管理接口:获取机器上app#/app/getAppByBlong''' getappdata = json.dumps(data['getapp']) getappnew = encrypt.jiami(getappdata) # 获取机器上app res = scripts.loadtestInterface(instance=HttpWebRequestss(), data=getappnew, desc=data['Desc'], url=data['Url'], instance_pro='post') res2 = json.loads(decrypt.jiemi(res)) self.assertEqual(res2['code'], 0) #断言 @ddt.data(*(scripts.loadDdtData(filename='machine.yaml', caseflag='MACHINE_CASE7'))) def testsetchannel(self, data): '''机器后台管理接口:合并拆分货道#//machine/setMachineChannel''' setchanneldata = json.dumps(data['setchannel']) setchannelnew = encrypt.jiami(setchanneldata) # 合并拆分货道 res = scripts.loadtestInterface(instance=HttpWebRequestss(), data=setchannelnew, desc=data['Desc'], url=data['Url'], instance_pro='post') res2 = json.loads(decrypt.jiemi(res)) self.assertEqual(res2['code'], 0) #断言 @classmethod def tearDownClass(cls): pass
class TestBGameScenario(unittest.TestCase):#点72后台接口测试场景 '''点72后台-API接口场景''' #初始化,setUp每个测试方法,执行一次;如果需要只执行一次使用setUpClass(cls) 需要classmethod修饰 def setUp(self): self.configPath = gl.configPath configyaml = os.path.join(self.configPath,'config.yaml') self.reportPath = gl.reportPath ''' #获得活动信息>>预登录接口>>>polling用户登录session信息>>>>下单接口>>polling订单支付状态>>>>出货接口 ''' @unittest.skipIf(scripts.getRunFlag('testbiaoservernewhulogin') == 'N', '验证执行配置') @ddt.data(*scripts.loadDdtData(Itype='s', filename='biaogame.yaml', caseflag='GAMECASENEWHUPAI')) def testbiaoservernewhulogin(self, data): '''获得活动信息->预登录接口->polling用户登录session信息->下单接口->polling订单支付状态->出货接口''' '''--------------------------预登录接口需登录----------------------''' # 整合数据,调用接口,获取返回结果 #预登录接口 # data['standardPrepareLogindata']['params']['machineCode'] = machineCode # # res = scripts.loadtestInterface( # instance=HttpWebRequest(), # instance_pro='post', # data=json.dumps(data['standardPrepareLogindata']), # desc=data['Desc'], # url=data['GameUrl'] # ) # sessionUuid = reslogin['data']['sessionUuid'] # print 'sessionUuid: ' + sessionUuid # #断言 # self.assertEqual(reslogin['code'],0,reslogin['msg']) # print reslogin['data']['qrCodeUrl'] # sleep(30) '''--------------------------获得活动信息----------------------''' # 整合数据,调用接口,获取返回结果 #获得活动信息 res = scripts.loadtestInterface( instance=HttpWebRequest(), instance_pro='post', data=json.dumps(data['standardFindActivitydata']), desc=data['Desc'], url=data['GameUrl'] ) #断言 machineCode = res['data']['machineCode'] activityPlanId = res['data']['activityPlanId'] activityId = res['data']['activityId'] activityType = res['data']['activityType'] print activityType print '各数据信息:' +'machineCode: '+ machineCode+' ' +'activityPlanId: '+ activityPlanId+' ' +'activityId: '+activityId self.assertEqual(res['code'],0,res['msg'])#断言 self.assertEqual(res['data']['activityType'], 1, res['msg']) '''--------------------------获取商品信息----------------------''' # 整合数据,调用接口,获取返回结果 #下单接口 # data['standardgetSamplingNew']['machineCode'] = machineCode res = scripts.loadtestInterface( instance=HttpWebRequestget(), instance_pro='post', data='------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name=\"machineCode\"\r\n\r\n18383061\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--', desc=data['Desc'], url=data['GoodsUrl'] ) newgoodid = res['data'][0]['id'] newgoodcode = res['data'][0]['code'] newsellerid = res['data'][0]['sellerId'] newshopId = res['data'][0]['shopId'] newsessionKey = res['data'][0]['sessionKey'] newnum = res['data'][0]['num'] print newgoodid,newgoodcode,newsellerid,newshopId,newsessionKey,newnum #断言 self.assertEqual(res['code'],0,res['msg']) '''--------------------------polling用户登录session信息----------------------''' # 整合数据,调用接口,获取返回结果 #polling用户登录session信息 data['standardSessionPollingdata']['params']['sessionUuid'] = machineCode res = scripts.loadtestInterface( instance=HttpWebRequest(), instance_pro='post', data=json.dumps(data['standardSessionPollingdata']), desc=data['Desc'], url=data['GameUrl'] ) #断言 userNick = res['data']['userNick'] canOrder = res['data']['canOrder'] goodsId = res['data']['goodsId'] goodsCode = res['data']['goodsCode'] isScanned = res['data']['isScanned'] countGoods = res['data']['countGoods'] sellerId = res['data']['sellerId'] print userNick print canOrder print goodsId print goodsCode print isScanned print countGoods print sellerId #断言 self.assertEqual(res['code'],0,res['msg']) self.assertTrue(res['data']['userNick']) self.assertEqual(res['data']['canOrder'],True,res['msg']) self.assertEqual(res['data']['countGoods'], True, res['msg']) self.assertEqual(res['data']['logged'],True,res['msg']) self.assertTrue(res['data']['goodsId']) self.assertTrue(res['data']['goodsCode']) self.assertTrue(res['data']['sellerId']) self.assertEqual(res['data']['isScanned'], True, res['msg']) '''--------------------------下单接口----------------------''' # 整合数据,调用接口,获取返回结果 #下单接口 data['standardOrderdata']['params']['sessionUuid'] = machineCode res = scripts.loadtestInterface( instance=HttpWebRequest(), instance_pro='post', data=json.dumps(data['standardOrderdata']), desc=data['Desc'], url=data['GameUrl'] ) channelIds = res['data']['goods'][0]['channelIds'][0] payQrcodeImage = res['data']['payQrcodeImage'] print 'channelIds:'+channelIds print 'payQrcodeImage: '+payQrcodeImage #断言 self.assertEqual(res['code'],0,res['msg']) self.assertEqual(res['data']['orderResult'],0,res['msg']) '''--------------------------polling订单支付状态----------------------''' # 整合数据,调用接口,获取返回结果 #polling订单支付状态 data['standardOrderPollingdata']['params']['sessionUuid'] = machineCode res = scripts.loadtestInterface( instance=HttpWebRequest(), instance_pro='post', data=json.dumps(data['standardOrderPollingdata']), desc=data['Desc'], url=data['GameUrl'] ) # channelIds = res['data']['goods'][0]['channelIds'][0] # print 'channelIds:'+channelIds #断言 self.assertEqual(res['code'],0,res['msg'])#断言 self.assertEqual(res['data']['model'],True,res['msg']) '''--------------------------出货接口----------------------''' # 整合数据,调用接口,获取返回结果 #出货接口 data['standardShipmentdata']['params']['sessionUuid'] = machineCode data['standardShipmentdata']['params']['machineCode'] = machineCode data['standardShipmentdata']['params']['channelId'] = channelIds res = scripts.loadtestInterface( instance=HttpWebRequest(), instance_pro='post', data=json.dumps(data['standardShipmentdata']), desc=data['Desc'], url=data['GameUrl'] ) #断言 self.assertEqual(res['code'],0,res['msg'])#断言
class TestERPCheck(unittest.TestCase): """后台巡检管理-巡检管理接口""" @classmethod def setUpClass(cls): pass #---------------------------------------ERPCHECK START-------------------------------------------# @ddt.data(*(scripts.loadDdtData(filename='erpcheck.yaml', caseflag='ERPCHECK_CASE1'))) def testlist(self, data): '''后台巡检管理: 人员列表/check/user/list''' #巡检管理 人员列表 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['list'], desc=data['Desc'], url=data['Url'], instance_pro='post') #断言 self.assertEqual(res['code'], 0, res['msg']) #断言 @ddt.data(*(scripts.loadDdtData(filename='erpcheck.yaml', caseflag='ERPCHECK_CASE2'))) def testgetmachine(self, data): '''后台巡检管理: 查看机器/check/user/getUserMachinDetailList''' #巡检管理 人员列表 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['getmachine'], desc=data['Desc'], url=data['Url'], instance_pro='post') #断言 self.assertEqual(res['code'], 0, res['msg']) #断言 @ddt.data(*(scripts.loadDdtData(filename='erpcheck.yaml', caseflag='ERPCHECK_CASE3'))) def testadd(self, data): '''后台巡检管理: 添加人员#/check/user/add''' b = data['add']['cardNo'] c = data['add']['phone'] d = data['add']['name'] newcode = b + str(scripts.sjshu()) newphone = c + str(scripts.sjshu()) newname = d + str(scripts.sjshu()) # print newcode # print newphone # print newname data['add']['cardNo'] = newcode data['add']['phone'] = newphone data['add']['name'] = newname # 新添加商品 res = scripts.loadtestInterface(instance=HttpWebRequests(), instance_pro='post', data=json.dumps(data['add']), desc=data['Desc'], url=data['Url']) #断言 self.assertEqual(res['code'], 0, res['msg']) @ddt.data(*(scripts.loadDdtData(filename='erpcheck.yaml', caseflag='ERPCHECK_CASE4'))) def testdetail(self, data): '''后台巡检管理: 查看人员详情/check/user/detail''' #巡检管理 查看人员详情 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['detail'], desc=data['Desc'], url=data['Url'], instance_pro='post') #断言 self.assertEqual(res['code'], 0, res['msg']) #断言 @ddt.data(*(scripts.loadDdtData(filename='erpcheck.yaml', caseflag='ERPCHECK_CASE5'))) def testupdata(self, data): '''后台巡检管理: 更新人员#/check/user/update''' b = data['updata']['cardNo'] c = data['updata']['phone'] d = data['updata']['name'] newcode = b + str(scripts.sjshu()) newphone = c + str(scripts.sjshu()) newname = d + str(scripts.sjshu()) print newcode print newphone print newname data['updata']['cardNo'] = newcode data['updata']['phone'] = newphone data['updata']['name'] = newname # 更新人员 res = scripts.loadtestInterface(instance=HttpWebRequests(), instance_pro='post', data=json.dumps(data['updata']), desc=data['Desc'], url=data['Url']) #断言 self.assertEqual(res['code'], 0, res['msg']) @ddt.data(*(scripts.loadDdtData(filename='erpcheck.yaml', caseflag='ERPCHECK_CASE6'))) def testupdatastatus(self, data): '''后台巡检管理: 更新人员状态/check/user/updateStatus''' #巡检管理 查看人员详情 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['updatastatus'], desc=data['Desc'], url=data['Url'], instance_pro='post') #断言 self.assertEqual(res['code'], 0, res['msg']) #断言 @ddt.data(*(scripts.loadDdtData(filename='erpcheck.yaml', caseflag='ERPCHECK_CASE7'))) def testselectmachines(self, data): '''后台巡检管理: 选择机器/check/user/selectmachines''' # 巡检管理 选择机器 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['selectmachines'], desc=data['Desc'], url=data['Url'], instance_pro='post') # 断言 self.assertEqual(res['code'], 0, res['msg']) # 断言 @ddt.data(*(scripts.loadDdtData(filename='erpcheck.yaml', caseflag='ERPCHECK_CASE8'))) def testdelete(self, data): '''后台巡检管理: 人员删除/check/user/delete''' # 巡检管理 人员删除 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['delete'], desc=data['Desc'], url=data['Url'], instance_pro='post') # 断言 self.assertEqual(res['code'], 0, res['msg']) # 断言 @ddt.data(*(scripts.loadDdtData(filename='erpcheck.yaml', caseflag='ERPCHECK_CASE9'))) def testlistyuser(self, data): '''后台巡检管理: 故障类型列表/check/user/listyuser''' # 巡检管理 故障类型列表 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['listyuser'], desc=data['Desc'], url=data['Url'], instance_pro='post') # 断言 self.assertEqual(res['code'], 0, res['msg']) # 断言 @ddt.data(*(scripts.loadDdtData(filename='erpcheck.yaml', caseflag='ERPCHECK_CASE10'))) def testaddfault(self, data): '''后台巡检管理: 新增类型/check/user/add''' b = data['addfault']['name'] newcode = b + str(scripts.sjshu()) print newcode data['addfault']['name'] = newcode # 巡检管理 新增类型 res = scripts.loadtestInterface(instance=HttpWebRequests(), data=json.dumps(data['addfault']), desc=data['Desc'], url=data['Url'], instance_pro='post') # 断言 self.assertEqual(res['code'], 0, res['msg']) # 断言 @ddt.data(*(scripts.loadDdtData(filename='erpcheck.yaml', caseflag='ERPCHECK_CASE11'))) def testlistfault(self, data): '''后台巡检管理: 故障类型列表/check/user/listfault''' # 巡检管理 故障类型列表 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['listfault'], desc=data['Desc'], url=data['Url'], instance_pro='post') # 断言 self.assertEqual(res['code'], 0, res['msg']) # 断言 @ddt.data(*(scripts.loadDdtData(filename='erpcheck.yaml', caseflag='ERPCHECK_CASE12'))) def testdetailfault(self, data): '''后台巡检管理: 编辑页详情/check/faultType/detailfault''' # 巡检管理 编辑页详情 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['detailfault'], desc=data['Desc'], url=data['Url'], instance_pro='post') # 断言 self.assertEqual(res['code'], 0, res['msg']) # 断言 @ddt.data(*(scripts.loadDdtData(filename='erpcheck.yaml', caseflag='ERPCHECK_CASE13'))) def testudpatafault(self, data): '''后台巡检管理: 更新类型/check/faultType/udpatafault''' b = data['udpatafault']['name'] newcode = b + str(scripts.sjshu()) data['udpatafault']['name'] = newcode # 巡检管理 更新类型 res = scripts.loadtestInterface(instance=HttpWebRequests(), data=json.dumps(data['udpatafault']), desc=data['Desc'], url=data['Url'], instance_pro='post') # 断言 self.assertEqual(res['code'], 0, res['msg']) # 断言 @ddt.data(*(scripts.loadDdtData(filename='erpcheck.yaml', caseflag='ERPCHECK_CASE14'))) def testsave(self, data): '''后台巡检管理: 新增工单/check/fault/save''' b = data['save']['remark'] newcode = b + str(scripts.sjshu()) data['save']['remark'] = newcode # 巡检管理 更新类型 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['save'], desc=data['Desc'], url=data['Url'], instance_pro='post') # 断言 self.assertEqual(res['code'], 0, res['msg']) # 断言 @ddt.data(*(scripts.loadDdtData(filename='erpcheck.yaml', caseflag='ERPCHECK_CASE15'))) def testerplist(self, data): '''后台巡检管理: 工单列表接口/check/fault/erplist''' # 巡检管理 工单列表接口 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['erplist'], desc=data['Desc'], url=data['Url'], instance_pro='post') # 断言 self.assertEqual(res['code'], 0, res['msg']) # 断言 @ddt.data(*(scripts.loadDdtData(filename='erpcheck.yaml', caseflag='ERPCHECK_CASE16'))) def testerpdetail(self, data): '''后台巡检管理: 工单详情/check/fault/erpdetail''' # 巡检管理 工单详情 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['erpdetail'], desc=data['Desc'], url=data['Url'], instance_pro='post') # 断言 self.assertEqual(res['code'], 0, res['msg']) # 断言 @ddt.data(*(scripts.loadDdtData(filename='erpcheck.yaml', caseflag='ERPCHECK_CASE17'))) def testerpupdata(self, data): '''后台巡检管理: 工单状态操作/check/fault/erplist''' # 巡检管理 工单状态操作 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['erpupdata'], desc=data['Desc'], url=data['Url'], instance_pro='post') # 断言 self.assertEqual(res['code'], 0, res['msg']) # 断言 @ddt.data(*(scripts.loadDdtData(filename='erpcheck.yaml', caseflag='ERPCHECK_CASE18'))) def testerpanswer(self, data): '''后台巡检管理: 工单列表接口/check/fault/erpanswer''' # 巡检管理 工单列表接口 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['erpanswer'], desc=data['Desc'], url=data['Url'], instance_pro='post') # 断言 self.assertEqual(res['code'], 0, res['msg']) # 断言 @ddt.data(*(scripts.loadDdtData(filename='erpcheck.yaml', caseflag='ERPCHECK_CASE19'))) def testerpuserlist(self, data): '''后台巡检管理: 工单指派人员列表/check/fault/erpuserlist''' # 巡检管理 工单指派人员列表 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['erpuserlist'], desc=data['Desc'], url=data['Url'], instance_pro='post') # 断言 self.assertEqual(res['code'], 0, res['msg']) # 断言 @classmethod def tearDownClass(cls): pass
class TestLocale(unittest.TestCase): """货机管理-点位管理接口""" @classmethod def setUpClass(cls): pass #---------------------------------------LOCALE START-------------------------------------------# @ddt.data(*(scripts.loadDdtData(filename='locale.yaml', caseflag='LOCALE_CASE1'))) def testlist(self, data): '''点位管理接口:查询点位列表#/machine/locale/list''' #查询点位列表 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['List'], desc=data['Desc'], url=data['Url'], instance_pro='post') #断言 self.assertEqual(res['code'], 0, res['msg']) #断言 @ddt.data(*(scripts.loadDdtData(filename='locale.yaml', caseflag='LOCALE_CASE2'))) def testgetlist(self, data): '''点位管理接口:查询点位列表不分页#/machine/locale/getlist''' # 查询点位列表不分页 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['GetList'], desc=data['Desc'], url=data['Url'], instance_pro='post') #断言 self.assertEqual(res['code'], 0, res['msg']) # self.assertTrue(res['res'],msg='查询列表为空为空res[]') @ddt.data(*(scripts.loadDdtData(filename='locale.yaml', caseflag='LOCALE_CASE3'))) def testadd(self, data): '''点位管理接口:新添加点位#/machine/locale/add''' b = data['Add']['name'] print b newcode = b + str(scripts.sjshu()) print newcode data['Add']['name'] = newcode # 新添加点位 res = scripts.loadtestInterface(instance=HttpWebRequest(), instance_pro='post', data=data['Add'], desc=data['Desc'], url=data['Url']) # print res # print type(res) #断言 self.assertEqual(res['code'], 0, res['msg']) @ddt.data(*(scripts.loadDdtData(filename='locale.yaml', caseflag='LOCALE_CASE4'))) def testdetail(self, data): '''点位管理接口:查看点位详细#/machine/locale/detail''' # 查看点位详细 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['Detail'], desc=data['Desc'], url=data['Url'], instance_pro='post') #断言 self.assertEqual(res['code'], 0, res['msg']) @ddt.data(*(scripts.loadDdtData(filename='locale.yaml', caseflag='LOCALE_CASE5'))) def testupdate(self, data): '''点位管理接口:更新点位信息#/machine/locale/update''' # 更新点位信息 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['Updata'], desc=data['Desc'], url=data['Url'], instance_pro='post') #断言 self.assertEqual(res['code'], 0, res['msg']) @ddt.data(*(scripts.loadDdtData(filename='locale.yaml', caseflag='LOCALE_CASE6'))) def testdetele(self, data): '''点位管理接口:删除点位信息#/machine/locale/delete''' # 更新点位信息 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['detele'], desc=data['Desc'], url=data['Url'], instance_pro='post') #断言 self.assertEqual(res['code'], 0, res['msg']) @classmethod def tearDownClass(cls): pass
class TestShops(unittest.TestCase): """项目管理-店铺管理接口""" @classmethod def setUpClass(cls): pass #---------------------------------------LOCALE START-------------------------------------------# @ddt.data(*(scripts.loadDdtData(filename='shops.yaml',caseflag='SHOPS_CASE1'))) def testlist(self,data): '''项目管理接口:查询店铺列表#/project/shops/list''' #查询店铺列表 res = scripts.loadtestInterface( instance=HttpWebRequest(), data=data['List'], desc=data['Desc'], url=data['Url'], instance_pro='post' ) #断言 self.assertEqual(res['code'],0,res['msg'])#断言 @ddt.data(*(scripts.loadDdtData(filename='shops.yaml',caseflag='SHOPS_CASE2'))) def testgetlist(self,data): '''项目管理接口:查询店铺列表不分页#/project/shops/getlist''' # 查询店铺列表不分页 res = scripts.loadtestInterface( instance=HttpWebRequest(), data=data['GetList'], desc=data['Desc'], url=data['Url'], instance_pro='post' ) #断言 self.assertEqual(res['code'],0,res['msg']) # self.assertTrue(res['res'],msg='查询列表为空为空res[]') @ddt.data(*(scripts.loadDdtData(filename='shops.yaml',caseflag='SHOPS_CASE3'))) def testadd(self,data): '''店铺管理接口:新添加店铺#/project/shops/add''' b = data['Add']['shopCode'] print b newcode = b + str(scripts.sjshu()) print newcode data['Add']['shopCode'] = newcode # 新添加店铺 res = scripts.loadtestInterface( instance=HttpWebRequest(), instance_pro='post', data=data['Add'], desc=data['Desc'], url=data['Url'] ) #断言 self.assertEqual(res['code'],0,res['msg']) @ddt.data(*(scripts.loadDdtData(filename='shops.yaml',caseflag='SHOPS_CASE4'))) def testdetail(self,data): '''店铺管理接口:查看店铺#/project/shops/detail''' # 查看店铺详细 res = scripts.loadtestInterface( instance=HttpWebRequest(), data=data['Detail'], desc=data['Desc'], url=data['Url'], instance_pro='post' ) #断言 self.assertEqual(res['code'],0,res['msg']) @ddt.data(*(scripts.loadDdtData(filename='shops.yaml',caseflag='SHOPS_CASE5'))) def testupdate(self,data): '''店铺管理接口:更新店铺信息#/project/shops/update''' # 更新店铺信息 res = scripts.loadtestInterface( instance=HttpWebRequest(), data=data['Updata'], desc=data['Desc'], url=data['Url'], instance_pro='post' ) #断言 self.assertEqual(res['code'],0,res['msg']) @ddt.data(*(scripts.loadDdtData(filename='shops.yaml',caseflag='SHOPS_CASE6'))) def testdetele(self,data): '''店铺管理接口:删除店铺信息#/project/shops/delete''' # 删除店铺 res = scripts.loadtestInterface( instance=HttpWebRequest(), data=data['detele'], desc=data['Desc'], url=data['Url'], instance_pro='post' ) #断言 self.assertEqual(res['code'],0,res['msg']) @classmethod def tearDownClass(cls): pass
class TestActicityPlan(unittest.TestCase): """项目排期管理-活动排期管理接口""" @classmethod def setUpClass(cls): pass #---------------------------------------LOCALE START-------------------------------------------# @ddt.data(*(scripts.loadDdtData(filename='activityplan.yaml',caseflag='ACTIVITYPLAN_CASE1'))) def testlist(self,data): '''活动排期管理接口:查询活动排期列表#/project/activityPlan/list''' #查询活动排期列表 res = scripts.loadtestInterface( instance=HttpWebRequest(), data=data['List'], desc=data['Desc'], url=data['Url'], instance_pro='post' ) #断言 self.assertEqual(res['code'],0,res['msg'])#断言 @ddt.data(*(scripts.loadDdtData(filename='activityplan.yaml',caseflag='ACTIVITYPLAN_CASE2'))) def testgetlist(self,data): '''活动排期管理接口:查询活动排期不分页#/project/activityPlan/planMachineDetailList''' # 查询活动排期列表不分页 res = scripts.loadtestInterface( instance=HttpWebRequest(), data=data['GetList'], desc=data['Desc'], url=data['Url'], instance_pro='post' ) #断言 self.assertEqual(res['code'],0,res['msg']) # self.assertTrue(res['res'],msg='查询列表为空为空res[]') @ddt.data(*(scripts.loadDdtData(filename='activityplan.yaml',caseflag='ACTIVITYPLAN_CASE3'))) def testadd(self,data): '''活动排期管理接口:新添加活动排期#/project/activityPlan/add''' c = data['Add']['startTimeStr'] b = data['Add']['endTimeStr'] newstart = scripts.starttime() newend = scripts.endtime() data['Add']['startTimeStr'] = newstart data['Add']['endTimeStr'] = newend # 新添加活动排期 res = scripts.loadtestInterface( instance=HttpWebRequests(), instance_pro='post', # data = '{"gameId": "8cbd9bad1829454c8672f97ff531385d","userMaxTimes": "100000","goods": [{"resultCode":"1","prizeId": "9a6d230c5e1643caa8ead174f3fe059e","resultRemark": "挑战成功掉货","prizeType": "0"}, {"resultCode":"2","resultRemark": "挑战成功掉货","prizeId": "9a6d230c5e1643caa8ead174f3fe059e","prizeType": "1"}],"activityId": "8c9d37f5481d42d08d0221a4119bc5c2","startTimeStr":"2018-08-16 15:04","endTimeStr":"2018-08-31 15:04","machines": [{"machineCode": "18205961","machineId": "c67742623b7d492a84ea88be206c6708","state": "0"}]}', data=json.dumps(data['Add']), desc=data['Desc'], url=data['Url'] ) #断言 self.assertEqual(res['code'],0,res['msg']) @ddt.data(*(scripts.loadDdtData(filename='activityplan.yaml',caseflag='ACTIVITYPLAN_CASE4'))) def testdetail(self,data): '''活动排期管理接口:查看活动排期详细#/project/activityPlan/detail''' # 查看活动排期详细 res = scripts.loadtestInterface( instance=HttpWebRequest(), data=data['Detail'], desc=data['Desc'], url=data['Url'], instance_pro='post' ) #断言 self.assertEqual(res['code'],0,res['msg']) @ddt.data(*(scripts.loadDdtData(filename='activityplan.yaml',caseflag='ACTIVITYPLAN_CASE5'))) def testupdate(self,data): '''活动排期管理接口:更新活动排期信息#/project/activityPlan/update''' # 更新活动排期信息 res = scripts.loadtestInterface( instance=HttpWebRequests(), #data = '{"activityId":"8c9d37f5481d42d08d0221a4119bc5c2","activityName":"自动化测试活动08","startTimeStr":"2018-08-10 15:04","endTimeStr":"2018-08-31 15:04","gameId":"8cbd9bad1829454c8672f97ff531385d","userMaxTimes":"10000","dayUserMaxTimes":"10000","goods":[{"key":0,"name":"自动化测试","prizeId":"9a6d230c5e1643caa8ead174f3fe059e","prizeType":"1","resultCode":1,"resultRemark":"挑战成功掉货"},{"key":1,"name":"自动化测试","prizeId":"9a6d230c5e1643caa8ead174f3fe059e","prizeType":"1","resultCode":2,"resultRemark":"挑战成功掉货更新"}],"coupons":[],"machines":[{"machineCode":"18205961","machineId":"c67742623b7d492a84ea88be206c6708","state":0}],"id":"849790f5f8424e5ca0d5e3bf46170b72"}', data = json.dumps(data['Updata']), desc=data['Desc'], url=data['Url'], instance_pro='post' ) #断言 self.assertEqual(res['code'],0,res['msg']) @ddt.data(*(scripts.loadDdtData(filename='activityplan.yaml',caseflag='ACTIVITYPLAN_CASE6'))) def testdetele(self,data): '''活动排期管理接口:删除活动排期信息#/project/activityPlan/delete''' # 删除活动排期 res = scripts.loadtestInterface( instance=HttpWebRequest(), data=data['detele'], desc=data['Desc'], url=data['Url'], instance_pro='post' ) #断言 self.assertEqual(res['code'],0,res['msg']) @ddt.data(*(scripts.loadDdtData(filename='activityplan.yaml', caseflag='ACTIVITYPLAN_CASE7'))) def testselect(self, data): '''活动排期管理接口:选择机器#//project/activityPlan/selectAreaMachines''' # 选择机器 res = scripts.loadtestInterface( instance=HttpWebRequest(), data=data['select'], desc=data['Desc'], url=data['Url'], instance_pro='post' ) # 断言 self.assertEqual(res['code'], 0, res['msg']) @classmethod def tearDownClass(cls): pass
class TestGame(unittest.TestCase): """项目管理-游戏管理接口""" @classmethod def setUpClass(cls): pass #---------------------------------------LOCALE START-------------------------------------------# @ddt.data(*(scripts.loadDdtData(filename='game.yaml', caseflag='GAME_CASE1'))) def testlist(self, data): '''游戏管理接口:查询游戏列表#/project/game/list''' #查询游戏列表 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['List'], desc=data['Desc'], url=data['Url'], instance_pro='post') #断言 self.assertEqual(res['code'], 0, res['msg']) #断言 @ddt.data(*(scripts.loadDdtData(filename='game.yaml', caseflag='GAME_CASE2'))) def testgetlist(self, data): '''游戏管理接口:查询游戏详情#/project/game/getlist''' # 查询游戏详情 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['Detail'], desc=data['Desc'], url=data['Url'], instance_pro='post') #断言 self.assertEqual(res['code'], 0, res['msg']) # self.assertTrue(res['res'],msg='查询列表为空为空res[]') @ddt.data(*(scripts.loadDdtData(filename='game.yaml', caseflag='GAME_CASE3'))) def testadd(self, data): '''游戏管理接口:新添加游戏#/project/game/add''' # 新添加游戏 res = scripts.loadtestInterface(instance=HttpWebRequest(), instance_pro='post', data=data['Add'], desc=data['Desc'], url=data['Url']) #断言 self.assertEqual(res['code'], 0, res['msg']) @ddt.data(*(scripts.loadDdtData(filename='game.yaml', caseflag='GAME_CASE4'))) def testupdate(self, data): '''游戏管理接口:更新游戏信息#/project/game/update''' # 更新游戏信息 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['Updata'], desc=data['Desc'], url=data['Url'], instance_pro='post') #断言 self.assertEqual(res['code'], 0, res['msg']) @ddt.data(*(scripts.loadDdtData(filename='game.yaml', caseflag='GAME_CASE5'))) def testdetele(self, data): '''游戏管理接口:删除游戏#/project/game/detele''' # 删除游戏 res = scripts.loadtestInterface(instance=HttpWebRequest(), data=data['detele'], desc=data['Desc'], url=data['Url'], instance_pro='post') # 断言 self.assertEqual(res['code'], 0, res['msg']) @classmethod def tearDownClass(cls): pass
class TestActicity(unittest.TestCase): """项目管理-活动管理接口""" @classmethod def setUpClass(cls): pass #---------------------------------------LOCALE START-------------------------------------------# @ddt.data(*(scripts.loadDdtData(filename='activity.yaml',caseflag='ACTIVITY_CASE1'))) def testlist(self,data): '''活动管理接口:查询活动列表#/project/activity/list''' #查询活动列表 res = scripts.loadtestInterface( instance=HttpWebRequest(), data=data['List'], desc=data['Desc'], url=data['Url'], instance_pro='post' ) #断言 self.assertEqual(res['code'],0,res['msg'])#断言 @ddt.data(*(scripts.loadDdtData(filename='activity.yaml',caseflag='ACTIVITY_CASE2'))) def testgetlist(self,data): '''活动管理接口:查询活动列表不分页#/project/activity/getlist''' # 查询活动列表不分页 res = scripts.loadtestInterface( instance=HttpWebRequest(), data=data['GetList'], desc=data['Desc'], url=data['Url'], instance_pro='post' ) #断言 self.assertEqual(res['code'],0,res['msg']) # self.assertTrue(res['res'],msg='查询列表为空为空res[]') @ddt.data(*(scripts.loadDdtData(filename='activity.yaml',caseflag='ACTIVITY_CASE3'))) def testadd(self,data): '''活动管理接口:新添加活动#/project/activity/add''' b = data['Add']['code'] c = data['Add']['name'] newcode = b + str(scripts.sjshu()) newname = c + str(scripts.sjshu()) data['Add']['code'] = newcode data['Add']['name'] = newname # 新添加活动 res = scripts.loadtestInterface( instance=HttpWebRequest(), instance_pro='post', data=data['Add'], desc=data['Desc'], url=data['Url'] ) #断言 self.assertEqual(res['code'],0,res['msg']) @ddt.data(*(scripts.loadDdtData(filename='activity.yaml',caseflag='ACTIVITY_CASE4'))) def testdetail(self,data): '''活动管理接口:查看活动详细#/project/activity/detail''' # 查看活动详细 res = scripts.loadtestInterface( instance=HttpWebRequest(), data=data['Detail'], desc=data['Desc'], url=data['Url'], instance_pro='post' ) #断言 self.assertEqual(res['code'],0,res['msg']) @ddt.data(*(scripts.loadDdtData(filename='activity.yaml',caseflag='ACTIVITY_CASE5'))) def testupdate(self,data): '''活动管理接口:更新活动信息#/project/activity/update''' # 更新活动信息 res = scripts.loadtestInterface( instance=HttpWebRequest(), data=data['Updata'], desc=data['Desc'], url=data['Url'], instance_pro='post' ) #断言 self.assertEqual(res['code'],0,res['msg']) @ddt.data(*(scripts.loadDdtData(filename='activity.yaml',caseflag='ACTIVITY_CASE6'))) def testdetele(self,data): '''活动管理接口:删除活动信息#/project/activity/delete''' # 删除活动信息 res = scripts.loadtestInterface( instance=HttpWebRequest(), data=data['detele'], desc=data['Desc'], url=data['Url'], instance_pro='post' ) #断言 self.assertEqual(res['code'],0,res['msg']) @classmethod def tearDownClass(cls): pass
class TestScenario(unittest.TestCase): #点72后台接口测试场景 '''点72后台-API接口场景''' #初始化,setUp每个测试方法,执行一次;如果需要只执行一次使用setUpClass(cls) 需要classmethod修饰 def setUp(self): self.configPath = gl.configPath configyaml = os.path.join(self.configPath, 'config.yaml') self.reportPath = gl.reportPath ''' #生成二维码->获取登录信息->查看游戏列表->查看商品信息->下单->查看订单状态->出货后商品减量 ''' @unittest.skipIf(scripts.getRunFlag('testgameserver') == 'N', '验证执行配置') @ddt.data(*scripts.loadDdtData(Itype='s', filename='gameserver.yaml', caseflag='GameServer')) def testgameserver(self, data): '''生成二维码->获取登录信息->查看游戏列表->查看商品信息->下单->查看订单状态->出货后商品减量''' '''--------------------------生成二维码----------------------''' machineId = '19294124' # 整合数据,调用接口,获取返回结果 #生成二维码接口 # res = scripts.loadtestInterface( # instance=HttpWebRequestnew(), # instance_pro='post', # data=data['CreateQrCodedata'], # desc=data['Desc'], # url=data['GameUrl'] # ) Suuidcode = res['data']['qrCodeUrl'] print "TMURL:" + Suuidcode SUuidtoken = res['data']['sessionUuid'] print "Token:" + SUuidtoken SUuidtokenNew = unicode.encode(SUuidtoken) #断言 self.assertEqual(res['code'], 0, res['msg']) #断言 sleep(30) '''--------------------------获取登录信息----------------------''' Pdata = SUuidtokenNew eval(data['Pollingdata'])['params']['sessionUuid'] = Pdata # 整合数据,调用接口,获取返回结果 poll = scripts.loadtestInterface(instance=HttpWebRequest(), data=json.dumps({ "serviceName": "polling", "params": { "sessionUuid": Pdata }, "version": "1.0.0" }), desc=data['Desc'], url=data['GameUrl'], instance_pro='post') self.assertEqual(poll['code'], 0, poll['msg']) # 断言 '''--------------------------查看游戏列表----------------------''' # 整合数据,调用接口,获取返回结果 gamelist = scripts.loadtestInterface( instance=HttpWebRequest(), # data['FindGamedata'] data=json.dumps({ "serviceName": "findGame", "params": { "machineId": machineId, "planId": "", "version": "2.0", "versionInno72": "2.2" }, "version": "1.0.0" }), desc=data['Desc'], url=data['GameUrl'], instance_pro='post') activeplanid = gamelist['data']['activityPlanId'] print "activityPlanId:" + activeplanid activityPlanIdNew = unicode.encode(activeplanid) activityid = gamelist['data']['activityId'] print "activityId:" + activityid activityIdNew = unicode.encode(activityid) channelid = gamelist['data']['channelId'] print "channelId:" + channelid channelIdNew = unicode.encode(channelid) planCodeid = gamelist['data']['planCode'] print "planCodeid:" + planCodeid # planCodeidNew = unicode.encode(planCodeid) self.assertEqual(gamelist['code'], 0, gamelist['msg']) # 断言 '''--------------------------查看商品信息----------------------''' Acdata = activityPlanIdNew eval(data['FindProductdata'])['params']['activityPlanId'] = Acdata Chdata = channelIdNew eval(data['FindProductdata'])['params']['channelId'] = Chdata # 整合数据,调用接口,获取返回结果 product = scripts.loadtestInterface(instance=HttpWebRequest(), data=json.dumps({ "serviceName": "findProduct", "params": { "sessionUuid": Pdata, "machineId": machineId, "activityPlanId": Acdata, "channelId": Chdata, "report": "1" }, "version": "1.0.0" }), desc=data['Desc'], url=data['GameUrl'], instance_pro='post') FgoodsId = product['data']['goods'][0]['goodsId'] print "goodsId:" + FgoodsId FgoodsIdNew = unicode.encode(FgoodsId) goodsNumId = product['data']['goods'][0]['goodsNum'] print "goodsNumId:" + str(goodsNumId) channelids = product['data']['goods'][0]['channelIds'][0] print 'channelids:' + channelids channelidsNew = unicode.encode(FgoodsId) self.assertEqual(product['code'], 0, product['msg']) # 断言 '''--------------------------下单----------------------''' Oactividata = activityIdNew eval(data['Orderdata'])['params']['activityId'] = Oactividata Ochdata = channelIdNew eval(data['Orderdata'])['params']['channelId'] = Ochdata Ogoods = FgoodsIdNew eval(data['Orderdata'])['params']['itemId'] = Ogoods # 整合数据,调用接口,获取返回结果 order = scripts.loadtestInterface(instance=HttpWebRequest(), data=json.dumps({ "serviceName": "order", "params": { "sessionUuid": Pdata, "machineId": machineId, "activityPlanId": Acdata, "activityId": Oactividata, "channelId": Ochdata, "itemId": Ogoods }, "version": "1.0.0" }), desc=data['Desc'], url=data['GameUrl'], instance_pro='post') PorderId = order['data']['time'] print "PorderId:" + str(PorderId) # PorderIdNew = unicode.encode(PorderId) self.assertEqual(order['code'], 0, order['msg']) # 断言 '''--------------------------查看订单状态----------------------''' # Pdata = eval(data['OrderPollingdata'])['params']['sessionUuid'] # Pdata = SUuidtokenNew Orderdata = PorderId eval(data['Orderdata'])['params']['orderId'] = Orderdata # 整合数据,调用接口,获取返回结果 orderpoll = scripts.loadtestInterface(instance=HttpWebRequest(), data=json.dumps({ "serviceName": "orderPolling", "params": { "sessionUuid": Pdata, "orderId": Orderdata }, "version": "1.0.0" }), desc=data['Desc'], url=data['GameUrl'], instance_pro='post') self.assertEqual(orderpoll['code'], 0, orderpoll['msg']) # 断言 '''--------------------------出货后商品减量----------------------''' # Pdata = eval(data['ShipmentReportdata'])['params']['sessionUuid'] # Pdata = SUuidtokenNew # 整合数据,调用接口,获取返回结果 # channelids = channelidsNew # eval(data['ShipmentReportdata'])['params']['channelId'] = channelids shipreport = scripts.loadtestInterface( instance=HttpWebRequest(), # data=data['ShipmentReportdata'], data=json.dumps({ "serviceName": "shipmentReport", "params": { "machineId": machineId, "channelId": channelids, "sessionUuid": Pdata, "orderId": Orderdata }, "version": "1.0.0" }), desc=data['Desc'], url=data['GameUrl'], instance_pro='post') self.assertEqual(shipreport['code'], 0, shipreport['msg']) # 断言