Пример #1
0
class TestProductChannelCreate(unittest.TestCase):
	"""产品渠道添加接口"""
	API_URL = Config().get('OpenPlatform_API').get('ProductChannel').get('ProductChannelCreate')
	excel = DATA_PATH + '/OpenPlatform_Merchant.xlsx'

	def setUp(self):
		self.client = HTTPClient(url=self.API_URL, method='POST')
		self.mid = OpenPlatformCommon.getmid()
		self.cid = OpenPlatformCommon.getcid()
		logger.info('开始测试')

	def tearDown(self):
		logger.info('结束测试')

	def test_ProductChannelCreate01(self):
		"""简单验证添加产品渠道接口容错"""
		datas = ExcelReader(self.excel,sheet='ProductChannel').data
		for d in range(0,len(datas)):
			if datas[d]['is_execute'] == 'N':
				continue
			else:
				with self.subTest(data=datas[d]['CaseNo']+datas[d]['describe']):
					self.setUp()
					# logger.debug(datas[d])
					expect = datas[d]['expect_code']
					casename = str(datas[d]['describe'])
					caseNo = str(datas[d]['CaseNo'])
					#请求的参数剔除期望值列、是否执行列、描述列、用例编号列
					datas[d].pop('expect_code')
					datas[d].pop('is_execute')
					datas[d].pop('describe')
					datas[d].pop('CaseNo')
					if datas[d]['productId'] == '{pid}':
						datas[d]['productId'] = OpenPlatformCommon.getpid(self.mid)
					if datas[d]['channelId'] == '{cid}':
						datas[d]['channelId'] = self.cid
					#转换为json格式
					params = json.dumps(datas[d])
					
					headers={'Content-Type': "application/json"}
					res = self.client.send(data=params,headers=headers)
					# resultlist =[caseNo,casename,params,expect,res.text] 
					# resultdata.qppend(resultlist)				
					# logger.debug(res.text)
					result = JMESPathExtractor().extract(query='success', body=res.text)
					message = JMESPathExtractor().extract(query='message', body=res.text)
					msg = '\n请求地址:'+ res.url + '\n请求数据:' + params + '\n返回结果:' + res.text
					self.assertEqual(expect, str(result).lower(),msg=msg)
					self.assertNotIn('未知错误', str(message),msg=msg)
					self.tearDown()

	def test_ProductChannelCreate02(self):
		"""验证添加产品渠道成功后返回"""
		data = {"productId": "39ef52a391245e17ae89d8166ddfd666", "channelId": "39ef52a390e53c09739be5209d765d6b"}
		params = json.dumps(data)
		headers={'Content-Type': "application/json"}
		res = self.client.send(data=params,headers=headers)
		result = JMESPathExtractor().extract(query='success', body=res.text)
		message = JMESPathExtractor().extract(query='message', body=res.text)
		msg = '\n请求地址:'+ res.url + '\n请求数据:' + params + '\n返回结果:' + res.text
Пример #2
0
    def get_registinfo():
        """ -----获取游客注册信息-----
		
		"""
        datas = {
            "type": 1,
            "channelNo": 81036962,
            "packageNo": 81036962001,
            "ip": "59.41.117.126",
            "machineCode": "AotutestRegister",
            "appId": "8103xqzESJOPvBzwHikLWwTXHfF6iZzE",
            "terminalType": 1,
            "osVersion": "Android.8.3.1",
            "machineModel": "MI 9",
            "payload": {},
            "networkState": 0,
            "wifiName": "MISnet"
        }
        headers = {'Content-Type': "application/json"}
        url = Config().get('OpenPlatform_API').get('Player').get('Regist')
        client = HTTPClient(url=url, method='POST')
        res = client.send(data=json.dumps(datas), headers=headers)
        if JMESPathExtractor().extract(query='success', body=res.text):
            # res_openId = JMESPathExtractor().extract(query='data.openId', body=res.text)
            # res_unionId = JMESPathExtractor().extract(query='data.unionId', body=res.text)
            # res_nickname = JMESPathExtractor().extract(query='data.nickname', body=res.text)
            # res_account = JMESPathExtractor().extract(query='data.account', body=res.text)
            # res_password = JMESPathExtractor().extract(query='data.password', body=res.text)
            msg = JMESPathExtractor().extract(query='data', body=res.text)
        else:
            msg = "注册失败"
        return msg
Пример #3
0
    def getpid(mid, category=1, platform=0):
        """ -----获取产品id-----
		参数-mid:所属商户id
		参数-category:产品类型 1-APP 2-H5 3-小程序
		参数-platform:产品APP平台 0-安卓 1-苹果
		"""
        datas = {
            "merchantId": mid,
            "introduction": "Autotest自动化自动创建产品",
            "name": "Autotest测试",
            "department": "Web研发部门",
            "ecology": 0,
            "iconUrl": "Autotest",
            "category": category,
            "state": 1,
            "setting": {
                "platform": platform,
                "packageName": "Autotest",
                "signature": "Autotest",
                "bundleID": "Autotest.bundleID",
                "appId": "Autotest.appId",
                "h5Type": 0,
                "h5PlatformName": "AutotestH5",
                "h5Address": "Autotest.H5",
                "smallProgramId": "AutotestsmallProgramId",
                "smallPlatformType": 0
            }
        }
        headers = {'Content-Type': "application/json"}
        url = Config().get('OpenPlatform_API').get('Product').get('Product')
        client = HTTPClient(url=url, method='POST')
        res = client.send(data=json.dumps(datas), headers=headers)
        pid = JMESPathExtractor().extract(query='data', body=res.text)

        return pid
Пример #4
0
 def getmcode(mid):
     """获取商户编号,商户名称,商户简称,商户类型,商户状态"""
     params = {"id": mid}
     url = Config().get('OpenPlatform_API').get('Merchant').get(
         'MerchantGet')
     client = HTTPClient(url=url, method='GET')
     res = client.send(params=params)
     mcode = JMESPathExtractor().extract(query='data.code', body=res.text)
     mname = JMESPathExtractor().extract(query='data.name', body=res.text)
     mshortname = JMESPathExtractor().extract(query='data.shortName',
                                              body=res.text)
     #返回的商户类型
     mtype = JMESPathExtractor().extract(query='data.type', body=res.text)
     #返回的商户类型名称
     mtypename = JMESPathExtractor().extract(query='data.typeName',
                                             body=res.text)
     #返回的商户状态值
     mstate = JMESPathExtractor().extract(query='data.state', body=res.text)
     #返回的商户状态
     mstatename = JMESPathExtractor().extract(query='data.stateName',
                                              body=res.text)
     #返回的商户主体
     mprincipal = JMESPathExtractor().extract(query='data.principal',
                                              body=res.text)
     #返回的社会统一信用码
     mcreditcode = JMESPathExtractor().extract(query='data.creditCode',
                                               body=res.text)
     #返回的法人信息
     mlegalrepresentative = JMESPathExtractor().extract(
         query='data.legalRepresentative', body=res.text)
     return mcode, mname, mshortname, mtype, mtypename, mstate, mstatename
Пример #5
0
    def test_DeviceSet01(self):
        """批量验证设置用户常用设备接口容错"""
        datas = ExcelReader(self.excel, sheet='deviceNo').data
        for d in range(0, len(datas)):
            if datas[d]['is_execute'] == 'N':
                continue
            else:
                with self.subTest(data=datas[d]['CaseNo'] +
                                  datas[d]['describe']):
                    self.setUp()
                    # logger.debug(datas[d])
                    expect = json.loads(
                        ast.literal_eval(json.dumps(datas[d]['expection'])))
                    # expect = datas[d]['expection']
                    # logger.debug(expect)
                    # logger.debug(type(expect))
                    casename = str(datas[d]['describe'])
                    caseNo = str(datas[d]['CaseNo'])
                    playerId = datas[d]['playerId']
                    #请求的参数剔除期望值列、是否执行列、描述列、用例编号列
                    datas[d].pop('expection')
                    datas[d].pop('is_execute')
                    datas[d].pop('describe')
                    datas[d].pop('CaseNo')
                    datas[d].pop('playerId')
                    datas[d]['deviceNo'] = ast.literal_eval(
                        datas[d]['deviceNo'])
                    url = "%s%s" % (self.API_URL, playerId)
                    params = json.dumps(datas[d])
                    # logger.debug(type(params))
                    headers = {'Content-Type': "application/json"}
                    self.client = HTTPClient(url=url, method='POST')
                    res = self.client.send(data=params, headers=headers)
                    # resultlist =[caseNo,casename,params,expect,res.text]
                    # resultdata.qppend(resultlist)
                    # logger.debug(res.text)
                    res_success = JMESPathExtractor().extract(query='success',
                                                              body=res.text)
                    res_message = JMESPathExtractor().extract(query='message',
                                                              body=res.text)
                    res_error = JMESPathExtractor().extract(query='error',
                                                            body=res.text)
                    res_code = JMESPathExtractor().extract(query='code',
                                                           body=res.text)
                    responseTime = JMESPathExtractor().extract(
                        query='responseTime', body=res.text)
                    msg = '\n请求地址:' + res.url + '\n请求数据:' + params + '\n返回结果:' + res.text
                    self.assertEqual(expect['success'], res_success, msg=msg)
                    if 'message' in expect.keys():
                        self.assertEqual(expect['message'],
                                         res_message,
                                         msg=msg)
                    if 'error' in expect.keys():
                        self.assertEqual(expect['error'], res_error, msg=msg)

                    self.assertEqual(expect['code'], res_code, msg=msg)

                    self.tearDown()
Пример #6
0
class TestMall(unittest.TestCase):
    """统一订单接口"""
    API_URL = Config().get('API_URL').get('Pay')
    excel = DATA_PATH + '\PayTest.xlsx'

    def setUp(self):
        self.client = HTTPClient(url=self.API_URL, method='POST')

    def tearDown(self):
        logger.info('测试结束')

    def test_productlist(self):
        """钻石商城商品信息查询接口"""
        datas = ExcelReader(self.excel, sheet='ProductList').data
        for d in range(0, len(datas)):
            with self.subTest(data=datas[d]['describe']):
                self.setUp()
                # logger.debug(datas[d])
                expect = datas[d]['expectation']
                #请求的参数剔除期望值列、描述列
                datas[d].pop('expectation')
                datas[d].pop('describe')
                params = datas[d]
                res = self.client.send(data=params)
                # logger.debug(res.text)
                # result = JMESPathExtractor().extract(query='[0].itemName', body=res.text)
                self.assertEqual(expect, res.text)
                self.tearDown()
Пример #7
0
class TestDeviceList(unittest.TestCase):
    """查询用户常用设备列表接口"""
    API_URL = Config().get('OpenPlatform_API').get('User2').get('DeviceList')
    excel = DATA_PATH + '/OpenPlatform_Player.xlsx'

    def setUp(self):
        self.client = HTTPClient(url=self.API_URL, method='GET')
        logger.info('开始测试')

    def tearDown(self):
        logger.info('结束测试')

    def test_DeviceList01(self):
        """简单验证查询用户常用设备列表接口容错"""
        datas = ExcelReader(self.excel, sheet='UserSearch').data
        for d in range(0, len(datas)):
            if datas[d]['is_execute'] == 'N':
                continue
            else:
                with self.subTest(data=datas[d]['CaseNo'] +
                                  datas[d]['describe']):
                    self.setUp()
                    # logger.debug(datas[d])
                    expect = json.loads(
                        ast.literal_eval(json.dumps(datas[d]['expection'])))
                    casename = str(datas[d]['describe'])
                    caseNo = str(datas[d]['CaseNo'])
                    #请求的参数剔除期望值列、是否执行列、描述列、用例编号列
                    datas[d].pop('expection')
                    datas[d].pop('is_execute')
                    datas[d].pop('describe')
                    datas[d].pop('CaseNo')
                    params = datas[d]
                    res = self.client.send(params=params)
                    # resultlist =[caseNo,casename,params,expect,res.text]
                    # resultdata.qppend(resultlist)
                    # logger.debug(res.text)
                    result = JMESPathExtractor().extract(query='success',
                                                         body=res.text)
                    res_message = JMESPathExtractor().extract(query='message',
                                                              body=res.text)
                    res_error = JMESPathExtractor().extract(query='error',
                                                            body=res.text)
                    res_code = JMESPathExtractor().extract(query='code',
                                                           body=res.text)
                    responseTime = JMESPathExtractor().extract(
                        query='responseTime', body=res.text)
                    res_data = JMESPathExtractor().extract(query='data',
                                                           body=res.text)
                    msg = '\n请求地址:' + res.url + '\n返回结果:' + res.text
                    if 'message' in expect.keys():
                        self.assertEqual(expect['message'],
                                         res_message,
                                         msg=msg)
                    if 'error' in expect.keys():
                        self.assertEqual(expect['error'], res_error, msg=msg)
                    self.assertEqual(expect['code'], res_code, msg=msg)
                    if 'data' in expect.keys() and expect['data']:
                        self.assertEqual(expect['data'], res_data, msg=msg)
                    self.tearDown()
Пример #8
0
 def getmid():
     """获取商户id"""
     datas = {
         "name":
         "中顺网络公司",
         "shortName":
         "ZS棋牌",
         "type":
         1,
         "state":
         1,
         "principal":
         "中顺棋牌",
         "creditCode":
         "91440106589536704F",
         "legalRepresentative":
         "李石头",
         "mobile":
         "39956888",
         "address":
         "广东省广州市天河区天河软件园建中路50号多玩游戏大厦4楼",
         "contactName":
         "王小姐",
         "contactMobile":
         19978953221,
         "email":
         "*****@*****.**",
         "qq":
         54321,
         "weChat":
         "qkagame",
         "businessLicense":
         "20190722/953ba822fb8643b282e6102712d96c24.jpg",
         "classicalChinese":
         "20190722/c5e60fd2961b97aca2ea3ec735892a40.jpg",
         "icp":
         "20190722/056fa26e44814b1ea36b288df9523f2f.jpeg",
         "corporateIdentityCard":
         "20190722/9fc2f9a61ae8486084f69ea6393f637d.jpeg"
     }
     headers = {'Content-Type': "application/json"}
     url = Config().get('OpenPlatform_API').get('Merchant').get(
         'MerchantCreate')
     client = HTTPClient(url=url, method='POST')
     res = client.send(data=json.dumps(datas), headers=headers)
     mid = JMESPathExtractor().extract(query='data', body=res.text)
     return mid
Пример #9
0
    def getcid():
        """ -----获取渠道id-----
		
		"""
        datas = {
            "name": "Autotest渠道测试",
            "type": 1,
            "developerPlatform": "Autotest开发者平台"
        }
        headers = {'Content-Type': "application/json"}
        url = Config().get('OpenPlatform_API').get('Channel').get(
            'ChannelCreate')
        client = HTTPClient(url=url, method='POST')
        res = client.send(data=json.dumps(datas), headers=headers)
        cid = JMESPathExtractor().extract(query='data', body=res.text)

        return cid
