def run_case_suit(case_suit):
    try:
        config = ReadYaml(FileUtil.getProjectObsPath() +
                          '/config/config.yaml').getValue()
        app_package = config['appPackage_chezhu']
        app_activity = config['appActivity_chezhu']
        AppUiDriver(appPackage=app_package,
                    appActivity=app_activity).app_ui_driver()

        ### run case ###
        ReportUtil().generate_report(
            case_suit, config['email_title'] +
            time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())),
            'qa testing report',
            FileUtil.getProjectObsPath() + '/report/report.html')
        reader = open(FileUtil.getProjectObsPath() + '/report/report.html',
                      'rb')
        mail_body = reader.read()
        reader.close()
        SendMail().send_mail(
            config['email_receiver'], config['email_sender'],
            config['email_sender_pwd'], config['email_host'],
            config['email_title'] +
            time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())),
            mail_body, {FileUtil.getProjectObsPath() + '/report/report.html'})
        print('BvtCase run success!')

    except Exception:
        print('BvtCase run fail!')
        raise
Beispiel #2
0
 def __init__(self):
     self.config = ReadYaml(FileUtil.getProjectObsPath() +
                            '/config/config.yaml').getValue()
     self.log_info_path = FileUtil.getProjectObsPath(
     ) + self.config['log_path_info']
     self.log_error_path = FileUtil.getProjectObsPath(
     ) + self.config['log_path_error']
    def setUp(self):
        self.logger = Log()
        self.logger.info(
            '######################## TestProfitReportSelect START ########################'
        )
        carType = str(random.randint(1, 2))
        self.applyDate = time.strftime('%Y-%m-%d')
        photoAirWay = FileUtil.getProjectObsPath() + '/image/photoAirWay.jpg'
        receipt_0 = FileUtil.getProjectObsPath(
        ) + os.path.sep + 'image' + os.path.sep + 'logo.png'

        wayBillId = CreateWayBill().create_waybill(
            carType, self.applyDate, photoAirWay, '北京', '北京', '', '天津', '天津',
            '', '1000', '10', '0.01', '0.02', '0.03', '0.04', '1', '备注我要录单测试',
            'TMS', '零担', '10', '100', '1000', '10000', '100000', '20', '30',
            '40', '50', 'DD001', 'YK001', 'LSVAM4187C2184847', '6222810001000',
            '中国银行', '张三')[0]
        WayBillDepartureConfirm().waybill_departure_confirm(wayBillId)
        waybill_transport_detail = WayBillDetailGet().waybill_detail_get(
            wayBillId).json()['content']
        self.wayBillNo = waybill_transport_detail['transportCash'][
            'tmsBillCode']
        WayBillArrivalConfirm().waybill_arrival_confirm(
            wayBillId, waybill_transport_detail['transportCash']['destAmt'],
            waybill_transport_detail['transportCash']['destAmtMemo'])
        WayBillReceiptUpload().waybill_receipt_upload(wayBillId, 'Y', 'Y', 'N',
                                                      '回单上传测试', 'C', receipt_0)
        waybill_arrived_detail = WayBillDetailGet().waybill_detail_get(
            wayBillId).json()['content']
        WayBillReceiptConfirm().waybill_receipt_confirm(
            wayBillId, waybill_arrived_detail['transportCash']['retAmt'],
            '金额变动', '有异常', receipt_0)
 def outCar_choice(name='张三三', carLoad='10'):
     outCar_list = DriverSelect().driver_select().json()['content']
     if outCar_list == []:
         mobile = DataUtil().createmoble()
         idNo = DataUtil().genneratorIdNo()
         carNo = DataUtil().genneratorCarNo()
         carLength = DataUtil().genneratorCarLength()
         carModel = DataUtil().genneratorCarTypeInfo()
         photoIdFront = FileUtil.getProjectObsPath(
         ) + os.path.sep + 'image' + os.path.sep + 'frontIdCard.jpg'
         photoIdReserve = FileUtil.getProjectObsPath(
         ) + os.path.sep + 'image' + os.path.sep + 'backIdCard.jpg'
         photoDriverCard = FileUtil.getProjectObsPath(
         ) + os.path.sep + 'image' + os.path.sep + 'photoDriverCard.jpg'
         photoTransPort = FileUtil.getProjectObsPath(
         ) + os.path.sep + 'image' + os.path.sep + 'photoTransPort.jpg'
         loginId, Id = CreateDriver().create_driver(
             name, mobile, idNo, photoIdFront, photoIdReserve,
             photoDriverCard, photoTransPort, carNo, carLength, carModel,
             carLoad)
         outCar = {
             'loginId': loginId,
             'name': name,
             'idNo': idNo,
             'mobile': mobile,
             'carNo': carNo,
             'carLength': carLength,
             'carModel': carModel
         }
     else:
         outCar = random.sample(outCar_list, 1)[0]
         CreateWayBill.my_print('选择的外请车车牌号是: {0}'.format(outCar['carNo']))
     return outCar
