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
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
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', '中国银行','张三')
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
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()))
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']}
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
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', }
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
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
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'] }
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'], }
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'] }
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)
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'])