Пример #10
0
class TestPlayerQuestion(unittest.TestCase):
	"""设置玩家问题接口"""
	API_URL = Config().get('OpenPlatform_API').get('SecurityQuestion').get('PlayerQuestion')
	excel = DATA_PATH + '/OpenPlatform_PlayerQuestion.xlsx'

	def setUp(self):
		self.client = HTTPClient(url=self.API_URL, method='POST')
		logger.info('开始测试')


	def tearDown(self):
		logger.info('结束测试')

	def test_PlayerQuestion01(self):
		"""批量验证设置玩家问题接口容错"""
		datas = ExcelReader(self.excel,sheet='PlayerQuestion').data
		for d in range(0,len(datas)):
			if datas[d]['is_execute'] == 'N':
				continue
			else:
				with self.subTest(data=datas[d]['CaseNo']+datas[d]['describe']):
					self.setUp()
					# logger.debug(datas[d])
					expect = json.loads(ast.literal_eval(json.dumps(datas[d]['expection'])))
					# expect = datas[d]['expection']
					casename = str(datas[d]['describe'])
					caseNo = str(datas[d]['CaseNo'])
					#请求的参数剔除期望值列、是否执行列、描述列、用例编号列
					datas[d].pop('expection')
					datas[d].pop('is_execute')
					datas[d].pop('describe')
					datas[d].pop('CaseNo')

					params = json.dumps(datas[d])
					# logger.debug(type(params))
					headers={'Content-Type': "application/json"}
					res = self.client.send(data=params,headers=headers)
					# resultlist =[caseNo,casename,params,expect,res.text] 
					# resultdata.qppend(resultlist)				
					# logger.debug(res.text)
					res_success = JMESPathExtractor().extract(query='success', body=res.text)
					res_message = JMESPathExtractor().extract(query='message', body=res.text)
					res_error = JMESPathExtractor().extract(query='error', body=res.text)
					res_code = JMESPathExtractor().extract(query='code', body=res.text)
					responseTime = JMESPathExtractor().extract(query='responseTime', body=res.text)
					res_data = JMESPathExtractor().extract(query='data', body=res.text)
					msg = '\n请求地址:'+ res.url + '\n请求数据:' + params + '\n返回结果:' + res.text
					self.assertEqual(expect['success'], res_success, msg=msg)
					if 'message' in expect.keys():
						self.assertEqual(expect['message'], res_message, msg=msg)
					if 'error' in expect.keys():
						self.assertEqual(expect['error'], res_error, msg=msg)
					self.assertEqual(expect['code'], res_code, msg=msg)
					if 'data' in expect.keys() and expect['data']:
						self.assertEqual(32, len(res_data), msg=msg)
						
					self.tearDown()
Пример #11
0
    def get_smscode(mobile):
        """ -----获取手机验证码-----
		
		"""
        datas = {
            "sesskey": "1",
            "mobile": mobile,
            "imgVerifyCode": "string",
            "smsProvider": 0
        }
        headers = {'Content-Type': "application/json"}
        url = Config().get('OpenPlatform_API').get('VerifyCode').get('sms')
        client = HTTPClient(url=url, method='POST')
        res = client.send(data=json.dumps(datas), headers=headers)
        if JMESPathExtractor().extract(query='success', body=res.text):
            msg = JMESPathExtractor().extract(query='error', body=res.text)
        else:
            msg = "获取验证码失败"
        return msg
Пример #12
0
class TestBaiDuHTTP(unittest.TestCase):
    URL = Config().get('URL_BD')

    def setUp(self):
        self.client = HTTPClient(url=self.URL, method='GET')

    def test_baidu_http(self):
        res = self.client.send()
        logger.debug(res.text)
        assertHTTPCode(res, [400])
        self.assertIn('百度一下,你就知道', res.text)
Пример #13
0
class TestPay(unittest.TestCase):
    """统一订单接口"""
    API_URL = Config().get('API_URL').get('Pay')
    excel = DATA_PATH + '\PayAPI.xlsx'

    def setUp(self):
        self.client = HTTPClient(url=self.API_URL, method='POST')

    def tearDown(self):
        logger.info('测试结束')

    def test_pay(self):
        """新平台"""
        datas = ExcelReader(self.excel, sheet='Pay').data
        resultdata = list()
        resultdata.insert(0, ["用例名称", "支付网关", "网站商务识别号", "返回结果"])
        for d in range(0, len(datas)):
            if datas[d]['is_execute'] == 'N':
                continue
            else:
                with self.subTest(data=datas[d]['describe']):
                    self.setUp()
                    # logger.debug(datas[d])

                    expect = datas[d]['expect_code']
                    casename = str(datas[d]['describe'])
                    paygateway = str(datas[d]['gateway'])
                    webid = str(datas[d]['identity'])
                    # logger.debug('{0} {1} '.format(resultlist,paygateway))
                    #随机生成订单号:13位时间戳+随机6个数字
                    datas[d]['orderNO'] = str(int(time.time() * 1000)) + str(
                        random_number())
                    #请求的参数剔除期望值列、描述列、结果列,是否执行列
                    datas[d].pop('expect_code')
                    datas[d].pop('is_execute')
                    datas[d].pop('describe')
                    datas[d].pop('result')
                    #转换为json格式
                    params = json.dumps(datas[d])
                    # logger.debug(type(params))
                    headers = {'Content-Type': "application/json"}
                    res = self.client.send(data=params, headers=headers)
                    resultlist = [casename, paygateway, webid, res.text]
                    resultdata.append(resultlist)
                    # logger.debug(res.text)
                    result = JMESPathExtractor().extract(query='code',
                                                         body=res.text)
                    self.assertEqual(expect, result)
                    self.tearDown()

            # logger.debug(resultdata)
            writeExcel(path=resultpath, data=resultdata)
Пример #14
0
 def getaid(mid):
     """获取管理员id, 传入的登录账户名"""
     account = random_password(length=10,
                               special_chars=False,
                               digits=True,
                               upper_case=True,
                               lower_case=True)
     datas = {
         "mid": mid,
         "loginAccount": account,
         "loginPassword": "******",
         "verifyPassword": "******",
         "position": "",
         "operator": "",
         "realName": "",
         "roleId": 3,
         "state": 1
     }
     headers = {'Content-Type': "application/json"}
     url = Config().get('OpenPlatform_API').get('Admin').get('AdminAdd')
     client = HTTPClient(url=url, method='POST')
     res = client.send(data=json.dumps(datas), headers=headers)
     aid = JMESPathExtractor().extract(query='data', body=res.text)
     return aid, account
Пример #15
0
class TestAdminAdd(unittest.TestCase):
    """管理员创建接口"""
    API_URL = Config().get('OpenPlatform_API').get('Admin').get('AdminAdd')
    excel = DATA_PATH + '/OpenPlatform_Merchant.xlsx'

    def setUp(self):
        self.client = HTTPClient(url=self.API_URL, method='POST')
        self.mid = OpenPlatformCommon.getmid()
        logger.info('开始测试')

    def tearDown(self):
        logger.info('结束测试')

    def test_AdminAdd01(self):
        """简单验证新增管理员接口容错"""
        datas = ExcelReader(self.excel, sheet='AddAdmin').data
        for d in range(0, len(datas)):
            if datas[d]['is_execute'] == 'N':
                continue
            else:
                with self.subTest(data=datas[d]['CaseNo'] +
                                  datas[d]['describe']):
                    self.setUp()
                    # logger.debug(datas[d])
                    expect = datas[d]['expect_code']
                    casename = str(datas[d]['describe'])
                    caseNo = str(datas[d]['CaseNo'])
                    #请求的参数剔除期望值列、是否执行列、描述列、用例编号列
                    datas[d].pop('expect_code')
                    datas[d].pop('is_execute')
                    datas[d].pop('describe')
                    datas[d].pop('CaseNo')
                    if datas[d]['mid'] == '{mid}':
                        datas[d]['mid'] = self.mid

                    if datas[d]['loginAccount'] == '{str+num}':
                        datas[d]['loginAccount'] = random_password(
                            length=10,
                            special_chars=False,
                            digits=True,
                            upper_case=True,
                            lower_case=True)
                    elif datas[d]['loginAccount'] == '{str}':
                        datas[d]['loginAccount'] = random_password(
                            length=10,
                            special_chars=False,
                            digits=False,
                            upper_case=True,
                            lower_case=True)
                    elif datas[d]['loginAccount'] == '{num}':
                        datas[d]['loginAccount'] = random_password(
                            length=10,
                            special_chars=False,
                            digits=True,
                            upper_case=False,
                            lower_case=False)
                    elif datas[d]['loginAccount'] == '{long}':
                        datas[d]['loginAccount'] = random_password(
                            length=100,
                            special_chars=False,
                            digits=True,
                            upper_case=True,
                            lower_case=True)
                    elif datas[d]['loginAccount'] == '{chinese}':
                        datas[d]['loginAccount'] = random_name()

                    #转换为json格式
                    params = json.dumps(datas[d])
                    # logger.debug(type(params))
                    headers = {'Content-Type': "application/json"}
                    res = self.client.send(data=params, headers=headers)
                    # resultlist =[caseNo,casename,params,expect,res.text]
                    # resultdata.qppend(resultlist)
                    # logger.debug(res.text)
                    result = JMESPathExtractor().extract(query='success',
                                                         body=res.text)
                    message = JMESPathExtractor().extract(query='message',
                                                          body=res.text)
                    msg = '\n请求地址:' + res.url + '\n请求数据:' + params + '\n返回结果:' + res.text
                    self.assertEqual(expect, str(result).lower(), msg=msg)
                    self.assertNotIn('未知错误', str(message), msg=msg)
                    self.tearDown()

    def test_AdminAdd02(self):
        """验证添加成功后返回是否正确"""
        account = random_password(length=10,
                                  special_chars=False,
                                  digits=True,
                                  upper_case=True,
                                  lower_case=True)
        datas = {
            "mid": self.mid,
            "loginAccount": account,
            "loginPassword": "******",
            "verifyPassword": "******",
            "position": "",
            "realName": "",
            "roleId": 1,
            "state": 1
        }
        headers = {'Content-Type': "application/json"}

        date = time.strftime('%Y-%m-%d', time.localtime(time.time()))
        res = self.client.send(data=json.dumps(datas), headers=headers)
        result = JMESPathExtractor().extract(query='success', body=res.text)
        responseTime = JMESPathExtractor().extract(query='responseTime',
                                                   body=res.text)
        res_aid = JMESPathExtractor().extract(query='data', body=res.text)
        msg = '\n请求地址:' + res.url + '\n请求数据:' + json.dumps(
            datas) + '\n返回结果:' + res.text
        self.assertEqual('true', str(result).lower(), msg=msg)
        self.assertNotIn('未知错误', str(res.text), msg=msg)
        self.assertIn(date, str(responseTime), msg=msg)
        self.assertEqual(32, len(res_aid), msg=msg)

    def test_AdminAdd03(self):
        """验证异常-同一商户新建2个商户管理员"""
        account1 = random_password(length=10,
                                   special_chars=False,
                                   digits=True,
                                   upper_case=True,
                                   lower_case=True)
        account2 = random_password(length=9,
                                   special_chars=False,
                                   digits=True,
                                   upper_case=True,
                                   lower_case=True)
        data1 = {
            "mid": self.mid,
            "loginAccount": account1,
            "loginPassword": "******",
            "verifyPassword": "******",
            "position": "",
            "realName": "",
            "roleId": 1,
            "state": 1
        }
        data2 = {
            "mid": self.mid,
            "loginAccount": account2,
            "loginPassword": "******",
            "verifyPassword": "******",
            "position": "",
            "realName": "",
            "roleId": 1,
            "state": 1
        }
        headers = {'Content-Type': "application/json"}
        date = time.strftime('%Y-%m-%d', time.localtime(time.time()))
        self.client.send(data=json.dumps(data1), headers=headers)
        res = self.client.send(data=json.dumps(data2), headers=headers)
        result = JMESPathExtractor().extract(query='success', body=res.text)
        responseTime = JMESPathExtractor().extract(query='responseTime',
                                                   body=res.text)
        res_data = JMESPathExtractor().extract(query='data', body=res.text)
        # res_aid = JMESPathExtractor().extract(query='data', body=res.text)
        msg = '\n请求地址:' + res.url + '\n请求数据:' + json.dumps(
            data2) + '\n返回结果:' + res.text
        self.assertEqual('false', str(result).lower(), msg=msg)
        self.assertNotIn('未知错误', str(res.text), msg=msg)
        self.assertIn(date, str(responseTime), msg=msg)
        self.assertIsNone(res_data, msg=msg)
        # self.assertEqual(32, len(res_aid),msg=msg)

    def test_AdminAdd04(self):
        """验证异常-新建同名管理员"""
        account = random_password(length=10,
                                  special_chars=False,
                                  digits=True,
                                  upper_case=True,
                                  lower_case=True)
        data = {
            "mid": self.mid,
            "loginAccount": account,
            "loginPassword": "******",
            "verifyPassword": "******",
            "position": "",
            "realName": "",
            "roleId": 1,
            "state": 1
        }
        headers = {'Content-Type': "application/json"}
        date = time.strftime('%Y-%m-%d', time.localtime(time.time()))
        self.client.send(data=json.dumps(data), headers=headers)
        res = self.client.send(data=json.dumps(data), headers=headers)
        result = JMESPathExtractor().extract(query='success', body=res.text)
        responseTime = JMESPathExtractor().extract(query='responseTime',
                                                   body=res.text)
        res_error = JMESPathExtractor().extract(query='error', body=res.text)
        res_data = JMESPathExtractor().extract(query='data', body=res.text)
        msg = '\n请求地址:' + res.url + '\n请求数据:' + json.dumps(
            data) + '\n返回结果:' + res.text
        self.assertEqual('false', str(result).lower(), msg=msg)
        self.assertNotIn('未知错误', str(res.text), msg=msg)
        self.assertIn(date, str(responseTime), msg=msg)
        self.assertEqual('该账号已存在!', res_error, msg=msg)
        self.assertIsNone(res_data, msg=msg)