Beispiel #5
0
 def setUp(self):
     self.logger = Log()
     self.logger.info(
         '########################### TestUpdateWayBill START ###########################'
     )
     self.carType = str(random.randint(1, 2))
     self.applyDate = time.strftime('%Y-%m-%d')
     self.photoAirWay = FileUtil.getProjectObsPath(
     ) + '/image/photoAirWay.jpg'
     self.startTime = time.strftime('%Y-%M-%d')
     self.endTime = time.strftime('%Y-%m-%d',
                                  time.localtime(time.time() + 86400))
     self.photoIdFront = FileUtil.getProjectObsPath(
     ) + os.path.sep + 'image' + os.path.sep + 'frontIdCard.jpg'
     self.photoIdReserve = FileUtil.getProjectObsPath(
     ) + os.path.sep + 'image' + os.path.sep + 'backIdCard.jpg'
     self.photoDriverCard = FileUtil.getProjectObsPath(
     ) + os.path.sep + 'image' + os.path.sep + 'photoDriverCard.jpg'
     self.photoTransPort = FileUtil.getProjectObsPath(
     ) + os.path.sep + 'image' + os.path.sep + 'photoTransPort.jpg'
     self.wayBillId, self.mobile, self.name, self.idNo,self.carNo,self.carLength, self.carModel, self.projectName, \
     self.projectId, self.supplierName, self.supplierId= CreateWayBill().create_waybill(
         self.carType, self.applyDate, self.photoAirWay, '北京', '北京', '', '天津', '天津', '', '1000', '10', '0.01',
         '0.02', '0.03', '0.04', '1', '备注我要录单测试', 'TMS',
         '零担', '10', '100', '1000', '10000', '100000', '20', '30','40', '50', 'DD001', 'YK001', 'LSVAM4187C2184847',
         '6222810001000', '中国银行','张三')
