def read_pickle(path): pickle_data = {} if operateFile.OperateFile(path).check_file(): with open(path, 'rb') as f: try: pickle_data = pickle.load(f) except EOFError: pass return pickle_data
def get_report_collect(star_time, end_time, device): data = {"init": [], "info": []} _read_collect_json = eval( operateFile.OperateFile(Constants.REPORT_COLLECT_PATH, "r").read_txt_row()) for key in _read_collect_json: data[key] = _read_collect_json[key] apk_msg = apkBase.ApkInfo(device["appPath"]) data["app_name"] = apk_msg.get_apk_name() data["app_size"] = apk_msg.get_apk_size() data["app_version"] = apk_msg.get_apk_version() data["test_sum_date"] = str((end_time - star_time).seconds) + "秒" data["test_date"] = star_time.strftime("%Y-%m-%d %H:%M %p") data["init"] = eval( operateFile.OperateFile(Constants.REPORT_INIT, "r").read_txt_row())["init"] data["info"] = eval( operateFile.OperateFile(Constants.REPORT_INFO_PATH, "r").read_txt_row())["info"] return data
def read_email(Memail): if oa.OperateFile(Memail.file, "r").check_file() == False: print("文件不存在") return config = configparser.ConfigParser() config.read(Memail.file, encoding='utf-8') Memail.report = "report.xlsx" Memail.to_addr = eval(config['DEFAULT']['to_addr']) Memail.mail_host = config['DEFAULT']['mail_host'] Memail.mail_user = config['DEFAULT']['mail_user'] Memail.mail_pass = config['DEFAULT']['mail_pass'] Memail.port = config['DEFAULT']['port'] Memail.headerMsg = config['DEFAULT']['headerMsg'] Memail.attach = config['DEFAULT']['attach'] return Memail
def write_report_collect(self, json, f=""): _read_json_temp = self.read_detail_report(f) op = operateFile.OperateFile(f, "w") _result = {} if len(_read_json_temp) > 0: _read_json = eval(_read_json_temp) for i in _read_json: if i == "test_success" or i == "test_failed" or i == "test_sum": # 统计总的case的运行次数 _result[i] = int(_read_json[i]) + int(json[i]) else: _result[i] = _read_json[i] if len(_result) > 0: op.write_txt(str(_result)) else: op.write_txt(str(json))
def write_detail(self, json, f="", key="info"): ''' :param json: 存储的json :param f: 存储的文件文字,一般是info,和init的位置 :param key: info和init两个值,要和f的路径匹配;REPORT_INFO_PATH对应info,REPORT_INIT对应init 这里的key就是init,当f的值为REPORT_INFO_PATH,这里 :return: ''' _read_json_temp = self.read_detail_report(f) _result = {} if len(_read_json_temp) > 0: _read_json = eval(_read_json_temp) _read_json[key].append(json) _result = _read_json else: _result[key] = [] _result[key].append(json) op = operateFile.OperateFile(f, "w") op.write_txt(str(_result)) print(_result)
def write_detail(self, json, f="", key="info"): ''' :param json: save json :param f: info,and init position :param key: info and init avlue,REPORT_INFO_PATH->info,REPORT_INIT->init key is init,when f value is REPORT_INFO_PATH,here :return: ''' _read_json_temp = self.read_detail_report(f) _result = {} if len(_read_json_temp) > 0: _read_json = eval(_read_json_temp) _read_json[key].append(json) _result = _read_json else: _result[key] = [] _result[key].append(json) op = operateFile.OperateFile(f, "w") op.write_txt(str(_result)) print(_result)
def read_report(f=""): op = operateFile.OperateFile(f, "r") return op.read_txt_row()
def read_detail_report(self, f=""): op = operateFile.OperateFile(f, "r") return op.read_txt_row()
b_OperateReport.close() # b_email.send_mail(get_email()) def open_web_server(): web_server = HTTPServer((common.HOST, common.PORT), myserver.myHandler) web_server.serve_forever() if __name__ == '__main__': ga = get_devices() if adbCommon.attached_devices(): p = Process(target=open_web_server, args=()) p.start() appium_server = server.AppiumServer(ga) appium_server.start_server() while not appium_server.is_runnnig(): time.sleep(2) runnerPool() appium_server.stop_server() subprocess.Popen("taskkill /F /T /PID " + str(p.pid), shell=True) # web_server.server_close() #关闭webserver operateFile.OperateFile(common.REPORT_COLLECT_PATH).remove_file() operateFile.OperateFile(common.REPORT_INIT).remove_file() operateFile.OperateFile(common.REPORT_INFO_PATH).remove_file() operateFile.OperateFile(common.CRASH_LOG_PATH).remove_file() else: print(u"设备不存在")
result = False elif not operateYaml.get_yaml(case["casePath"]): result = False return result if __name__ == '__main__': log.info( "===============================Start===================================" ) devices_conf_yaml = PATH("../devices.yaml") if len(sys.argv) > 0: devices_conf_yaml = PATH(sys.argv[0]) devices_conf = operateYaml.get_yaml(PATH(devices_conf_yaml)) if adbCommon.attached_devices(): appium_server = server.AppiumServer(devices_conf) appium_server.start_server() while not appium_server.is_running(): time.sleep(2) runner_pool(devices_conf) appium_server.stop_server() operateFile.OperateFile(Constants.REPORT_COLLECT_PATH).remove_file() operateFile.OperateFile(Constants.REPORT_INIT).remove_file() operateFile.OperateFile(Constants.REPORT_INFO_PATH).remove_file() operateFile.OperateFile(Constants.CRASH_LOG_PATH).remove_file() else: log.error(u"设备不存在") log.info( "=======================================End=====================================" )