Пример #16
0
class TestProductChannelList(unittest.TestCase):
    """产品渠道添加接口"""
    API_URL = Config().get('OpenPlatform_API').get('ProductChannel').get(
        'ProductChannelList')
    excel = DATA_PATH + '/OpenPlatform_Merchant.xlsx'

    def setUp(self):
        self.client = HTTPClient(url=self.API_URL, method='GET')
        self.mid = OpenPlatformCommon.getmid()
        logger.info('开始测试')

    def tearDown(self):
        logger.info('结束测试')

    def test_ProductChannelList01(self):
        """简单验证添加产品渠道接口容错"""
        datas = ExcelReader(self.excel, sheet='ProductChannelList').data
        for d in range(0, len(datas)):
            if datas[d]['is_execute'] == 'N':
                continue
            else:
                with self.subTest(data=datas[d]['CaseNo'] +
                                  datas[d]['describe']):
                    self.setUp()
                    # logger.debug(datas[d])
                    expect = datas[d]['expect_code']
                    casename = str(datas[d]['describe'])
                    caseNo = str(datas[d]['CaseNo'])
                    #请求的参数剔除期望值列、是否执行列、描述列、用例编号列
                    datas[d].pop('expect_code')
                    datas[d].pop('is_execute')
                    datas[d].pop('describe')
                    datas[d].pop('CaseNo')
                    if datas[d]['ProductId'] == '{pid}':
                        datas[d]['ProductId'] = OpenPlatformCommon.getpid(
                            self.mid)
                    # #转换为json格式
                    # params = json.dumps(datas[d])
                    params = datas[d]
                    # headers={'Content-Type': "application/json"}
                    res = self.client.send(params=params)

                    result = JMESPathExtractor().extract(query='success',
                                                         body=res.text)
                    message = JMESPathExtractor().extract(query='message',
                                                          body=res.text)
                    msg = '\n请求地址:' + res.url + '\n返回结果:' + res.text
                    self.assertEqual(expect, str(result).lower(), msg=msg)
                    self.assertNotIn('未知错误', str(message), msg=msg)
                    self.tearDown()

    def test_ProductChannelList02(self):
        """验证产品渠道列表成功返回"""
        data = {"ProductId": "39ef7c0979b17b02ec4616b4384ff1c8"}
        params = data
        res = self.client.send(params=params)
        result = JMESPathExtractor().extract(query='success', body=res.text)
        message = JMESPathExtractor().extract(query='message', body=res.text)
        res_data = JMESPathExtractor().extract(query='data', body=res.text)
        msg = '\n请求地址:' + res.url + '\n返回结果:' + res.text
        self.assertEqual('true', str(result).lower(), msg=msg)
        self.assertNotIn('未知错误', str(message), msg=msg)
        self.assertEqual(4, len(res_data), msg=msg)
        self.tearDown()
Пример #17
0
class TestMerchantGet(unittest.TestCase):
    """商户查询接口"""
    API_URL = Config().get('OpenPlatform_API').get('Merchant').get(
        'MerchantGet')
    excel = DATA_PATH + '/OpenPlatform_Merchant.xlsx'

    def setUp(self):
        self.client = HTTPClient(url=self.API_URL, method='GET')
        logger.info('开始测试')

    def tearDown(self):
        logger.info('结束测试')

    def test_GetMerchant01(self):
        """简单验证商户查询接口容错"""
        datas = ExcelReader(self.excel, sheet='GetMerchant').data
        for d in range(0, len(datas)):
            if datas[d]['is_execute'] == 'N':
                continue
            else:
                with self.subTest(data=datas[d]['CaseNo'] +
                                  datas[d]['describe']):
                    self.setUp()
                    # logger.debug(datas[d])
                    expect = datas[d]['expect_code']
                    casename = str(datas[d]['describe'])
                    caseNo = str(datas[d]['CaseNo'])
                    #请求的参数剔除期望值列、是否执行列、描述列、用例编号列
                    datas[d].pop('expect_code')
                    datas[d].pop('is_execute')
                    datas[d].pop('describe')
                    datas[d].pop('CaseNo')
                    if datas[d]['id'] == '{mid}':
                        datas[d]['id'] = OpenPlatformCommon.getmid()
                    #转换为json格式
                    # params = json.dumps(datas[d])
                    params = datas[d]
                    # logger.debug(type(params))
                    # headers={'Content-Type': "application/json"}
                    res = self.client.send(params=params)
                    # resultlist =[caseNo,casename,params,expect,res.text]
                    # resultdata.qppend(resultlist)
                    # logger.debug(res.text)
                    result = JMESPathExtractor().extract(query='success',
                                                         body=res.text)
                    message = JMESPathExtractor().extract(query='message',
                                                          body=res.text)
                    msg = '\n请求地址:' + res.url + '\n返回结果:' + res.text
                    self.assertEqual(expect, str(result).lower(), msg=msg)
                    self.assertNotIn('未知', str(message), msg=msg)
                    self.tearDown()

    def test_GetMerchant02(self):
        """验证创建成功后查询接口返回信息是否正确"""
        mid = OpenPlatformCommon.getmid()
        params = {"id": mid}
        res = self.client.send(params=params)
        #返回的success值
        result = JMESPathExtractor().extract(query='success', body=res.text)
        #返回的商户id
        res_id = JMESPathExtractor().extract(query='data.id', body=res.text)
        #返回的商户名称
        res_name = JMESPathExtractor().extract(query='data.name',
                                               body=res.text)
        #返回的商户简称
        res_shortname = JMESPathExtractor().extract(query='data.shortName',
                                                    body=res.text)
        #返回的商户类型
        res_type = JMESPathExtractor().extract(query='data.type',
                                               body=res.text)
        #返回的商户类型名称
        res_typename = JMESPathExtractor().extract(query='data.typeName',
                                                   body=res.text)
        #返回的商户状态值
        res_state = JMESPathExtractor().extract(query='data.state',
                                                body=res.text)
        #返回的商户状态
        res_statename = JMESPathExtractor().extract(query='data.stateName',
                                                    body=res.text)
        #返回的商户主体
        res_principal = JMESPathExtractor().extract(query='data.principal',
                                                    body=res.text)
        #返回的社会统一信用码
        res_creditcode = JMESPathExtractor().extract(query='data.creditCode',
                                                     body=res.text)
        #返回的法人信息
        res_legalrepresentative = JMESPathExtractor().extract(
            query='data.legalRepresentative', body=res.text)
        #返回的联系电话
        res_mobile = JMESPathExtractor().extract(query='data.mobile',
                                                 body=res.text)
        #返回的地址
        res_address = JMESPathExtractor().extract(query='data.address',
                                                  body=res.text)
        #返回的联系人名称
        res_contactname = JMESPathExtractor().extract(query='data.contactName',
                                                      body=res.text)
        #返回的联系人手机
        res_contactmobile = JMESPathExtractor().extract(
            query='data.contactMobile', body=res.text)
        #返回的联系人邮箱地址
        res_email = JMESPathExtractor().extract(query='data.email',
                                                body=res.text)
        #返回的联系人QQ号码
        res_qq = JMESPathExtractor().extract(query='data.qq', body=res.text)
        #返回的联系人微信号
        res_wechat = JMESPathExtractor().extract(query='data.weChat',
                                                 body=res.text)
        #返回的营业执照
        res_businesslicense = JMESPathExtractor().extract(
            query='data.businessLicense', body=res.text)
        #返回的文网文
        res_classicalchinese = JMESPathExtractor().extract(
            query='data.classicalChinese', body=res.text)
        #返回的ICP
        res_icp = JMESPathExtractor().extract(query='data.icp', body=res.text)
        #返回的法人身份证
        res_corporateidentitycard = JMESPathExtractor().extract(
            query='data.corporateIdentityCard', body=res.text)

        msg = '\n请求地址:' + res.url + '\n返回结果:' + res.text

        self.assertEqual('true', str(result).lower(), msg=msg)
        self.assertEqual(mid, str(res_id), msg=msg)
        self.assertEqual('中顺网络公司', str(res_name), msg=msg)
        self.assertEqual('ZS棋牌', str(res_shortname), msg=msg)
        self.assertEqual('1', str(res_type), msg=msg)
        self.assertEqual('自研', str(res_typename), msg=msg)
        self.assertEqual('1', str(res_state), msg=msg)
        self.assertEqual('正常', str(res_statename), msg=msg)
        self.assertEqual('中顺棋牌', str(res_principal), msg=msg)
        self.assertEqual('91440106589536704F', str(res_creditcode), msg=msg)
        self.assertEqual('李石头', str(res_legalrepresentative), msg=msg)
        self.assertEqual('39956888', str(res_mobile), msg=msg)
        self.assertEqual('广东省广州市天河区天河软件园建中路50号多玩游戏大厦4楼',
                         str(res_address),
                         msg=msg)
        self.assertEqual('王小姐', str(res_contactname), msg=msg)
        self.assertEqual('19978953221', str(res_contactmobile), msg=msg)
        self.assertEqual('*****@*****.**', str(res_email), msg=msg)
        self.assertEqual('54321', str(res_qq), msg=msg)
        self.assertEqual('qkagame', str(res_wechat), msg=msg)
        self.assertIn('20190722/953ba822fb8643b282e6102712d96c24.jpg',
                      str(res_businesslicense),
                      msg=msg)
        self.assertIn('20190722/c5e60fd2961b97aca2ea3ec735892a40.jpg',
                      str(res_classicalchinese),
                      msg=msg)
        self.assertIn('20190722/056fa26e44814b1ea36b288df9523f2f.jpeg',
                      str(res_icp),
                      msg=msg)
        self.assertIn('20190722/9fc2f9a61ae8486084f69ea6393f637d.jpeg',
                      str(res_corporateidentitycard),
                      msg=msg)

    def test_GetMerchant03(self):
        """验证编辑成功后查询接口返回信息是否正确"""
        mid = OpenPlatformCommon.getmid()
        #编辑商户信息
        edit_datas = {
            "id":
            mid,
            "name":
            "编辑网络公司",
            "shortName":
            "ZS",
            "state":
            2,
            "principal":
            "",
            "creditCode":
            "",
            "legalRepresentative":
            "",
            "mobile":
            "19978953221",
            "address":
            "",
            "contactName":
            "张小金",
            "contactMobile":
            13778953221,
            "email":
            "*****@*****.**",
            "qq":
            123456,
            "weChat":
            "weixin",
            "businessLicense":
            "20190723/953ba822fb8643b282e6102712d00024.jpg",
            "classicalChinese":
            "20190723/c5e60fd2961b97aca2ea3ec735891111.jpg",
            "icp":
            "20190723/056fa26e44814b1ea36b288df9522222.jpeg",
            "corporateIdentityCard":
            "20190723/9fc2f9a61ae8486084f69ea6393f3333.jpeg"
        }
        edit_headers = {'Content-Type': "application/json"}
        edit_url = Config().get('OpenPlatform_API').get('Merchant').get(
            'MerchantEdit')
        edit_client = HTTPClient(url=edit_url, method='POST')
        edit_client.send(data=json.dumps(edit_datas), headers=edit_headers)
        #查询商户信息
        params = {"id": mid}
        res = self.client.send(params=params)
        #返回的success值
        result = JMESPathExtractor().extract(query='success', body=res.text)
        #返回的商户id
        res_id = JMESPathExtractor().extract(query='data.id', body=res.text)
        #返回的商户名称
        res_name = JMESPathExtractor().extract(query='data.name',
                                               body=res.text)
        #返回的商户简称
        res_shortname = JMESPathExtractor().extract(query='data.shortName',
                                                    body=res.text)
        #返回的商户类型
        res_type = JMESPathExtractor().extract(query='data.type',
                                               body=res.text)
        #返回的商户类型名称
        res_typename = JMESPathExtractor().extract(query='data.typeName',
                                                   body=res.text)
        #返回的商户状态值
        res_state = JMESPathExtractor().extract(query='data.state',
                                                body=res.text)
        #返回的商户状态
        res_statename = JMESPathExtractor().extract(query='data.stateName',
                                                    body=res.text)
        #返回的商户主体
        res_principal = JMESPathExtractor().extract(query='data.principal',
                                                    body=res.text)
        #返回的社会统一信用码
        res_creditcode = JMESPathExtractor().extract(query='data.creditCode',
                                                     body=res.text)
        #返回的法人信息
        res_legalrepresentative = JMESPathExtractor().extract(
            query='data.legalRepresentative', body=res.text)
        #返回的联系电话
        res_mobile = JMESPathExtractor().extract(query='data.mobile',
                                                 body=res.text)
        #返回的地址
        res_address = JMESPathExtractor().extract(query='data.address',
                                                  body=res.text)
        #返回的联系人名称
        res_contactname = JMESPathExtractor().extract(query='data.contactName',
                                                      body=res.text)
        #返回的联系人手机
        res_contactmobile = JMESPathExtractor().extract(
            query='data.contactMobile', body=res.text)
        #返回的联系人邮箱地址
        res_email = JMESPathExtractor().extract(query='data.email',
                                                body=res.text)
        #返回的联系人QQ号码
        res_qq = JMESPathExtractor().extract(query='data.qq', body=res.text)
        #返回的联系人微信号
        res_wechat = JMESPathExtractor().extract(query='data.weChat',
                                                 body=res.text)
        #返回的营业执照
        res_businesslicense = JMESPathExtractor().extract(
            query='data.businessLicense', body=res.text)
        #返回的文网文
        res_classicalchinese = JMESPathExtractor().extract(
            query='data.classicalChinese', body=res.text)
        #返回的ICP
        res_icp = JMESPathExtractor().extract(query='data.icp', body=res.text)
        #返回的法人身份证
        res_corporateidentitycard = JMESPathExtractor().extract(
            query='data.corporateIdentityCard', body=res.text)
        msg = '\n请求地址:' + res.url + '\n返回结果:' + res.text
        self.assertEqual('true', str(result).lower(), msg=msg)
        self.assertEqual(mid, str(res_id), msg=msg)
        self.assertEqual('编辑网络公司', str(res_name), msg=msg)
        self.assertEqual('ZS', str(res_shortname), msg=msg)
        self.assertEqual('1', str(res_type), msg=msg)
        self.assertEqual('自研', str(res_typename), msg=msg)
        self.assertEqual('2', str(res_state), msg=msg)
        self.assertEqual('禁用', str(res_statename), msg=msg)
        self.assertEqual('', str(res_principal), msg=msg)
        self.assertEqual('', str(res_creditcode), msg=msg)
        self.assertEqual('', str(res_legalrepresentative), msg=msg)
        self.assertEqual('19978953221', str(res_mobile), msg=msg)
        self.assertEqual('', str(res_address), msg=msg)
        self.assertEqual('张小金', str(res_contactname), msg=msg)
        self.assertEqual('13778953221', str(res_contactmobile), msg=msg)
        self.assertEqual('*****@*****.**', str(res_email), msg=msg)
        self.assertEqual('123456', str(res_qq), msg=msg)
        self.assertEqual('weixin', str(res_wechat), msg=msg)
        self.assertIn('20190723/953ba822fb8643b282e6102712d00024.jpg',
                      str(res_businesslicense),
                      msg=msg)
        self.assertIn('20190723/c5e60fd2961b97aca2ea3ec735891111.jpg',
                      str(res_classicalchinese),
                      msg=msg)
        self.assertIn('20190723/056fa26e44814b1ea36b288df9522222.jpeg',
                      str(res_icp),
                      msg=msg)
        self.assertIn('20190723/9fc2f9a61ae8486084f69ea6393f3333.jpeg',
                      str(res_corporateidentitycard),
                      msg=msg)