Beispiel #6
0
 def setUp(self):
     self.logger = Log()
     self.logger.info('######################## TestDriverUnCertificateCreate START ########################')
     self.mobile = DataUtil().createmoble()
     self.idNo = DataUtil().genneratorIdNo()
     self.carNo = DataUtil().genneratorCarNo()
     self.carLength = DataUtil().genneratorCarLength()
     self.carModel = DataUtil().genneratorCarTypeInfo()
     self.photoIdFront = FileUtil.getProjectObsPath() + os.path.sep + 'image' + os.path.sep + 'frontIdCard.jpg'
     self.photoIdReserve = FileUtil.getProjectObsPath() + os.path.sep + 'image' + os.path.sep + 'backIdCard.jpg'
     self.photoDriverCard = FileUtil.getProjectObsPath() + os.path.sep + 'image' + os.path.sep + 'photoDriverCard.jpg'
     self.photoTransPort = FileUtil.getProjectObsPath() + os.path.sep + 'image' + os.path.sep + 'photoTransPort.jpg'
    def setUp(self):
        self.logger = Log()
        self.logger.info('####################### TestReceiptConfirmWayBill START #######################')
        carType = str(random.randint(1, 2))
        applyDate = time.strftime('%Y-%m-%d')
        photoAirWay = FileUtil.getProjectObsPath() + '/image/photoAirWay.jpg'
        self.wayBillId = CreateWayBill().create_waybill(carType, applyDate, photoAirWay, '北京', '北京', '', '天津',
                                                        '天津', '', '1000', '10', '0.01', '0.02', '0.03', '0.04', '1',
                                                        '备注我要录单测试', 'TMS', '零担', '10', '100', '1000',
                                                        '10000', '100000', '20', '30', '40', '50', 'DD001', 'YK001',
                                                        'LSVAM4187C2184847', '6222810001000', '中国银行','张三')[0]

        self.receipt_0 = FileUtil.getProjectObsPath() + os.path.sep + 'image' + os.path.sep + 'logo.png'
 def setUp(self):
     self.logger = Log()
     self.logger.info('########################### TestDriverRelevanceUpdate START ###########################')
     self.mobile = DataUtil().createmoble()
     self.idNo = DataUtil().genneratorIdNo()
     self.carNo = DataUtil().genneratorCarNo()
     self.carLength = DataUtil().genneratorCarLength()
     self.carModel = DataUtil().genneratorCarTypeInfo()
     self.photoIdFront = FileUtil.getProjectObsPath() + os.path.sep + 'image' + os.path.sep + 'frontIdCard.jpg'
     self.photoIdReserve = FileUtil.getProjectObsPath() + os.path.sep + 'image' + os.path.sep + 'backIdCard.jpg'
     self.photoDriverCard = FileUtil.getProjectObsPath() + os.path.sep + 'image' + os.path.sep + 'photoDriverCard.jpg'
     self.photoTransPort = FileUtil.getProjectObsPath() + os.path.sep + 'image' + os.path.sep + 'photoTransPort.jpg'
     self.loginId = CreateDriver().create_driver('孙师傅', self.mobile, self.idNo, self.photoIdFront,
                                                 self.photoIdReserve,self.photoDriverCard, self.photoTransPort,
                                                 self.carNo, self.carLength, self.carModel, '10')[0]
 def driver_confirm_api(self,
                        billId='',
                        totalAmt='',
                        preAmt='',
                        oilAmt='',
                        destAmt='',
                        lastAmt='',
                        receiverId=''):
     """ 司机确认发车 """
     self.logger.info('#####  {0}  #####'.format(__name__))
     try:
         receipt_0 = FileUtil.getProjectObsPath(
         ) + os.path.sep + 'image' + os.path.sep + 'logo.png'
         receipt_name_0 = os.path.basename(receipt_0)
         with open(receipt_0, 'rb') as receipt_0:
             photoAirWay = (receipt_name_0, receipt_0.read())
         payload = {
             'id': (None, str(billId)),
             'partnerNo': (None, str(self.partnerNo)),
             'totalAmt': (None, str(totalAmt)),
             'preAmt': (None, str(preAmt)),
             'oilAmt': (None, str(oilAmt)),
             'destAmt': (None, str(destAmt)),
             'lastAmt': (None, str(lastAmt)),
             'receiverId': (None, str(receiverId)),
             'photoAirWay': photoAirWay
         }
         response = HttpClient().post_multipart(
             url=self.__driverConfirmApiUrl,
             files=payload,
             header_dict=self.__head_dict)
         return response
     except Exception as e:
         self.logger.error('司机确认发车发生异常:{0}'.format(e))
         return None
