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
Exemple #2
0
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
Exemple #3
0
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
Exemple #4
0
 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))
Exemple #5
0
    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)
Exemple #6
0
    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()
Exemple #8
0
 def read_detail_report(self, f=""):
     op = operateFile.OperateFile(f, "r")
     return op.read_txt_row()
Exemple #9
0
    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"设备不存在")
Exemple #10
0
                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====================================="
    )