Пример #18
0
class TestPlayerRegist(unittest.TestCase):
    """玩家注册接口"""
    API_URL = Config().get('OpenPlatform_API').get('Player').get('Regist')
    excel = DATA_PATH + '/OpenPlatform_Player.xlsx'

    def setUp(self):
        self.client = HTTPClient(url=self.API_URL, method='POST')
        logger.info('开始测试')

    def tearDown(self):
        logger.info('结束测试')

    def test_PlayerRegist01(self):
        """批量验证玩家注册接口容错"""
        datas = ExcelReader(self.excel, sheet='Regist').data
        for d in range(0, len(datas)):
            if datas[d]['is_execute'] == 'N':
                continue
            else:
                with self.subTest(data=datas[d]['CaseNo'] +
                                  datas[d]['describe']):
                    self.setUp()
                    # logger.debug(datas[d])
                    expect = json.loads(
                        ast.literal_eval(json.dumps(datas[d]['expection'])))
                    # expect = datas[d]['expection']
                    # logger.debug(expect)
                    # logger.debug(type(expect))
                    casename = str(datas[d]['describe'])
                    caseNo = str(datas[d]['CaseNo'])
                    #请求的参数剔除期望值列、是否执行列、描述列、用例编号列
                    datas[d].pop('expection')
                    datas[d].pop('is_execute')
                    datas[d].pop('describe')
                    datas[d].pop('CaseNo')

                    datas[d]['payload'] = ast.literal_eval(datas[d]['payload'])
                    params = json.dumps(datas[d])
                    # logger.debug(type(params))
                    headers = {'Content-Type': "application/json"}
                    res = self.client.send(data=params, headers=headers)
                    # resultlist =[caseNo,casename,params,expect,res.text]
                    # resultdata.qppend(resultlist)
                    # logger.debug(res.text)
                    res_success = JMESPathExtractor().extract(query='success',
                                                              body=res.text)
                    res_message = JMESPathExtractor().extract(query='message',
                                                              body=res.text)
                    res_error = JMESPathExtractor().extract(query='error',
                                                            body=res.text)
                    res_code = JMESPathExtractor().extract(query='code',
                                                           body=res.text)
                    responseTime = JMESPathExtractor().extract(
                        query='responseTime', body=res.text)
                    res_data = JMESPathExtractor().extract(query='data',
                                                           body=res.text)
                    res_openId = JMESPathExtractor().extract(
                        query='data.openId', body=res.text)
                    res_unionId = JMESPathExtractor().extract(
                        query='data.unionId', body=res.text)
                    res_nickname = JMESPathExtractor().extract(
                        query='data.nickname', body=res.text)
                    res_account = JMESPathExtractor().extract(
                        query='data.account', body=res.text)
                    res_password = JMESPathExtractor().extract(
                        query='data.password', body=res.text)
                    res_picture = JMESPathExtractor().extract(
                        query='data.picture', body=res.text)
                    msg = '\n请求地址:' + res.url + '\n请求数据:' + params + '\n返回结果:' + res.text
                    self.assertEqual(expect['success'], res_success, msg=msg)
                    if 'message' in expect.keys():
                        self.assertEqual(expect['message'],
                                         res_message,
                                         msg=msg)
                    if 'error' in expect.keys():
                        self.assertEqual(expect['error'], res_error, msg=msg)
                    self.assertEqual(expect['code'], res_code, msg=msg)
                    if 'data' in expect.keys() and expect['data']:
                        self.assertGreater(len(res_openId), 0, msg=msg)
                        self.assertGreater(len(res_unionId), 0, msg=msg)
                        self.assertIn('游客', res_nickname, msg=msg)
                        if datas[d]['type'] == 2:
                            mobile = datas[d]['payload']['Mobile']
                            self.assertEqual(mobile, res_account, msg=msg)
                        else:
                            self.assertEqual(10, len(res_account), msg=msg)
                        self.assertEqual(18, len(res_password), msg=msg)
                        # self.assertIsNotNone(res_picture, msg=msg)

                    self.tearDown()

    def test_PlayerRegist02(self):
        """验证手机验证码注册:单个在有效期内的验证码"""
        mobile = 19925757088
        code = OpenPlatformCommon.get_smscode(mobile=mobile)
        datas = {
            "type": 2,
            "channelNo": 81026962,
            "packageNo": 81026962001,
            "ip": "58.63.60.133",
            "machineCode": "autotest8888",
            "appId": "8103xqzESJOPvBzwHikLWwTXHfF6iZzE",
            "terminalType": 1,
            "osVersion": "Android.8.3.1",
            "machineModel": "MI 9",
            "payload": {
                "Mobile": mobile,
                "SmsKey": "1",
                "SmsCode": code
            },
            "networkState": 0,
            "wifiName": "MISnet"
        }
        params = json.dumps(datas)
        headers = {'Content-Type': "application/json"}
        res = self.client.send(data=params, headers=headers)
        res_success = JMESPathExtractor().extract(query='success',
                                                  body=res.text)
        res_message = JMESPathExtractor().extract(query='message',
                                                  body=res.text)
        res_error = JMESPathExtractor().extract(query='error', body=res.text)
        res_code = JMESPathExtractor().extract(query='code', body=res.text)
        responseTime = JMESPathExtractor().extract(query='responseTime',
                                                   body=res.text)
        res_data = JMESPathExtractor().extract(query='data', body=res.text)
        res_openId = JMESPathExtractor().extract(query='data.openId',
                                                 body=res.text)
        res_unionId = JMESPathExtractor().extract(query='data.unionId',
                                                  body=res.text)
        res_nickname = JMESPathExtractor().extract(query='data.nickname',
                                                   body=res.text)
        res_account = JMESPathExtractor().extract(query='data.account',
                                                  body=res.text)
        res_password = JMESPathExtractor().extract(query='data.password',
                                                   body=res.text)
        res_picture = JMESPathExtractor().extract(query='data.picture',
                                                  body=res.text)
        msg = '\n请求地址:' + res.url + '\n请求数据:' + params + '\n返回结果:' + res.text
        self.assertTrue(res_success, msg=msg)
        self.assertIsNone(res_error, msg=msg)
        self.assertEqual(0, res_code, msg=msg)
        self.assertGreater(len(res_openId), 0, msg=msg)
        self.assertGreater(len(res_unionId), 0, msg=msg)
        self.assertIn('游客', res_nickname, msg=msg)
        self.assertEqual(str(mobile), res_account, msg=msg)
        self.assertEqual(18, len(res_password), msg=msg)

    def test_PlayerRegist03(self):
        """验证手机验证码注册:多个在有效期内验证码,输入最新的"""
        mobile = 19925757099
        code1 = OpenPlatformCommon.get_smscode(mobile=mobile)
        code2 = OpenPlatformCommon.get_smscode(mobile=mobile)
        datas = {
            "type": 2,
            "channelNo": 81026962,
            "packageNo": 81026962001,
            "ip": "58.63.60.133",
            "machineCode": "autotest8888",
            "appId": "8103xqzESJOPvBzwHikLWwTXHfF6iZzE",
            "terminalType": 1,
            "osVersion": "Android.8.3.1",
            "machineModel": "MI 9",
            "payload": {
                "Mobile": mobile,
                "SmsKey": "1",
                "SmsCode": code2
            },
            "networkState": 0,
            "wifiName": "MISnet"
        }
        params = json.dumps(datas)
        headers = {'Content-Type': "application/json"}
        res = self.client.send(data=params, headers=headers)
        res_success = JMESPathExtractor().extract(query='success',
                                                  body=res.text)
        res_message = JMESPathExtractor().extract(query='message',
                                                  body=res.text)
        res_error = JMESPathExtractor().extract(query='error', body=res.text)
        res_code = JMESPathExtractor().extract(query='code', body=res.text)
        responseTime = JMESPathExtractor().extract(query='responseTime',
                                                   body=res.text)
        res_data = JMESPathExtractor().extract(query='data', body=res.text)
        res_openId = JMESPathExtractor().extract(query='data.openId',
                                                 body=res.text)
        res_unionId = JMESPathExtractor().extract(query='data.unionId',
                                                  body=res.text)
        res_nickname = JMESPathExtractor().extract(query='data.nickname',
                                                   body=res.text)
        res_account = JMESPathExtractor().extract(query='data.account',
                                                  body=res.text)
        res_password = JMESPathExtractor().extract(query='data.password',
                                                   body=res.text)
        res_picture = JMESPathExtractor().extract(query='data.picture',
                                                  body=res.text)
        msg = '\n请求地址:' + res.url + '\n请求数据:' + params + '\n返回结果:' + res.text
        self.assertTrue(res_success, msg=msg)
        self.assertIsNone(res_error, msg=msg)
        self.assertEqual(0, res_code, msg=msg)
        self.assertGreater(len(res_openId), 0, msg=msg)
        self.assertGreater(len(res_unionId), 0, msg=msg)
        self.assertIn('游客', res_nickname, msg=msg)
        self.assertEqual(str(mobile), res_account, msg=msg)
        self.assertEqual(18, len(res_password), msg=msg)

    def test_PlayerRegist04(self):
        """验证手机验证码注册:验证码超出有效期(2分钟)"""
        mobile = 19925757199
        code = OpenPlatformCommon.get_smscode(mobile=mobile)
        time.sleep(120)
        datas = {
            "type": 2,
            "channelNo": 81026962,
            "packageNo": 81026962001,
            "ip": "58.63.60.133",
            "machineCode": "autotest8888",
            "appId": "8103xqzESJOPvBzwHikLWwTXHfF6iZzE",
            "terminalType": 1,
            "osVersion": "Android.8.3.1",
            "machineModel": "MI 9",
            "payload": {
                "Mobile": mobile,
                "SmsKey": "1",
                "SmsCode": code
            },
            "networkState": 0,
            "wifiName": "MISnet"
        }
        params = json.dumps(datas)
        headers = {'Content-Type': "application/json"}
        res = self.client.send(data=params, headers=headers)
        res_success = JMESPathExtractor().extract(query='success',
                                                  body=res.text)
        res_message = JMESPathExtractor().extract(query='message',
                                                  body=res.text)
        res_error = JMESPathExtractor().extract(query='error', body=res.text)
        res_code = JMESPathExtractor().extract(query='code', body=res.text)
        responseTime = JMESPathExtractor().extract(query='responseTime',
                                                   body=res.text)
        res_data = JMESPathExtractor().extract(query='data', body=res.text)
        res_openId = JMESPathExtractor().extract(query='data.openId',
                                                 body=res.text)
        res_unionId = JMESPathExtractor().extract(query='data.unionId',
                                                  body=res.text)
        res_nickname = JMESPathExtractor().extract(query='data.nickname',
                                                   body=res.text)
        res_account = JMESPathExtractor().extract(query='data.account',
                                                  body=res.text)
        res_password = JMESPathExtractor().extract(query='data.password',
                                                   body=res.text)
        res_picture = JMESPathExtractor().extract(query='data.picture',
                                                  body=res.text)
        msg = '\n请求地址:' + res.url + '\n请求数据:' + params + '\n返回结果:' + res.text
        self.assertFalse(res_success, msg=msg)
        self.assertEqual('手机验证码错误', res_error, msg=msg)
        self.assertEqual(10, res_code, msg=msg)
        self.assertIsNone(res_data, msg=msg)

    def test_PlayerRegist05(self):
        """验证手机验证码注册:有效期内多次请求验证码,输入的不是最新的"""
        mobile = 19925757299
        code1 = OpenPlatformCommon.get_smscode(mobile=mobile)
        code2 = OpenPlatformCommon.get_smscode(mobile=mobile)
        datas = {
            "type": 2,
            "channelNo": 81026962,
            "packageNo": 81026962001,
            "ip": "58.63.60.133",
            "machineCode": "autotest8888",
            "appId": "8103xqzESJOPvBzwHikLWwTXHfF6iZzE",
            "terminalType": 1,
            "osVersion": "Android.8.3.1",
            "machineModel": "MI 9",
            "payload": {
                "Mobile": mobile,
                "SmsKey": "1",
                "SmsCode": code1
            },
            "networkState": 0,
            "wifiName": "MISnet"
        }
        params = json.dumps(datas)
        headers = {'Content-Type': "application/json"}
        res = self.client.send(data=params, headers=headers)
        res_success = JMESPathExtractor().extract(query='success',
                                                  body=res.text)
        res_message = JMESPathExtractor().extract(query='message',
                                                  body=res.text)
        res_error = JMESPathExtractor().extract(query='error', body=res.text)
        res_code = JMESPathExtractor().extract(query='code', body=res.text)
        responseTime = JMESPathExtractor().extract(query='responseTime',
                                                   body=res.text)
        res_data = JMESPathExtractor().extract(query='data', body=res.text)
        res_openId = JMESPathExtractor().extract(query='data.openId',
                                                 body=res.text)
        res_unionId = JMESPathExtractor().extract(query='data.unionId',
                                                  body=res.text)
        res_nickname = JMESPathExtractor().extract(query='data.nickname',
                                                   body=res.text)
        res_account = JMESPathExtractor().extract(query='data.account',
                                                  body=res.text)
        res_password = JMESPathExtractor().extract(query='data.password',
                                                   body=res.text)
        res_picture = JMESPathExtractor().extract(query='data.picture',
                                                  body=res.text)
        msg = '\n请求地址:' + res.url + '\n请求数据:' + params + '\n返回结果:' + res.text
        self.assertFalse(res_success, msg=msg)
        self.assertEqual('手机验证码错误', res_error, msg=msg)
        self.assertEqual(10, res_code, msg=msg)
        self.assertIsNone(res_data, msg=msg)
Пример #19
0
 def setUp(self):
     self.client = HTTPClient(url=self.API_URL, method='POST')