Beispiel #10
0
 def upload_receipt(self):
     # 对运单进行回单上传操作
     waybillId = self.arrive_confirm()
     waybillId = str(waybillId)
     abnormal = 'Y'  # 是否有异常 Y:是、N:是
     damaged = 'Y'  # 是否有破损 Y:是、N:是
     losted = 'Y'  # 是否丢失 Y:是、N:是
     memo = '自动化测试--回单上传'  # 备注
     receipt_img = FileUtil.getProjectObsPath(
     ) + os.sep + 'config' + os.sep + 'image' + os.sep + 'receipt0.png'
     # receipt0 = PhotoFileFormat().format_photo(receipt_img)
     files = {
         "id": (None, waybillId),  # 运单id
         "abnormal": (None, abnormal),  # 是否有异常 Y:是、N:是
         "damaged": (None, damaged),  # 是否有破损 Y:是、N:是
         "losted": (None, losted),  # 是否丢失 Y:是、N:是
         "memo": (None, memo),  # 备注
         "type": (None, "S"),  # S:货主、C:司机
         "receipt_0": ("receipt.png", open(receipt_img,
                                           'rb'), 'image/png')  # 回单图片文件
     }
     self.head_dict.pop('content-type')
     response = HttpClient().post_multipart(url=self.url_upload_receipt,
                                            header_dict=self.head_dict,
                                            files=files)
     self.logger.info('回单上传请求: {0}'.format(response.request.headers))
     self.logger.info('回单上传返回结果: {0}'.format(response.json()))
Beispiel #11
0
 def __init__(self):
     config = ReadYaml(FileUtil.getProjectObsPath() +
                       '/config/config.yaml').getValue()
     self.__driverRelevanceUpdateApiUrl = 'https://{0}:{1}{2}/api/tms/driver/updateTmsAppDriver'.format(
         config['tms_api_host'], config['tms_api_port'],
         config['tms_api_path'])
     self.__head_dict = {'token': config['tms_api_token']}
Beispiel #12
0
 def setUp(self):
     self.logger = Log()
     self.logger.info('##################### TestWayBillTempGet START #####################')
     Settings().system_params_update()
     file = FileUtil.getProjectObsPath() + os.path.sep + 'file' + os.path.sep + 'waybill_temp_import.xlsx'
     self.logger.info('批量导入运单的文件是:{0}'.format(file))
     self.temp_waybillId = CreateWayBill().create_temp_waybill(file, '德邦物流', '德邦集团', 'DB20171101100')
 def singlePay_WALLET_TO_DRIVER(self, tmsBillCode=''):
     '''尾款支付页面 选择除余额支付方式支付'''
     try:
         # 打开尾款支付页面
         HeplerWaybill().open_menu(
             self.driver,
             'xpath->//*[@id="menu"]/div/nav/ul/li[5]/div/ul/li[4]/a/span')
         # 输入运单号查询运单
         HeplerWaybill().fuzzy_query(self.driver, 'id->globalCondition',
                                     'id->globalConditionButton',
                                     tmsBillCode)
         # 选择运单
         self.driver.click('id->TMS-selectCheckbox-')
         # 点击支付按钮,打开支付弹窗
         self.driver.click('id->TMS-toWayBillPay-')
         self.driver.element_is_not_visible('class->loading-bar-background')
         # 选择余额支付
         self.driver.click(
             'xpath->//*[@id="wayBillPay"]/div/div/div[2]/div/form/div[2]/div[2]/table/tbody/tr[2]/td[4]/span/label'
         )
         self.driver.element_is_not_visible('class->loading-bar-background')
         # 确认支付
         self.driver.click('id->TMS-toPursePay-')
         self.driver.element_is_not_visible('class->loading-bar-background')
         # 输入支付密码并确认支付
         self.config = ReadYaml(FileUtil.getProjectObsPath() +
                                '/config/config.yaml').getValue()
         self.driver.type('id->sendcreate', self.config['payPassword'])
         self.driver.click('id->TMS-lianLianPay-')
         self.driver.element_is_not_visible('class->loading-bar-background')
     except Exception as e:
         self.logger.error('尾款支付页面 选择除余额支付方式支付:{0}'.format(e))
         return None
