示例#1
0
 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()
示例#2
0
 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_GetChannelTypeByCode01(self):
        """简单验证获取渠道类型接口容错"""
        datas = ExcelReader(self.excel, sheet='GetChannelTypeByCode').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')
                    params = datas[d]
                    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()
示例#4
0
    def test_UserList01(self):
        """批量验证账号列表接口容错"""
        datas = ExcelReader(self.excel, sheet='UserList').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')

                    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)
                    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.data',
                                                           body=res.text)
                    res_recordsTotal = JMESPathExtractor().extract(
                        query='data.recordsTotal', body=res.text)
                    msg = '\n请求地址:' + res.url + '\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']['data']:
                        for i in range(0, len(expect['data']['data'])):
                            self.assertIn(expect['data']['data'][i],
                                          res_data,
                                          msg=msg)
                        self.assertLessEqual(1, res_recordsTotal, msg=msg)
                    self.tearDown()
    def test_ProductPackageSimpleInfo01(self):
        """批量验证获取分包号的简单信息接口容错"""
        datas = ExcelReader(self.excel, sheet='ProductPackageSimpleInfo').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')
                    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)
                    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_packageId = JMESPathExtractor().extract(
                        query='data.packageId', body=res.text)
                    res_packageCount = JMESPathExtractor().extract(
                        query='data.packageCount', body=res.text)
                    msg = '\n请求地址:' + res.url + '\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(expect['data'], res_data, msg=msg)

                    self.tearDown()
示例#6
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()
示例#7
0
    def test_ProductModify01(self):
        """简单验证修改产品接口容错"""
        datas = ExcelReader(self.excel, sheet='ModifyProduct').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'] == '{pid1-0}':
                        datas[d]['productId'] = OpenPlatformCommon.getpid(
                            self.mid, category=1, platform=0)
                    elif datas[d]['productId'] == '{pid1-1}':
                        datas[d]['productId'] = OpenPlatformCommon.getpid(
                            self.mid, category=1, platform=1)
                    elif datas[d]['productId'] == '{pid2}':
                        datas[d]['productId'] = OpenPlatformCommon.getpid(
                            self.mid, category=2)
                    elif datas[d]['productId'] == '{pid3}':
                        datas[d]['productId'] = OpenPlatformCommon.getpid(
                            self.mid, category=3)

                    datas[d]['settings'] = ast.literal_eval(
                        datas[d]['settings'])
                    # logger.debug(type(datas[d]['setting']))
                    # logger.debug(datas[d]['setting'])
                    #转换为json格式
                    # json.dumps(datas[d]['settings'])
                    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_search_po(self):
     datas = ExcelReader(self.excel).data
     for d in datas:
         with self.subTest(data=d):
             self.sub_setUp_po()
             self.page.search(d['search'])
             time.sleep(2)
             self.page = BaiDuResultPage(self.page)  #页面跳转到result页面
             self.page.save_screen_shot()
             links = self.page.result_links
             for link in links:
                 logger.info(link.text)
             self.sub_tearDown_po()
示例#9
0
 def test_search(self):
     datas = ExcelReader(self.excel).data
     for d in datas:
         with self.subTest(data=d):
             self.sub_setUp()
             self.driver.find_element(*self.locator_kw).send_keys(
                 d['search'])
             self.driver.find_element(*self.locator_su).click()
             time.sleep(2)
             links = self.driver.find_elements(*self.locator_result)
             for link in links:
                 logger.info(link.text)
             self.sub_tearDown()
示例#10
0
 def test_DeviceInfo01(self):
     """简单验证查询用户常用设备详情接口容错"""
     datas = ExcelReader(self.excel, sheet='UserDetails').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]['playerId']
                 res = self.client.sendbyurl(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)
                 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()
示例#11
0
 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()
示例#12
0
def TestData():
    '''数据驱动数据函数'''
    try:
        from src.utils.ddt_testdata import testData
        from src.utils.file_reader import ExcelReader
        excelpath = DATA_PATH + "/xstz.xlsx"
        AssertData = ExcelReader(excelpath).data
        testData1 = []
        for i in AssertData:
            for testdata in testData:
                if testdata["P_name"] == i["P_name"]:
                    testdata["locator"] = i["locator"]
                    testdata["element"] = i["element"]
                    testData1.append(testdata)
        return testData1
    except TimeoutError:
        return None
        print("服务器超时!")
示例#13
0
    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 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()
示例#15
0
    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()
示例#16
0
    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()
示例#17
0
# -*- coding: utf-8 -*-
# @Time    : 2018/4/12 16:29
# @Author  : huanghe
# @Site    :
# @File    : test_baidu.py
# @Software: PyCharm
import time
import unittest
from src.test.suit.baidu.search_page import SearchPage
from src.utils.browser import Browser
from src.utils.config import Config
from src.utils.file_reader import ExcelReader
from src.utils.config import DATA_PATH