Пример #20
0
class TestProductList(unittest.TestCase):
    """产品列表接口"""
    API_URL = Config().get('OpenPlatform_API').get('Product').get(
        'ProductList')
    excel = DATA_PATH + '/OpenPlatform_Merchant.xlsx'

    def setUp(self):
        self.client = HTTPClient(url=self.API_URL, method='GET')
        self.mid = OpenPlatformCommon.getmid()
        logger.info('开始测试')

    def tearDown(self):
        logger.info('结束测试')

    def test_ProductList01(self):
        """简单验证产品列表接口容错"""
        datas = ExcelReader(self.excel, sheet='ProductList').data
        for d in range(0, len(datas)):
            if datas[d]['is_execute'] == 'N':
                continue
            else:
                with self.subTest(data=datas[d]['CaseNo'] +
                                  datas[d]['describe']):
                    self.setUp()
                    # logger.debug(datas[d])
                    expect = datas[d]['expect_code']
                    casename = str(datas[d]['describe'])
                    caseNo = str(datas[d]['CaseNo'])
                    #请求的参数剔除期望值列、是否执行列、描述列、用例编号列
                    datas[d].pop('expect_code')
                    datas[d].pop('is_execute')
                    datas[d].pop('describe')
                    datas[d].pop('CaseNo')
                    if datas[d]['MerchantId'] == '{mid}':
                        datas[d]['MerchantId'] = self.mid

                    #转换为json格式
                    # json.dumps(datas[d]['settings'])
                    params = datas[d]
                    # logger.debug(type(params))

                    res = self.client.send(params=params)
                    # resultlist =[caseNo,casename,params,expect,res.text]
                    # resultdata.data[0].qppend(resultlist)
                    # logger.debug(res.text)
                    result = JMESPathExtractor().extract(query='success',
                                                         body=res.text)
                    message = JMESPathExtractor().extract(query='message',
                                                          body=res.text)
                    msg = '\n请求地址:' + res.url + '\n返回结果:' + res.text
                    self.assertEqual(expect, str(result).lower(), msg=msg)
                    self.assertNotIn('未知错误', str(message), msg=msg)
                    self.tearDown()

    def test_ProductList02(self):
        """验证产品列表-产品名称搜索"""
        pid = OpenPlatformCommon.getpid(self.mid, category=2, platform=1)
        params = {
            'MerchantId': self.mid,
            'Condition': 'Autotest测试',
            'PageIndex': 1,
            'PageSize': 1
        }
        res = self.client.send(params=params)
        result = JMESPathExtractor().extract(query='success', body=res.text)
        message = JMESPathExtractor().extract(query='message', body=res.text)
        date = time.strftime('%Y-%m-%d', time.localtime(time.time()))
        responseTime = JMESPathExtractor().extract(query='responseTime',
                                                   body=res.text)
        res_pid = JMESPathExtractor().extract(query='data.data[0].productId',
                                              body=res.text)
        res_pname = JMESPathExtractor().extract(
            query='data.data[0].productName', body=res.text)
        res_iconurl = JMESPathExtractor().extract(query='data.data[0].iconUrl',
                                                  body=res.text)
        res_pnum = JMESPathExtractor().extract(query='data.data[0].productNum',
                                               body=res.text)
        res_pcategory = JMESPathExtractor().extract(
            query='data.data[0].productCategory', body=res.text)
        res_psubcategory = JMESPathExtractor().extract(
            query='data.data[0].subCategory', body=res.text)
        res_pecology = JMESPathExtractor().extract(
            query='data.data[0].productEcology', body=res.text)
        res_pmname = JMESPathExtractor().extract(
            query='data.data[0].merchantName', body=res.text)
        res_department = JMESPathExtractor().extract(
            query='data.data[0].department', body=res.text)
        res_pstate = JMESPathExtractor().extract(query='data.data[0].state',
                                                 body=res.text)
        res_recordsTotal = JMESPathExtractor().extract(
            query='data.recordsTotal', body=res.text)
        msg = '\n请求地址:' + res.url + '\n返回结果:' + res.text

        self.assertEqual('true', str(result).lower(), msg=msg)
        self.assertIn(date, str(responseTime), msg=msg)
        self.assertEqual(pid, res_pid, msg=msg)
        self.assertEqual('Autotest测试', res_pname, msg=msg)
        self.assertIn('key=Autotest', str(res_iconurl), msg=msg)
        self.assertEqual(2, res_pcategory, msg=msg)
        self.assertEqual('单网页形态', res_psubcategory, msg=msg)
        self.assertEqual(0, res_pecology, msg=msg)
        self.assertEqual('中顺网络公司', res_pmname, msg=msg)
        self.assertEqual('Web研发部门', res_department, msg=msg)
        self.assertEqual(1, res_pstate, msg=msg)
        self.assertEqual(1, res_recordsTotal, msg=msg)

    def test_ProductList03(self):
        """验证异常:产品列表-关键字匹配不到数据"""
        pid = OpenPlatformCommon.getpid(self.mid, category=2, platform=1)
        params = {
            'MerchantId': self.mid,
            'Condition': 'Autotest测试12',
            'PageIndex': 1,
            'PageSize': 1
        }
        res = self.client.send(params=params)
        result = JMESPathExtractor().extract(query='success', body=res.text)
        message = JMESPathExtractor().extract(query='message', body=res.text)
        date = time.strftime('%Y-%m-%d', time.localtime(time.time()))
        responseTime = JMESPathExtractor().extract(query='responseTime',
                                                   body=res.text)
        # res_pid = JMESPathExtractor().extract(query='data.data[0].productId', body=res.text)
        # res_pname = JMESPathExtractor().extract(query='data.data[0].productName', body=res.text)
        # res_iconurl = JMESPathExtractor().extract(query='data.data[0].iconUrl', body=res.text)
        # res_pnum = JMESPathExtractor().extract(query='data.data[0].productNum', body=res.text)
        # res_pcategory = JMESPathExtractor().extract(query='data.data[0].productCategory', body=res.text)
        # res_psubcategory = JMESPathExtractor().extract(query='data.data[0].subCategory', body=res.text)
        # res_pecology = JMESPathExtractor().extract(query='data.data[0].productEcology', body=res.text)
        # res_pmname = JMESPathExtractor().extract(query='data.data[0].merchantName', body=res.text)
        # res_department = JMESPathExtractor().extract(query='data.data[0].department', body=res.text)
        # res_pstate = JMESPathExtractor().extract(query='data.data[0].state', body=res.text)
        res_recordsTotal = JMESPathExtractor().extract(
            query='data.recordsTotal', body=res.text)
        msg = '\n请求地址:' + res.url + '\n返回结果:' + res.text

        self.assertEqual('true', str(result).lower(), msg=msg)
        self.assertNotIn('未知错误', str(message), msg=msg)
        self.assertIn(date, str(responseTime), msg=msg)
        # self.assertEqual(pid, res_pid, msg=msg)
        # self.assertEqual('Autotest测试', res_pname, msg=msg)
        # self.assertIn('key=Autotest', str(res_iconurl), msg=msg)
        # self.assertEqual(2, res_pcategory, msg=msg)
        # self.assertEqual('单网页形态', res_psubcategory, msg=msg)
        # self.assertEqual(0, res_pecology, msg=msg)
        # self.assertEqual('中顺网络公司', res_pmname, msg=msg)
        # self.assertEqual('Web研发部门', res_department, msg=msg)
        # self.assertEqual(1, res_pstate, msg=msg)
        self.assertEqual(0, res_recordsTotal, msg=msg)

    def test_ProductList04(self):
        """验证产品列表-产品ID搜索"""
        pid = OpenPlatformCommon.getpid(self.mid, category=2, platform=1)
        params = {
            'MerchantId': self.mid,
            'Condition': pid,
            'PageIndex': 1,
            'PageSize': 1
        }
        res = self.client.send(params=params)
        result = JMESPathExtractor().extract(query='success', body=res.text)
        message = JMESPathExtractor().extract(query='message', body=res.text)
        date = time.strftime('%Y-%m-%d', time.localtime(time.time()))
        responseTime = JMESPathExtractor().extract(query='responseTime',
                                                   body=res.text)
        res_pid = JMESPathExtractor().extract(query='data.data[0].productId',
                                              body=res.text)
        res_pname = JMESPathExtractor().extract(
            query='data.data[0].productName', body=res.text)
        res_iconurl = JMESPathExtractor().extract(query='data.data[0].iconUrl',
                                                  body=res.text)
        res_pnum = JMESPathExtractor().extract(query='data.data[0].productNum',
                                               body=res.text)
        res_pcategory = JMESPathExtractor().extract(
            query='data.data[0].productCategory', body=res.text)
        res_psubcategory = JMESPathExtractor().extract(
            query='data.data[0].subCategory', body=res.text)
        res_pecology = JMESPathExtractor().extract(
            query='data.data[0].productEcology', body=res.text)
        res_pmname = JMESPathExtractor().extract(
            query='data.data[0].merchantName', body=res.text)
        res_department = JMESPathExtractor().extract(
            query='data.data[0].department', body=res.text)
        res_pstate = JMESPathExtractor().extract(query='data.data[0].state',
                                                 body=res.text)
        res_recordsTotal = JMESPathExtractor().extract(
            query='data.recordsTotal', body=res.text)
        msg = '\n请求地址:' + res.url + '\n返回结果:' + res.text

        self.assertEqual('true', str(result).lower(), msg=msg)
        self.assertIn(date, str(responseTime), msg=msg)
        self.assertEqual(pid, res_pid, msg=msg)
        self.assertEqual('Autotest测试', res_pname, msg=msg)
        self.assertIn('key=Autotest', str(res_iconurl), msg=msg)
        self.assertEqual(2, res_pcategory, msg=msg)
        self.assertEqual('单网页形态', res_psubcategory, msg=msg)
        self.assertEqual(0, res_pecology, msg=msg)
        self.assertEqual('中顺网络公司', res_pmname, msg=msg)
        self.assertEqual('Web研发部门', res_department, msg=msg)
        self.assertEqual(1, res_pstate, msg=msg)
        self.assertEqual(1, res_recordsTotal, msg=msg)

    def test_ProductList05(self):
        """验证产品列表-商户名称搜索"""
        pid = OpenPlatformCommon.getpid(self.mid, category=2, platform=1)
        params = {
            'MerchantId': self.mid,
            'Condition': "中顺网络公司",
            'PageIndex': 1,
            'PageSize': 1
        }
        res = self.client.send(params=params)
        result = JMESPathExtractor().extract(query='success', body=res.text)
        message = JMESPathExtractor().extract(query='message', body=res.text)
        date = time.strftime('%Y-%m-%d', time.localtime(time.time()))
        responseTime = JMESPathExtractor().extract(query='responseTime',
                                                   body=res.text)
        res_pid = JMESPathExtractor().extract(query='data.data[0].productId',
                                              body=res.text)
        res_pname = JMESPathExtractor().extract(
            query='data.data[0].productName', body=res.text)
        res_iconurl = JMESPathExtractor().extract(query='data.data[0].iconUrl',
                                                  body=res.text)
        res_pnum = JMESPathExtractor().extract(query='data.data[0].productNum',
                                               body=res.text)
        res_pcategory = JMESPathExtractor().extract(
            query='data.data[0].productCategory', body=res.text)
        res_psubcategory = JMESPathExtractor().extract(
            query='data.data[0].subCategory', body=res.text)
        res_pecology = JMESPathExtractor().extract(
            query='data.data[0].productEcology', body=res.text)
        res_pmname = JMESPathExtractor().extract(
            query='data.data[0].merchantName', body=res.text)
        res_department = JMESPathExtractor().extract(
            query='data.data[0].department', body=res.text)
        res_pstate = JMESPathExtractor().extract(query='data.data[0].state',
                                                 body=res.text)
        res_recordsTotal = JMESPathExtractor().extract(
            query='data.recordsTotal', body=res.text)
        msg = '\n请求地址:' + res.url + '\n返回结果:' + res.text

        self.assertEqual('true', str(result).lower(), msg=msg)
        self.assertIn(date, str(responseTime), msg=msg)
        self.assertEqual(pid, res_pid, msg=msg)
        self.assertEqual('Autotest测试', res_pname, msg=msg)
        self.assertIn('key=Autotest', str(res_iconurl), msg=msg)
        self.assertEqual(2, res_pcategory, msg=msg)
        self.assertEqual('单网页形态', res_psubcategory, msg=msg)
        self.assertEqual(0, res_pecology, msg=msg)
        self.assertEqual('中顺网络公司', res_pmname, msg=msg)
        self.assertEqual('Web研发部门', res_department, msg=msg)
        self.assertEqual(1, res_pstate, msg=msg)
        self.assertEqual(1, res_recordsTotal, msg=msg)