Beispiel #14
0
 def __init__(self):
     self.config = ReadYaml(FileUtil.getProjectObsPath() +
                            '/config/config.yaml').getValue()
     self.__getTokenApiUrl = 'https://hfuapi.keking.cn:8015/app/shipper/tokenLogin'
     self.__head_dict = {
         'YD_VERSION': '3.7',
         'YD_CLIENT': 'shipper',
     }
Beispiel #15
0
 def case_suite(self):
     test_suite = unittest.makeSuite(TestLogin)
     test_suite.addTest(UnitTestUtil().discover_pattern(
         FileUtil.getProjectObsPath() + '/BVT/wuliuyunAPP/test_case',
         'test*.py'))
     test_suite.addTest(unittest.makeSuite(TestLogout))
     # print(test_suite)
     return test_suite
Beispiel #16
0
 def getScreenShot(self, name=''):
     try:
         tamp = time.strftime('%m%d-%H-%M-%S')
         filename = FileUtil.getProjectObsPath() + '/log/screenshot/{0}_{1}.png'.format(name, tamp)
         self.auto_driver.get_screenshot_as_file(filename)
     except Exception as error:
         self.log.error(error)
     return
Beispiel #17
0
 def __init__(self):
     config = ReadYaml(FileUtil.getProjectObsPath() + '/config/config.yaml').getValue()
     self.__costSettingsUpdateApiUrl = 'https://{0}:{1}{2}/api/tms/finance/saveOrUpdateIncomeCostConfig'.format(
         config['tms_api_host'],config['tms_api_port'],config['tms_api_path'])
     self.__head_dict = {
         'token': config['tms_api_token'],
         'YD_OAUTH': config['tms_api_YD_OAUTH'],
     }
 def __init__(self):
     config = ReadYaml(FileUtil.getProjectObsPath() + '/config/config.yaml').getValue()
     self.__walletBillsExportApiUrl = 'https://{0}:{1}{2}/api/tms/wallet/exportPaymentExcel'.format(
         config['tms_api_host'],config['tms_api_port'],config['tms_api_path'])
     self.__head_dict = {
         'token': config['tms_api_token'],
         'YD_OAUTH': config['tms_api_YD_OAUTH'],
     }
 def __init__(self):
     config = ReadYaml(FileUtil.getProjectObsPath() + '/config/config.yaml').getValue()
     self.__userDeleteApiUrl = 'https://{0}:{1}{2}/api/tms/system/getTmsUserById'.format(
         config['tms_api_host'],config['tms_api_port'],config['tms_api_path'])
     self.__head_dict = {
         'token': config['tms_api_token'],
         'YD_OAUTH': config['tms_api_YD_OAUTH'],
     }
 def __init__(self):
     config = ReadYaml( FileUtil.getProjectObsPath() + '/config/config.yaml').getValue()
     self.__wayBillTempGetApiUrl = 'https://{0}:{1}{2}/api/tms/tmpWayBill/getTmpWayBillById'.format(
         config['tms_api_host'], config['tms_api_port'], config['tms_api_path'])
     self.__head_dict = {
         'token': config['tms_api_token'],
         'YD_OAUTH': config['tms_api_YD_OAUTH']
     }
Beispiel #21
0
 def __init__(self):
     config = ReadYaml(FileUtil.getProjectObsPath() + '/config/config.yaml').getValue()
     self.__profitReportExportApiUrl = "https://{0}:{1}{2}/api/tms/finance/exportProfitReportList".format(
         config['tms_api_host'],config['tms_api_port'],config['tms_api_path'])
     self.__head_dict = {
         'token': config['tms_api_token'],
         'YD_OAUTH': config['tms_api_YD_OAUTH'],
     }
 def __init__(self):
     config = ReadYaml(FileUtil.getProjectObsPath() + '/config/config.yaml').getValue()
     self.__customerUpdateApiUrl = "https://{0}:{1}{2}/api/tms/customer/updateTmsCustomer".format(
         config['tms_api_host'],config['tms_api_port'],config['tms_api_path'])
     self.__head_dict = {
         'token': config['tms_api_token'],
         'YD_OAUTH': config['tms_api_YD_OAUTH'],
     }