excel = DATA_PATH
dates = ExcelReader(DATA_PATH).data


class SearchTest(unittest.TestCase):
    def setUp(self):
        self.driver = Browser().get_browserdriver()
        self.search_page = SearchPage(self.driver)
        self.search_page.url = Config().get('BaiDuURl')
        self.search_page.visit()

    def tearDown(self):
        pass
        #self.search_page.quit_browser()

    def test_search(self):
        self.search_page.set_value(element=self.search_page.rec_search_input(),
示例#18
0
 def test_checkinfo(self):
     datas = ExcelReader(self.excel).data
     print(datas)
示例#19
0
    os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
sys.path.append(BASE_PATH)
from src.utils.file_reader import YamlReader
from src.utils.file_reader import ExcelReader

# 通过当前文件的绝对路径,其父级目录一定是框架的base目录,然后确定各层的绝对路径。如果你的结构不同,可自行修改。
# 之前直接拼接的路径,修改了一下,用现在下面这种方法,可以支持linux和windows等不同的平台,也建议大家多用os.path.split()和os.path.join(),不要直接+'\\xxx\\ss'这样
CONFIG_FILE = os.path.join(BASE_PATH, 'config', 'config.yml')
DATA_PATH = os.path.join(BASE_PATH, 'data')
DRIVER_PATH = os.path.join(BASE_PATH, 'drivers')
LOG_PATH = os.path.join(BASE_PATH, 'log')
REPORT_PATH = os.path.join(BASE_PATH, 'report')
CASE_PATH = os.path.join(BASE_PATH, 'src', 'test', 'case')
INTERFACE_PATH = os.path.join(BASE_PATH, 'src', 'test', 'interface')
_reader = ExcelReader(os.path.join(DATA_PATH, '测试用例.xlsx'),
                      sheet='all',
                      title_line=True).data  # 数据路径


#获取需测试的模块
def get_test():
    data = []
    for datatest in _reader:
        data.append((datatest.get('测试模块'), datatest.get('是否测试')))
    return data


EXECEL_FILE = get_test()

# EXECEL_FILE=[('发票提交','Y'),('特定城市报备','N')]
示例#20
0
#coding=utf-8
import unittest
import os, ddt

from src.test.page.voince_page import Voince_page
from src.utils.settings import DATA_PATH, Settings
from src.utils.file_reader import ExcelReader
_reader = ExcelReader(os.path.join(DATA_PATH, '测试用例.xlsx'),
                      sheet='case1').data  # 数据路径


@ddt.ddt
class Invoice_test(unittest.TestCase):
    @classmethod
    def setUpClass(self):
        URL = Settings().get('url', index=0)
        self.driver = Voince_page(browser_type='chrome').get(
            URL, maximize_window=False)

    @classmethod
    def tearDownClass(self):
        self.driver.quit()

    def test_login(self):
        """
        登录
        """
        self.driver.login()

    @ddt.data(*_reader)
    def test_voince(self, data):
示例#21
0
import unittest
import requests, unittest, os, time, json

sys.path.append(os.path.abspath(os.path.join(os.getcwd(), "../../..")))
# print (sys.path)
from src.utils.config import Config, DATA_PATH, REPORT_PATH
from src.utils.log import logger
from src.utils.file_reader import ExcelReader
from src.utils.HTMLTestRunner import HTMLTestRunner
from src.utils.mail import Email
from src.utils.client import HTTPClient


def test_checkinfo():
    pass

    # for d in range(0,len(datas)):
    # 	print (datas[d])
    # 	res = client.send(params=datas[d])
    # 	print(res)
    #self.assertEqual(0, res.code)


if __name__ == '__main__':
    API_URL = Config().get('API_URL').get('sss')
    excel = DATA_PATH + '\APITest.xlsx'
    datas = ExcelReader(excel=excel, sheet='sss').data
    for d in range(0, len(datas)):
        print(datas[d])
        res = client.send(params=datas[d])
        print(res)
示例#22
0
    def test_VerifyCodeSMS01(self):
        """批量验证手机验证码信息接口容错"""
        datas = ExcelReader(self.excel, sheet='sms').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')

                    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_realName = JMESPathExtractor().extract(
                        query='data.realName', body=res.text)
                    res_mobile = JMESPathExtractor().extract(
                        query='data.mobile', 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():
                        if expect['success']:
                            self.assertEqual(6, len(res_error), msg=msg)
                        else:
                            self.assertEqual(expect['error'],
                                             res_error,
                                             msg=msg)

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

                    self.tearDown()
示例#23
0
    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()