Пример #21
0
class TestPlayerPromote(unittest.TestCase):
    """玩家转正接口"""
    API_URL = Config().get('OpenPlatform_API').get('Player').get('Promote')
    excel = DATA_PATH + '/OpenPlatform_Player.xlsx'

    def setUp(self):
        self.client = HTTPClient(url=self.API_URL, method='POST')
        logger.info('开始测试')

    def tearDown(self):
        logger.info('结束测试')

    def test_PlayerPromote01(self):
        """批量验证玩家转正接口容错"""
        datas = ExcelReader(self.excel, sheet='Promote').data
        for d in range(0, len(datas)):
            if datas[d]['is_execute'] == 'N':
                continue
            else:
                with self.subTest(data=datas[d]['CaseNo'] +
                                  datas[d]['describe']):
                    self.setUp()
                    # logger.debug(datas[d])
                    expect = json.loads(
                        ast.literal_eval(json.dumps(datas[d]['expection'])))
                    # expect = datas[d]['expection']
                    # logger.debug(expect)
                    # logger.debug(type(expect))
                    casename = str(datas[d]['describe'])
                    caseNo = str(datas[d]['CaseNo'])
                    #请求的参数剔除期望值列、是否执行列、描述列、用例编号列
                    datas[d].pop('expection')
                    datas[d].pop('is_execute')
                    datas[d].pop('describe')
                    datas[d].pop('CaseNo')

                    datas[d]['payload'] = ast.literal_eval(datas[d]['payload'])
                    params = json.dumps(datas[d])
                    # logger.debug(type(params))
                    headers = {'Content-Type': "application/json"}
                    res = self.client.send(data=params, headers=headers)
                    # resultlist =[caseNo,casename,params,expect,res.text]
                    # resultdata.qppend(resultlist)
                    # logger.debug(res.text)
                    res_success = JMESPathExtractor().extract(query='success',
                                                              body=res.text)
                    res_message = JMESPathExtractor().extract(query='message',
                                                              body=res.text)
                    res_error = JMESPathExtractor().extract(query='error',
                                                            body=res.text)
                    res_code = JMESPathExtractor().extract(query='code',
                                                           body=res.text)
                    responseTime = JMESPathExtractor().extract(
                        query='responseTime', body=res.text)
                    msg = '\n请求地址:' + res.url + '\n请求数据:' + params + '\n返回结果:' + res.text
                    self.assertEqual(expect['success'], res_success, msg=msg)
                    if 'message' in expect.keys():
                        self.assertEqual(expect['message'],
                                         res_message,
                                         msg=msg)
                    if 'error' in expect.keys():
                        self.assertEqual(expect['error'], res_error, msg=msg)
                    self.assertEqual(expect['code'], res_code, msg=msg)

                    self.tearDown()

    def test_PlayerPromote02(self):
        """验证手机验证码转正:单个在有效期内的验证码"""
        if OpenPlatformCommon.get_registinfo() != '注册失败':
            openId = OpenPlatformCommon.get_registinfo()['openId']
            unionId = OpenPlatformCommon.get_registinfo()['unionId']
            nickname = OpenPlatformCommon.get_registinfo()['nickname']
            account = OpenPlatformCommon.get_registinfo()['account']
            password = OpenPlatformCommon.get_registinfo()['password']
            mobile = 13225757037
            code = OpenPlatformCommon.get_smscode(mobile=mobile)
            datas = {
                "openId": openId,
                "packageNo": 81036962002,
                "type": 1,
                "payload": {
                    "mobile": mobile,
                    "smsKey": "1",
                    "smsCode": code,
                    "password": "******"
                }
            }
            params = json.dumps(datas)
            headers = {'Content-Type': "application/json"}
            res = self.client.send(data=params, headers=headers)
            res_success = JMESPathExtractor().extract(query='success',
                                                      body=res.text)
            res_message = JMESPathExtractor().extract(query='message',
                                                      body=res.text)
            res_error = JMESPathExtractor().extract(query='error',
                                                    body=res.text)
            res_code = JMESPathExtractor().extract(query='code', body=res.text)
            responseTime = JMESPathExtractor().extract(query='responseTime',
                                                       body=res.text)
            msg = '\n请求地址:' + res.url + '\n请求数据:' + params + '\n返回结果:' + res.text
            self.assertTrue(res_success, msg=msg)
            self.assertIsNone(res_error, msg=msg)
            self.assertEqual(0, res_code, msg=msg)

    def test_PlayerPromote03(self):
        """验证手机验证码转正:多个在有效期内验证码,输入最新的"""
        if OpenPlatformCommon.get_registinfo() != '注册失败':
            openId = OpenPlatformCommon.get_registinfo()['openId']
            unionId = OpenPlatformCommon.get_registinfo()['unionId']
            nickname = OpenPlatformCommon.get_registinfo()['nickname']
            account = OpenPlatformCommon.get_registinfo()['account']
            password = OpenPlatformCommon.get_registinfo()['password']
            mobile = 13225757099
            code1 = OpenPlatformCommon.get_smscode(mobile=mobile)
            code2 = OpenPlatformCommon.get_smscode(mobile=mobile)
            datas = {
                "openId": openId,
                "packageNo": 81036962002,
                "type": 1,
                "payload": {
                    "mobile": mobile,
                    "smsKey": "1",
                    "smsCode": code2,
                    "password": "******"
                }
            }
            params = json.dumps(datas)
            headers = {'Content-Type': "application/json"}
            res = self.client.send(data=params, headers=headers)
            res_success = JMESPathExtractor().extract(query='success',
                                                      body=res.text)
            res_message = JMESPathExtractor().extract(query='message',
                                                      body=res.text)
            res_error = JMESPathExtractor().extract(query='error',
                                                    body=res.text)
            res_code = JMESPathExtractor().extract(query='code', body=res.text)
            responseTime = JMESPathExtractor().extract(query='responseTime',
                                                       body=res.text)
            msg = '\n请求地址:' + res.url + '\n请求数据:' + params + '\n返回结果:' + res.text
            self.assertTrue(res_success, msg=msg)
            self.assertIsNone(res_error, msg=msg)
            self.assertEqual(0, res_code, msg=msg)

    def test_PlayerPromote04(self):
        """验证手机验证码转正:验证码超出有效期(2分钟)"""
        if OpenPlatformCommon.get_registinfo() != '注册失败':
            openId = OpenPlatformCommon.get_registinfo()['openId']
            unionId = OpenPlatformCommon.get_registinfo()['unionId']
            nickname = OpenPlatformCommon.get_registinfo()['nickname']
            account = OpenPlatformCommon.get_registinfo()['account']
            password = OpenPlatformCommon.get_registinfo()['password']
            mobile = 13225757199
            code = OpenPlatformCommon.get_smscode(mobile=mobile)
            time.sleep(120)
            datas = {
                "openId": openId,
                "packageNo": 81036962002,
                "type": 1,
                "payload": {
                    "mobile": mobile,
                    "smsKey": "1",
                    "smsCode": code,
                    "password": "******"
                }
            }
            params = json.dumps(datas)
            headers = {'Content-Type': "application/json"}
            res = self.client.send(data=params, headers=headers)
            res_success = JMESPathExtractor().extract(query='success',
                                                      body=res.text)
            res_message = JMESPathExtractor().extract(query='message',
                                                      body=res.text)
            res_error = JMESPathExtractor().extract(query='error',
                                                    body=res.text)
            res_code = JMESPathExtractor().extract(query='code', body=res.text)
            responseTime = JMESPathExtractor().extract(query='responseTime',
                                                       body=res.text)
            msg = '\n请求地址:' + res.url + '\n请求数据:' + params + '\n返回结果:' + res.text
            self.assertFalse(res_success, msg=msg)
            self.assertEqual('验证短信失败', res_error, msg=msg)
            self.assertEqual(10, res_code, msg=msg)

    def test_PlayerPromote05(self):
        """验证手机验证码转正:有效期内多次请求验证码,输入的不是最新的"""
        if OpenPlatformCommon.get_registinfo() != '注册失败':
            openId = OpenPlatformCommon.get_registinfo()['openId']
            unionId = OpenPlatformCommon.get_registinfo()['unionId']
            nickname = OpenPlatformCommon.get_registinfo()['nickname']
            account = OpenPlatformCommon.get_registinfo()['account']
            password = OpenPlatformCommon.get_registinfo()['password']
            mobile = 19925757299
            code1 = OpenPlatformCommon.get_smscode(mobile=mobile)
            code2 = OpenPlatformCommon.get_smscode(mobile=mobile)
            datas = {
                "openId": openId,
                "packageNo": 81036962002,
                "type": 1,
                "payload": {
                    "mobile": mobile,
                    "smsKey": "1",
                    "smsCode": code1,
                    "password": "******"
                }
            }
            params = json.dumps(datas)
            headers = {'Content-Type': "application/json"}
            res = self.client.send(data=params, headers=headers)
            res_success = JMESPathExtractor().extract(query='success',
                                                      body=res.text)
            res_message = JMESPathExtractor().extract(query='message',
                                                      body=res.text)
            res_error = JMESPathExtractor().extract(query='error',
                                                    body=res.text)
            res_code = JMESPathExtractor().extract(query='code', body=res.text)
            responseTime = JMESPathExtractor().extract(query='responseTime',
                                                       body=res.text)
            msg = '\n请求地址:' + res.url + '\n请求数据:' + params + '\n返回结果:' + res.text
            self.assertFalse(res_success, msg=msg)
            self.assertEqual('验证短信失败', res_error, msg=msg)
            self.assertEqual(10, res_code, msg=msg)
Пример #22
0
 def setUp(self):
     self.client = HTTPClient(url=self.URL, method='GET')
Пример #23
0
	def setUp(self):
		self.client = HTTPClient(url=self.API_URL, method='POST')
		logger.info('开始测试')
Пример #24
0
 def setUp(self):
     self.client = HTTPClient(url=self.API_URL, method='GET')
     self.mid = OpenPlatformCommon.getmid()
     logger.info('开始测试')
Пример #25
0
对接口测试来说,很多时候,我们的用例不是一次请求就OK了的,而是多个请求复合的,我们第二个请求可能会用到第一个请求返回值中的数据,这就要我们再次进行封装,做一个抽取器,从结果中抽取部分信息。
这里我们会用到JMESPath库,这是一个让我们通过类似于xpath或点分法来定位json中的节点的库