Beispiel #23
0
 def __init__(self):
     config = ReadYaml(FileUtil.getProjectObsPath() + '/config/config.yaml').getValue()
     self.__driverRelevanceCreateApiUrl = "https://{0}:{1}{2}/api/tms/driver/createRelevance".format(
         config['tms_api_host'],config['tms_api_port'],config['tms_api_path'])
     self.__head_dict = {
         'token': config['tms_api_token'],
         'YD_OAUTH': config['tms_api_YD_OAUTH'],
     }
 def setUp(self):
     self.logger = Log()
     self.logger.info(
         '########################### TestCreateWayBill START ###########################'
     )
     self.applyDate = time.strftime('%Y-%m-%d')
     self.photoAirWay = FileUtil.getProjectObsPath(
     ) + '/image/photoAirWay.jpg'
 def __init__(self):
     config = ReadYaml(FileUtil.getProjectObsPath() + '/config/config.yaml').getValue()
     self.__loanAmtGetApiUrl = 'https://{0}:{1}{2}/api/tms/pay/LoanAmt'.format(
         config['tms_api_host'],config['tms_api_port'],config['tms_api_path'])
     self.__head_dict = {
         'token': config['tms_api_token'],
         'YD_OAUTH': config['tms_api_YD_OAUTH'],
     }
 def __init__(self):
     config = ReadYaml( FileUtil.getProjectObsPath() + '/config/config.yaml').getValue()
     self.__wayBillDeletedSelectApiUrl = "https://{0}:{1}{2}/api/tms/wayBill/getDelWayBillList".format(
         config['tms_api_host'], config['tms_api_port'], config['tms_api_path'])
     self.__head_dict = {
         'token': config['tms_api_token'],
         'YD_OAUTH': config['tms_api_YD_OAUTH']
     }
 def __init__(self):
     config = ReadYaml(FileUtil.getProjectObsPath() + '/config/config.yaml').getValue()
     self.__myDriverImportApiUrl = "https://{0}:{1}{2}/api/tms/driver/importExcel".format(
         config['tms_api_host'], config['tms_api_port'], config['tms_api_path'])
     self.partnerNo = config['partnerNo']
     self.__head_dict = {
         'token': config['tms_api_token'],
         'YD_OAUTH': config['tms_api_YD_OAUTH'],
     }
 def __init__(self):
     config = ReadYaml(FileUtil.getProjectObsPath() +
                       '/config/config.yaml').getValue()
     self.__wayBillTrackingTrajectoryCreateApiUrl = 'https://{0}:{1}{2}/api/tms/wayBill/listExportMessage'.\
         format(config['tms_api_host'], config['tms_api_port'], config['tms_api_path'])
     self.__head_dict = {
         'token': config['tms_api_token'],
         'YD_OAUTH': config['tms_api_YD_OAUTH']
     }
Beispiel #29
0
 def test_waybill_temp_template_download_success(self):
     '''下载批量开单excel模板'''
     response = WayBillTempTemplateDownload().waybill_temp_template_download()
     filename = FileUtil.getProjectObsPath() + '/file/' + 'waybill_template_download.xlsx.'
     with open(filename, 'wb') as writeIn:
         writeIn.write(response.content)
     self.logger.info('下载批量开单excel模板返回状态码:{0}'.format(response))
     self.logger.info('下载批量开单excel模板文件是:{0}'.format(filename))
     self.assertEqual(response.status_code, 200)
Beispiel #30
0
 def __init__(self):
     self.config = ReadYaml(FileUtil.getProjectObsPath() +
                            '/config/config.yaml').getValue()
     self.db = DBUtil(host=self.config['Mysql_host'],
                      port=self.config['Mysql_port'],
                      user=self.config['Mysql_user'],
                      passwd=self.config['Mysql_passwd'],
                      dbname=self.config['Mysql_dbname'],
                      charset=self.config['Mysql_charset'])