"""
import jmespath
import json
from src.utils.client import HTTPClient

class JMESPathExtractor(object):
    """
       用JMESPath实现的抽取器,对于json格式数据实现简单方式的抽取。
       """
    def extract(self,query=None,body=None):
        try:
            return jmespath.search(query,json.loads(body))
        except Exception as e:
            raise ValueError('Invalid query:'+query+':'+str(e))



if __name__ == '__main__':
    res = HTTPClient(url = 'http://wthrcdn.etouch.cn/weather_mini?citykey=101010100',method='GET').send()
    print(res.text)
    j = JMESPathExtractor()
    j_1 = j.extract(query='data.forecast[1].date',body=res.text)
    j_2 = j.extract(query='data.ganmao',body=res.text)
    print(j_1,j_2)

Пример #26
0
    def test_ProductGet03(self):
        """验证修改产品成功后获取产品信息是否正确"""
        pid = OpenPlatformCommon.getpid(self.mid)
        edit_datas = {
            "productId": pid,
            "name": "编辑产品名Autotest",
            "iconUrl": "iconUrl.modify",
            "department": "modify部门",
            "introduction": "modify介绍",
            "state": 2,
            "settings": {
                "packageName": "modify包名",
                "signature": "modifysignature",
                "bundleID": "modifybundleID",
                "appId": "modifyAPPID",
                "h5PlatformName": "modifyH5平台名",
                "h5Address": "modifyH5.Address",
                "smallProgramId": "modifysmallProgramId"
            }
        }
        edit_url = Config().get('OpenPlatform_API').get('Product').get(
            'Product')
        edit_headers = {'Content-Type': "application/json"}
        edit_client = HTTPClient(url=self.API_URL, method='PATCH')
        edit_client.send(data=json.dumps(edit_datas), headers=edit_headers)
        #查询编辑后的产品信息
        params = {"ProductId": pid}
        res = self.client.send(params=params)
        msg = '\n请求地址:' + res.url + '\n请求数据:' + str(pid) + '\n返回结果:' + res.text
        #获取返回信息
        result = JMESPathExtractor().extract(query='success', body=res.text)
        message = JMESPathExtractor().extract(query='message', body=res.text)
        date = time.strftime('%Y-%m-%d', time.localtime(time.time()))
        responseTime = JMESPathExtractor().extract(query='responseTime',
                                                   body=res.text)
        res_pid = JMESPathExtractor().extract(query='data.productId',
                                              body=res.text)
        res_pname = JMESPathExtractor().extract(query='data.productName',
                                                body=res.text)
        res_iconurl = JMESPathExtractor().extract(query='data.iconUrl',
                                                  body=res.text)
        res_pnum = JMESPathExtractor().extract(query='data.productNum',
                                               body=res.text)
        res_pcategory = JMESPathExtractor().extract(
            query='data.productCategory', body=res.text)
        res_pecology = JMESPathExtractor().extract(query='data.productEcology',
                                                   body=res.text)
        res_pmname = JMESPathExtractor().extract(query='data.merchantName',
                                                 body=res.text)
        res_department = JMESPathExtractor().extract(query='data.department',
                                                     body=res.text)
        res_psecret = JMESPathExtractor().extract(query='data.productSecret',
                                                  body=res.text)
        res_pintroduction = JMESPathExtractor().extract(
            query='data.introduction', body=res.text)
        res_pstate = JMESPathExtractor().extract(query='data.state',
                                                 body=res.text)
        res_psettings_platform = JMESPathExtractor().extract(
            query='data.settings.platform', body=res.text)
        res_psettings_packagename = JMESPathExtractor().extract(
            query='data.settings.packageName', body=res.text)
        res_psettings_signature = JMESPathExtractor().extract(
            query='data.settings.signature', body=res.text)
        res_psettings_bundleID = JMESPathExtractor().extract(
            query='data.settings.bundleID', body=res.text)
        res_psettings_appID = JMESPathExtractor().extract(
            query='data.settings.appId', body=res.text)
        res_psettings_h5type = JMESPathExtractor().extract(
            query='data.settings.h5Type', body=res.text)
        res_psettings_h5platformname = JMESPathExtractor().extract(
            query='data.settings.h5PlatformName', body=res.text)
        res_psettings_h5address = JMESPathExtractor().extract(
            query='data.settings.h5Address', body=res.text)
        res_psettings_smallProgramId = JMESPathExtractor().extract(
            query='data.settings.smallProgramId', body=res.text)
        res_psettings_smallPlatformType = JMESPathExtractor().extract(
            query='data.settings.smallPlatformType', body=res.text)

        self.assertEqual('true', str(result).lower(), msg=msg)
        self.assertIn(date, str(responseTime), msg=msg)
        self.assertEqual(pid, res_pid, msg=msg)
        self.assertEqual('编辑产品名Autotest', res_pname, msg=msg)
        self.assertIn('key=iconUrl.modify', str(res_iconurl), msg=msg)
        self.assertEqual(1, res_pcategory, msg=msg)
        self.assertEqual(0, res_pecology, msg=msg)
        self.assertEqual('中顺网络公司', res_pmname, msg=msg)
        self.assertEqual('modify部门', res_department, msg=msg)
        self.assertEqual('modify介绍', res_pintroduction, msg=msg)
        self.assertEqual(2, res_pstate, msg=msg)
        self.assertEqual(0, res_psettings_platform, msg=msg)
        self.assertEqual('modify包名', res_psettings_packagename, msg=msg)
        self.assertEqual('modifysignature', res_psettings_signature, msg=msg)
        self.assertEqual('modifybundleID', res_psettings_bundleID, msg=msg)
        self.assertEqual('modifyAPPID', res_psettings_appID, msg=msg)
        self.assertEqual(0, res_psettings_h5type, msg=msg)
        self.assertEqual('modifyH5平台名', res_psettings_h5platformname, msg=msg)
        self.assertEqual('modifyH5.Address', res_psettings_h5address, msg=msg)
        self.assertEqual('modifysmallProgramId',
                         res_psettings_smallProgramId,
                         msg=msg)
        self.assertEqual(0, res_psettings_smallPlatformType, msg=msg)
Пример #27
0
class TestProductGet(unittest.TestCase):
    """产品详情接口"""
    API_URL = Config().get('OpenPlatform_API').get('Product').get('Product')
    excel = DATA_PATH + '/OpenPlatform_Merchant.xlsx'

    def setUp(self):
        self.client = HTTPClient(url=self.API_URL, method='GET')
        self.mid = OpenPlatformCommon.getmid()
        logger.info('开始测试')

    def tearDown(self):
        logger.info('结束测试')

    def test_ProductGet01(self):
        """简单验证获取产品信息接口容错"""
        datas = ExcelReader(self.excel, sheet='ProductDetail').data
        for d in range(0, len(datas)):
            if datas[d]['is_execute'] == 'N':
                continue
            else:
                with self.subTest(data=datas[d]['CaseNo'] +
                                  datas[d]['describe']):
                    self.setUp()
                    # logger.debug(datas[d])
                    expect = datas[d]['expect_code']
                    casename = str(datas[d]['describe'])
                    caseNo = str(datas[d]['CaseNo'])
                    #请求的参数剔除期望值列、是否执行列、描述列、用例编号列
                    datas[d].pop('expect_code')
                    datas[d].pop('is_execute')
                    datas[d].pop('describe')
                    datas[d].pop('CaseNo')
                    if datas[d]['ProductId'] == '{pid}':
                        datas[d]['ProductId'] = OpenPlatformCommon.getpid(
                            self.mid)

                    #转换为json格式
                    # json.dumps(datas[d]['settings'])
                    params = datas[d]
                    # logger.debug(type(params))

                    res = self.client.send(params=params)
                    # resultlist =[caseNo,casename,params,expect,res.text]
                    # resultdata.qppend(resultlist)
                    # logger.debug(res.text)
                    result = JMESPathExtractor().extract(query='success',
                                                         body=res.text)
                    message = JMESPathExtractor().extract(query='message',
                                                          body=res.text)
                    msg = '\n请求地址:' + res.url + '\n返回结果:' + res.text
                    self.assertEqual(expect, str(result).lower(), msg=msg)
                    self.assertNotIn('未知错误', str(message), msg=msg)
                    self.tearDown()

    def test_ProductGet02(self):
        """验证新增产品成功后获取产品信息是否正确"""
        pid = OpenPlatformCommon.getpid(self.mid)
        params = {"ProductId": pid}
        res = self.client.send(params=params)
        msg = '\n请求地址:' + res.url + '\n请求数据:' + str(pid) + '\n返回结果:' + res.text
        #获取返回信息
        result = JMESPathExtractor().extract(query='success', body=res.text)
        message = JMESPathExtractor().extract(query='message', body=res.text)
        date = time.strftime('%Y-%m-%d', time.localtime(time.time()))
        responseTime = JMESPathExtractor().extract(query='responseTime',
                                                   body=res.text)
        res_pid = JMESPathExtractor().extract(query='data.productId',
                                              body=res.text)
        res_pname = JMESPathExtractor().extract(query='data.productName',
                                                body=res.text)
        res_iconurl = JMESPathExtractor().extract(query='data.iconUrl',
                                                  body=res.text)
        res_pnum = JMESPathExtractor().extract(query='data.productNum',
                                               body=res.text)
        res_pcategory = JMESPathExtractor().extract(
            query='data.productCategory', body=res.text)
        res_pecology = JMESPathExtractor().extract(query='data.productEcology',
                                                   body=res.text)
        res_pmname = JMESPathExtractor().extract(query='data.merchantName',
                                                 body=res.text)
        res_department = JMESPathExtractor().extract(query='data.department',
                                                     body=res.text)
        res_psecret = JMESPathExtractor().extract(query='data.productSecret',
                                                  body=res.text)
        res_pintroduction = JMESPathExtractor().extract(
            query='data.introduction', body=res.text)
        res_pstate = JMESPathExtractor().extract(query='data.state',
                                                 body=res.text)
        res_psettings_platform = JMESPathExtractor().extract(
            query='data.settings.platform', body=res.text)
        res_psettings_packagename = JMESPathExtractor().extract(
            query='data.settings.packageName', body=res.text)
        res_psettings_signature = JMESPathExtractor().extract(
            query='data.settings.signature', body=res.text)
        res_psettings_bundleID = JMESPathExtractor().extract(
            query='data.settings.bundleID', body=res.text)
        res_psettings_appID = JMESPathExtractor().extract(
            query='data.settings.appId', body=res.text)
        res_psettings_h5type = JMESPathExtractor().extract(
            query='data.settings.h5Type', body=res.text)
        res_psettings_h5platformname = JMESPathExtractor().extract(
            query='data.settings.h5PlatformName', body=res.text)
        res_psettings_h5address = JMESPathExtractor().extract(
            query='data.settings.h5Address', body=res.text)
        res_psettings_smallProgramId = JMESPathExtractor().extract(
            query='data.settings.smallProgramId', body=res.text)
        res_psettings_smallPlatformType = JMESPathExtractor().extract(
            query='data.settings.smallPlatformType', body=res.text)

        self.assertEqual('true', str(result).lower(), msg=msg)
        self.assertIn(date, str(responseTime), msg=msg)
        self.assertEqual(pid, res_pid, msg=msg)
        self.assertEqual('Autotest测试', res_pname, msg=msg)
        self.assertIn('key=Autotest', str(res_iconurl), msg=msg)
        self.assertEqual(1, res_pcategory, msg=msg)
        self.assertEqual(0, res_pecology, msg=msg)
        self.assertEqual('中顺网络公司', res_pmname, msg=msg)
        self.assertEqual('Web研发部门', res_department, msg=msg)
        self.assertEqual('Autotest自动化自动创建产品', res_pintroduction, msg=msg)
        self.assertEqual(1, res_pstate, msg=msg)
        self.assertEqual(0, res_psettings_platform, msg=msg)
        self.assertEqual('Autotest', res_psettings_packagename, msg=msg)
        self.assertEqual('Autotest', res_psettings_signature, msg=msg)
        self.assertEqual('Autotest.bundleID', res_psettings_bundleID, msg=msg)
        self.assertEqual('Autotest.appId', res_psettings_appID, msg=msg)
        self.assertEqual(0, res_psettings_h5type, msg=msg)
        self.assertEqual('AutotestH5', res_psettings_h5platformname, msg=msg)
        self.assertEqual('Autotest.H5', res_psettings_h5address, msg=msg)
        self.assertEqual('AutotestsmallProgramId',
                         res_psettings_smallProgramId,
                         msg=msg)
        self.assertEqual(0, res_psettings_smallPlatformType, msg=msg)

    def test_ProductGet03(self):
        """验证修改产品成功后获取产品信息是否正确"""
        pid = OpenPlatformCommon.getpid(self.mid)
        edit_datas = {
            "productId": pid,
            "name": "编辑产品名Autotest",
            "iconUrl": "iconUrl.modify",
            "department": "modify部门",
            "introduction": "modify介绍",
            "state": 2,
            "settings": {
                "packageName": "modify包名",
                "signature": "modifysignature",
                "bundleID": "modifybundleID",
                "appId": "modifyAPPID",
                "h5PlatformName": "modifyH5平台名",
                "h5Address": "modifyH5.Address",
                "smallProgramId": "modifysmallProgramId"
            }
        }
        edit_url = Config().get('OpenPlatform_API').get('Product').get(
            'Product')
        edit_headers = {'Content-Type': "application/json"}
        edit_client = HTTPClient(url=self.API_URL, method='PATCH')
        edit_client.send(data=json.dumps(edit_datas), headers=edit_headers)
        #查询编辑后的产品信息
        params = {"ProductId": pid}
        res = self.client.send(params=params)
        msg = '\n请求地址:' + res.url + '\n请求数据:' + str(pid) + '\n返回结果:' + res.text
        #获取返回信息
        result = JMESPathExtractor().extract(query='success', body=res.text)
        message = JMESPathExtractor().extract(query='message', body=res.text)
        date = time.strftime('%Y-%m-%d', time.localtime(time.time()))
        responseTime = JMESPathExtractor().extract(query='responseTime',
                                                   body=res.text)
        res_pid = JMESPathExtractor().extract(query='data.productId',
                                              body=res.text)
        res_pname = JMESPathExtractor().extract(query='data.productName',
                                                body=res.text)
        res_iconurl = JMESPathExtractor().extract(query='data.iconUrl',
                                                  body=res.text)
        res_pnum = JMESPathExtractor().extract(query='data.productNum',
                                               body=res.text)
        res_pcategory = JMESPathExtractor().extract(
            query='data.productCategory', body=res.text)
        res_pecology = JMESPathExtractor().extract(query='data.productEcology',
                                                   body=res.text)
        res_pmname = JMESPathExtractor().extract(query='data.merchantName',
                                                 body=res.text)
        res_department = JMESPathExtractor().extract(query='data.department',
                                                     body=res.text)
        res_psecret = JMESPathExtractor().extract(query='data.productSecret',
                                                  body=res.text)
        res_pintroduction = JMESPathExtractor().extract(
            query='data.introduction', body=res.text)
        res_pstate = JMESPathExtractor().extract(query='data.state',
                                                 body=res.text)
        res_psettings_platform = JMESPathExtractor().extract(
            query='data.settings.platform', body=res.text)
        res_psettings_packagename = JMESPathExtractor().extract(
            query='data.settings.packageName', body=res.text)
        res_psettings_signature = JMESPathExtractor().extract(
            query='data.settings.signature', body=res.text)
        res_psettings_bundleID = JMESPathExtractor().extract(
            query='data.settings.bundleID', body=res.text)
        res_psettings_appID = JMESPathExtractor().extract(
            query='data.settings.appId', body=res.text)
        res_psettings_h5type = JMESPathExtractor().extract(
            query='data.settings.h5Type', body=res.text)
        res_psettings_h5platformname = JMESPathExtractor().extract(
            query='data.settings.h5PlatformName', body=res.text)
        res_psettings_h5address = JMESPathExtractor().extract(
            query='data.settings.h5Address', body=res.text)
        res_psettings_smallProgramId = JMESPathExtractor().extract(
            query='data.settings.smallProgramId', body=res.text)
        res_psettings_smallPlatformType = JMESPathExtractor().extract(
            query='data.settings.smallPlatformType', body=res.text)

        self.assertEqual('true', str(result).lower(), msg=msg)
        self.assertIn(date, str(responseTime), msg=msg)
        self.assertEqual(pid, res_pid, msg=msg)
        self.assertEqual('编辑产品名Autotest', res_pname, msg=msg)
        self.assertIn('key=iconUrl.modify', str(res_iconurl), msg=msg)
        self.assertEqual(1, res_pcategory, msg=msg)
        self.assertEqual(0, res_pecology, msg=msg)
        self.assertEqual('中顺网络公司', res_pmname, msg=msg)
        self.assertEqual('modify部门', res_department, msg=msg)
        self.assertEqual('modify介绍', res_pintroduction, msg=msg)
        self.assertEqual(2, res_pstate, msg=msg)
        self.assertEqual(0, res_psettings_platform, msg=msg)
        self.assertEqual('modify包名', res_psettings_packagename, msg=msg)
        self.assertEqual('modifysignature', res_psettings_signature, msg=msg)
        self.assertEqual('modifybundleID', res_psettings_bundleID, msg=msg)
        self.assertEqual('modifyAPPID', res_psettings_appID, msg=msg)
        self.assertEqual(0, res_psettings_h5type, msg=msg)
        self.assertEqual('modifyH5平台名', res_psettings_h5platformname, msg=msg)
        self.assertEqual('modifyH5.Address', res_psettings_h5address, msg=msg)
        self.assertEqual('modifysmallProgramId',
                         res_psettings_smallProgramId,
                         msg=msg)
        self.assertEqual(0, res_psettings_smallPlatformType, msg=msg)
Пример #28
0
class TestAdminGet(unittest.TestCase):
    """管理员详情接口"""
    API_URL = Config().get('OpenPlatform_API').get('Admin').get('AdminGet')
    excel = DATA_PATH + '/OpenPlatform_Merchant.xlsx'

    def setUp(self):
        self.client = HTTPClient(url=self.API_URL, method='GET')
        self.mid = OpenPlatformCommon.getmid()
        logger.info('开始测试')

    def tearDown(self):
        logger.info('结束测试')

    def test_AdminGet01(self):
        """简单验证获取管理员信息接口容错"""
        datas = ExcelReader(self.excel, sheet='GetAdmin').data
        for d in range(0, len(datas)):
            if datas[d]['is_execute'] == 'N':
                continue
            else:
                with self.subTest(data=datas[d]['CaseNo'] +
                                  datas[d]['describe']):
                    self.setUp()
                    # logger.debug(datas[d])
                    expect = datas[d]['expect_code']
                    casename = str(datas[d]['describe'])
                    caseNo = str(datas[d]['CaseNo'])
                    #请求的参数剔除期望值列、是否执行列、描述列、用例编号列
                    datas[d].pop('expect_code')
                    datas[d].pop('is_execute')
                    datas[d].pop('describe')
                    datas[d].pop('CaseNo')
                    if datas[d]['id'] == '{aid}':
                        datas[d]['id'] = OpenPlatformCommon.getaid(self.mid)[0]
                    res = self.client.sendbyurl(datas[d]['id'])
                    # resultlist =[caseNo,casename,params,expect,res.text]
                    # resultdata.qppend(resultlist)
                    # logger.debug(res.text)
                    result = JMESPathExtractor().extract(query='success',
                                                         body=res.text)
                    message = JMESPathExtractor().extract(query='message',
                                                          body=res.text)
                    msg = '\n请求地址:' + res.url + '\n返回结果:' + res.text
                    self.assertEqual(expect, str(result).lower(), msg=msg)
                    self.assertNotIn('未知错误', str(message), msg=msg)
                    self.tearDown()

    def test_AdminGet02(self):
        """验证创建成功后获取管理员信息是否正确"""
        aid, account = OpenPlatformCommon.getaid(self.mid)

        date = time.strftime('%Y-%m-%d', time.localtime(time.time()))
        res = self.client.sendbyurl(aid)
        res_result = JMESPathExtractor().extract(query='success',
                                                 body=res.text)
        res_aid = JMESPathExtractor().extract(query='data.id', body=res.text)
        res_mid = JMESPathExtractor().extract(query='data.mId', body=res.text)
        res_loginaccount = JMESPathExtractor().extract(
            query='data.loginAccount', body=res.text)
        res_mobile = JMESPathExtractor().extract(query='data.mobile',
                                                 body=res.text)
        res_position = JMESPathExtractor().extract(query='data.position',
                                                   body=res.text)
        res_realname = JMESPathExtractor().extract(query='data.realName',
                                                   body=res.text)
        res_createtime = JMESPathExtractor().extract(query='data.createTime',
                                                     body=res.text)
        res_state = JMESPathExtractor().extract(query='data.state',
                                                body=res.text)
        res_type = JMESPathExtractor().extract(query='data.type',
                                               body=res.text)
        msg = '\n请求地址:' + res.url + '\n请求数据:' + aid + '\n返回结果:' + res.text
        self.assertEqual('true', str(res_result).lower(), msg=msg)
        self.assertEqual(self.mid, res_mid, msg=msg)
        self.assertEqual(aid, res_aid, msg=msg)
        self.assertEqual(account, res_loginaccount, msg=msg)
        self.assertEqual('None', str(res_mobile), msg=msg)
        self.assertEqual('', str(res_position), msg=msg)
        self.assertEqual('', str(res_realname), msg=msg)
        self.assertEqual('1', str(res_state), msg=msg)
        self.assertEqual('1', str(res_type), msg=msg)
        self.assertIn(date, str(res_createtime), msg=msg)
Пример #29
0
class TestChannelList(unittest.TestCase):
    """渠道列表接口"""
    API_URL = Config().get('OpenPlatform_API').get('Channel').get(
        'ChannelList')
    excel = DATA_PATH + '/OpenPlatform_Merchant.xlsx'

    def setUp(self):
        self.client = HTTPClient(url=self.API_URL, method='POST')
        logger.info('开始测试')

    def tearDown(self):
        logger.info('结束测试')

    def test_ChannelList01(self):
        """简单验证渠道列表接口容错"""
        datas = ExcelReader(self.excel, sheet='ChannelList').data
        for d in range(0, len(datas)):
            if datas[d]['is_execute'] == 'N':
                continue
            else:
                with self.subTest(data=datas[d]['CaseNo'] +
                                  datas[d]['describe']):
                    self.setUp()
                    # logger.debug(datas[d])
                    expect = datas[d]['expect_code']
                    casename = str(datas[d]['describe'])
                    caseNo = str(datas[d]['CaseNo'])
                    #请求的参数剔除期望值列、是否执行列、描述列、用例编号列
                    datas[d].pop('expect_code')
                    datas[d].pop('is_execute')
                    datas[d].pop('describe')
                    datas[d].pop('CaseNo')
                    #转换为json格式
                    params = json.dumps(datas[d])
                    # logger.debug(type(params))
                    headers = {'Content-Type': "application/json"}
                    res = self.client.send(data=params, headers=headers)
                    # resultlist =[caseNo,casename,params,expect,res.text]
                    # resultdata.qppend(resultlist)
                    # logger.debug(res.text)
                    result = JMESPathExtractor().extract(query='success',
                                                         body=res.text)
                    message = JMESPathExtractor().extract(query='message',
                                                          body=res.text)
                    msg = '\n请求地址:' + res.url + '\n请求数据:' + params + '\n返回结果:' + res.text
                    self.assertEqual(expect, str(result).lower(), msg=msg)
                    self.assertNotIn('未知错误', str(message), msg=msg)
                    self.tearDown()

    def test_ChannelList02(self):
        """验证渠道名称查询"""
        datas = {"keyword": "官方", "pageIndex": 1, "pageSize": 10}
        params = json.dumps(datas)
        headers = {'Content-Type': "application/json"}
        res = self.client.send(data=params, headers=headers)
        result = JMESPathExtractor().extract(query='success', body=res.text)
        res_error = JMESPathExtractor().extract(query='error', body=res.text)
        res_data = JMESPathExtractor().extract(query='data', body=res.text)
        res_responseTime = JMESPathExtractor().extract(query='responseTime',
                                                       body=res.text)
        res_id = JMESPathExtractor().extract(query='data.data[0].id',
                                             body=res.text)
        res_code = JMESPathExtractor().extract(query='data.data[0].code',
                                               body=res.text)
        res_name = JMESPathExtractor().extract(query='data.data[0].name',
                                               body=res.text)
        res_type = JMESPathExtractor().extract(query='data.data[0].type',
                                               body=res.text)
        res_developerPlatform = JMESPathExtractor().extract(
            query='data.data[0].developerPlatform', body=res.text)
        res_createTime = JMESPathExtractor().extract(
            query='data.data[0].createTime', body=res.text)
        res_loginModeId = JMESPathExtractor().extract(
            query='data.data[0].loginModeId', body=res.text)
        res_loginMethod = JMESPathExtractor().extract(
            query='data.data[0].loginMethod', body=res.text)
        res_paymentTemplateId = JMESPathExtractor().extract(
            query='data.data[0].paymentTemplateId', body=res.text)
        msg = '\n请求地址:' + res.url + '\n请求数据:' + params + '\n返回结果:' + res.text
        self.assertEqual('true', str(result).lower(), msg=msg)
        self.assertIsNone(res_error, msg=msg)
        self.assertEqual('39ef7c11112bcb0abb399595e966846e', res_id, msg=msg)
        self.assertEqual('6962', res_code, msg=msg)
        self.assertEqual('测试基础数据_官方渠道', res_name, msg=msg)
        self.assertEqual(1, res_type, msg=msg)
        self.assertEqual('test', res_developerPlatform, msg=msg)
        self.assertEqual('2019-08-08T16:12:13', res_createTime, msg=msg)
        self.assertIsNone(res_loginMethod, msg=msg)
        self.assertIsNone(res_loginModeId, msg=msg)
        self.assertIsNone(res_paymentTemplateId, msg=msg)

    def test_ChannelList03(self):
        """验证渠道编码查询"""
        datas = {"keyword": "6963", "pageIndex": 1, "pageSize": 10}
        params = json.dumps(datas)
        headers = {'Content-Type': "application/json"}
        res = self.client.send(data=params, headers=headers)
        result = JMESPathExtractor().extract(query='success', body=res.text)
        res_error = JMESPathExtractor().extract(query='error', body=res.text)
        res_data = JMESPathExtractor().extract(query='data', body=res.text)
        res_responseTime = JMESPathExtractor().extract(query='responseTime',
                                                       body=res.text)
        res_id = JMESPathExtractor().extract(query='data.data[0].id',
                                             body=res.text)
        res_code = JMESPathExtractor().extract(query='data.data[0].code',
                                               body=res.text)
        res_name = JMESPathExtractor().extract(query='data.data[0].name',
                                               body=res.text)
        res_type = JMESPathExtractor().extract(query='data.data[0].type',
                                               body=res.text)
        res_developerPlatform = JMESPathExtractor().extract(
            query='data.data[0].developerPlatform', body=res.text)
        res_createTime = JMESPathExtractor().extract(
            query='data.data[0].createTime', body=res.text)
        res_loginModeId = JMESPathExtractor().extract(
            query='data.data[0].loginModeId', body=res.text)
        res_loginMethod = JMESPathExtractor().extract(
            query='data.data[0].loginMethod', body=res.text)
        res_paymentTemplateId = JMESPathExtractor().extract(
            query='data.data[0].paymentTemplateId', body=res.text)
        msg = '\n请求地址:' + res.url + '\n请求数据:' + params + '\n返回结果:' + res.text
        self.assertEqual('true', str(result).lower(), msg=msg)
        self.assertIsNone(res_error, msg=msg)
        self.assertEqual('39ef7c14c2ae6187df4be0281eca0beb', res_id, msg=msg)
        self.assertEqual('6963', res_code, msg=msg)
        self.assertEqual('测试基础数据_联运渠道', res_name, msg=msg)
        self.assertEqual(2, res_type, msg=msg)
        self.assertEqual('test', res_developerPlatform, msg=msg)
        self.assertEqual('2019-08-08T16:12:13', res_createTime, msg=msg)
        self.assertEqual('测试基础数据_登录方式_联运SDK', res_loginMethod, msg=msg)
        self.assertEqual('39ef7c13f0e8827efe3fae844d518713',
                         res_loginModeId,
                         msg=msg)
        # self.assertEqual('7d518dfd-62c3-4636-8909-15be17d964be',res_paymentTemplateId, msg=msg)
        self.assertIsNone(res_paymentTemplateId, msg=msg)

    def test_ChannelList04(self):
        """验证渠道id查询"""
        datas = {
            "keyword": "39ef7c14c2ae6187df4be0281eca0beb",
            "pageIndex": 1,
            "pageSize": 10
        }
        params = json.dumps(datas)
        headers = {'Content-Type': "application/json"}
        res = self.client.send(data=params, headers=headers)
        result = JMESPathExtractor().extract(query='success', body=res.text)
        res_error = JMESPathExtractor().extract(query='error', body=res.text)
        res_data = JMESPathExtractor().extract(query='data', body=res.text)
        res_responseTime = JMESPathExtractor().extract(query='responseTime',
                                                       body=res.text)
        res_id = JMESPathExtractor().extract(query='data.data[0].id',
                                             body=res.text)
        res_code = JMESPathExtractor().extract(query='data.data[0].code',
                                               body=res.text)
        res_name = JMESPathExtractor().extract(query='data.data[0].name',
                                               body=res.text)
        res_type = JMESPathExtractor().extract(query='data.data[0].type',
                                               body=res.text)
        res_developerPlatform = JMESPathExtractor().extract(
            query='data.data[0].developerPlatform', body=res.text)
        res_createTime = JMESPathExtractor().extract(
            query='data.data[0].createTime', body=res.text)
        res_loginModeId = JMESPathExtractor().extract(
            query='data.data[0].loginModeId', body=res.text)
        res_loginMethod = JMESPathExtractor().extract(
            query='data.data[0].loginMethod', body=res.text)
        res_paymentTemplateId = JMESPathExtractor().extract(
            query='data.data[0].paymentTemplateId', body=res.text)
        msg = '\n请求地址:' + res.url + '\n请求数据:' + params + '\n返回结果:' + res.text
        self.assertEqual('true', str(result).lower(), msg=msg)
        self.assertIsNone(res_error, msg=msg)
        self.assertEqual('39ef7c14c2ae6187df4be0281eca0beb', res_id, msg=msg)
        self.assertEqual('6963', res_code, msg=msg)
        self.assertEqual('测试基础数据_联运渠道', res_name, msg=msg)
        self.assertEqual(2, res_type, msg=msg)
        self.assertEqual('test', res_developerPlatform, msg=msg)
        self.assertEqual('2019-08-08T16:12:13', res_createTime, msg=msg)
        self.assertEqual('测试基础数据_登录方式_联运SDK', res_loginMethod, msg=msg)
        self.assertEqual('39ef7c13f0e8827efe3fae844d518713',
                         res_loginModeId,
                         msg=msg)
        # self.assertEqual('7d518dfd-62c3-4636-8909-15be17d964be',res_paymentTemplateId, msg=msg)
        self.assertIsNone(res_paymentTemplateId, msg=msg)
Пример #30
0
class TestMerchantList(unittest.TestCase):
    """商户列表接口"""
    API_URL = Config().get('OpenPlatform_API').get('Merchant').get(
        'MerchantList')
    excel = DATA_PATH + '/OpenPlatform_Merchant.xlsx'

    def setUp(self):
        self.client = HTTPClient(url=self.API_URL, method='GET')
        logger.info('开始测试')

    def tearDown(self):
        logger.info('结束测试')

    def test_GetMerchantList01(self):
        """简单验证商户列表接口容错"""
        datas = ExcelReader(self.excel, sheet='MerchantList').data
        for d in range(0, len(datas)):
            if datas[d]['is_execute'] == 'N':
                continue
            else:
                with self.subTest(data=datas[d]['CaseNo'] +
                                  datas[d]['describe']):
                    self.setUp()
                    # logger.debug(datas[d])
                    expect = datas[d]['expect_code']
                    casename = str(datas[d]['describe'])
                    caseNo = str(datas[d]['CaseNo'])
                    #请求的参数剔除期望值列、是否执行列、描述列、用例编号列
                    datas[d].pop('expect_code')
                    datas[d].pop('is_execute')
                    datas[d].pop('describe')
                    datas[d].pop('CaseNo')
                    #转换为json格式
                    # params = json.dumps(datas[d])
                    params = datas[d]
                    # logger.debug(type(params))
                    # headers={'Content-Type': "application/json"}
                    res = self.client.send(params=params)
                    # resultlist =[caseNo,casename,params,expect,res.text]
                    # resultdata.qppend(resultlist)
                    # logger.debug(res.text)
                    result = JMESPathExtractor().extract(query='success',
                                                         body=res.text)
                    message = JMESPathExtractor().extract(query='message',
                                                          body=res.text)
                    msg = '\n请求地址:' + res.url + '\n返回结果:' + res.text
                    self.assertEqual(expect, str(result).lower(), msg=msg)
                    self.assertNotIn('未知错误', str(message), msg=msg)
                    self.tearDown()

    def test_GetMerchantList02(self):
        """验证商户编号查询"""
        mid = OpenPlatformCommon.getmid()
        mcode, mname, mshortname, mtype, mtypename, mstate, mstatename = OpenPlatformCommon.getmcode(
            mid)
        params = {'keyword': mcode, 'pageIndex': 1, 'pageSize': 10}
        res = self.client.send(params=params)
        res_result = JMESPathExtractor().extract(query='success',
                                                 body=res.text)
        res_datalength = JMESPathExtractor().extract(query='data.recordsTotal',
                                                     body=res.text)
        res_mid = JMESPathExtractor().extract(query='data.data[0].id',
                                              body=res.text)
        res_mcode = JMESPathExtractor().extract(query='data.data[0].code',
                                                body=res.text)
        res_mname = JMESPathExtractor().extract(query='data.data[0].name',
                                                body=res.text)
        res_mshortname = JMESPathExtractor().extract(
            query='data.data[0].shortName', body=res.text)
        res_mtype = JMESPathExtractor().extract(query='data.data[0].type',
                                                body=res.text)
        #返回的商户类型名称
        res_mtypename = JMESPathExtractor().extract(
            query='data.data[0].typeName', body=res.text)
        #返回的商户状态值
        res_mstate = JMESPathExtractor().extract(query='data.data[0].state',
                                                 body=res.text)
        #返回的商户状态
        res_mstatename = JMESPathExtractor().extract(
            query='data.data[0].stateName', body=res.text)
        msg = '\n请求地址:' + res.url + '\n返回结果:' + res.text
        self.assertEqual('true', str(res_result).lower(), msg=msg)
        self.assertEqual(1, res_datalength, msg=msg)
        self.assertEqual(mid, str(res_mid), msg=msg)
        self.assertEqual(mname, str(res_mname), msg=msg)
        self.assertEqual(mshortname, str(res_mshortname), msg=msg)
        self.assertEqual(mtype, res_mtype, msg=msg)
        self.assertEqual(mtypename, str(res_mtypename), msg=msg)
        self.assertEqual(mstate, res_mstate, msg=msg)
        self.assertEqual(mstatename, str(res_mstatename), msg=msg)

    def test_GetMerchantList03(self):
        """验证商户名称查询"""
        mid = OpenPlatformCommon.getmid()
        mcode, mname, mshortname, mtype, mtypename, mstate, mstatename = OpenPlatformCommon.getmcode(
            mid)
        params = {'keyword': mname, 'pageIndex': 1, 'pageSize': 10}
        res = self.client.send(params=params)
        res_result = JMESPathExtractor().extract(query='success',
                                                 body=res.text)
        res_datalength = JMESPathExtractor().extract(query='data.recordsTotal',
                                                     body=res.text)
        res_data = JMESPathExtractor().extract(query='data.data',
                                               body=res.text)
        msg = '\n请求地址:' + res.url + '\n返回结果:' + res.text
        self.assertEqual('true', str(res_result).lower(), msg=msg)
        self.assertLessEqual(1, res_datalength, msg=msg)
        self.assertIn(mname, str(res_data), msg=msg)
        # self.assertIn(mcode, str(res_data),msg=res.text)

    def test_GetMerchantList04(self):
        """验证商户简称查询"""
        mid = OpenPlatformCommon.getmid()
        mcode, mname, mshortname, mtype, mtypename, mstate, mstatename = OpenPlatformCommon.getmcode(
            mid)
        params = {'keyword': mshortname, 'pageIndex': 1, 'pageSize': 10000}
        res = self.client.send(params=params)
        res_result = JMESPathExtractor().extract(query='success',
                                                 body=res.text)
        res_datalength = JMESPathExtractor().extract(query='data.recordsTotal',
                                                     body=res.text)
        res_data = JMESPathExtractor().extract(query='data.data',
                                               body=res.text)
        msg = '\n请求地址:' + res.url + '\n返回结果:' + res.text
        self.assertEqual('true', str(res_result).lower(), msg=msg)
        self.assertTrue(1 <= res_datalength, msg=msg)
        self.assertIn(mshortname, str(res_data), msg=msg)
        self.assertIn(mcode, str(res_data), msg=msg)