Example #1
0
def get_screenshot_img(file_id):
    """
    获取截屏图片
    :param file_id:
    :return: 1.获取成功、2.找不到该文件、3.mongo连接不上
    """
    if is_null(file_id):
        msg = PARAMS_NOT_NONE
        img_base64 = ""
    else:
        mgf = MongoGridFS()
        img_base64 = mgf.get_base64_by_id(file_id)
        if is_null(img_base64):
            msg = MONGO_CONNECT_FAIL
        elif img_base64 == "no such file":
            msg = NO_SUCH_FILE
        else:
            msg = REQUEST_SUCCESS
            # response = make_response(img_base64)
            # response.headers.set('Content-Type', 'image/png')
            # return response
    re_dict = interface_template(msg, {
        "file_id": file_id,
        "img_base64": img_base64
    })
    return json.dumps(re_dict, ensure_ascii=False)
Example #2
0
def run_case(pro_name):
    """
    同时执行不同的用例 (开启线程执行,直接返回接口结果)
    [ 备 注 ]
        需要判断Android设备连接情况,若都未连接,表示不开启线程进行测试,并给出报错结果
    :param pro_name:
    :return:
    """
    if not pro_exist(pro_name):
        msg = PRO_NOT_EXIST
    else:
        # 获取已连接的设备列表
        connected_android_device_list = get_connected_android_devices_info(pro_name)
        if is_null(connected_android_device_list):
            msg = ANDROID_DEVICES_NOT_CONNECT
        else:
            run_flag = is_exist_start_case(pro_name)
            if run_flag == "mongo error":
                msg = MONGO_CONNECT_FAIL
            else:
                if run_flag:
                    msg = EXIST_RUNNING_CASE
                elif is_exist_online_case(pro_name):
                    sync_run_case(pro_name, connected_android_device_list)
                    msg = CASE_RUNING
                else:
                    msg = NO_ONLINE_CASE
    result_dict = {"pro_name": pro_name}
    re_dict = interface_template(msg, result_dict)
    return json.dumps(re_dict, ensure_ascii=False)
Example #3
0
def set_case_status_all(pro_name, case_status):
    """
    设置整个项目的'测试用例'的'状态'(上下线)
    :param pro_name:
    :param case_status:
    :return:
    """
    test_method_name_list = []
    if is_null(pro_name) or is_null(case_status):
        msg = PARAMS_NOT_NONE
    else:
        if case_status in [True, False, "false", "FALSE", "TRUE", "true"]:
            case_status = case_status in [True, "TRUE", "true"
                                          ] and True or False
            res = update_case_status_all(pro_name, case_status)
            if res == "mongo error":
                msg = MONGO_CONNECT_FAIL
            else:
                msg = UPDATE_SUCCESS
                test_method_name_list = res
        else:
            msg = REQUEST_ARGS_WRONG
    re_dict = interface_template(
        msg, {
            "pro_name": pro_name,
            "case_status": case_status,
            "test_method_name_list": test_method_name_list
        })
    return json.dumps(re_dict, ensure_ascii=False)
Example #4
0
def test_get_request():
    params = request.args
    test_str = params.get("test_str")  # str
    test_int = params.get("test_int")  # str
    test_bool = params.get("test_bool")  # str
    result_dict = {"test_str": test_str, "test_int": test_int, "test_bool": test_bool}
    msg = REQUEST_SUCCESS
    re_dict = interface_template(msg, result_dict)
    return json.dumps(re_dict, ensure_ascii=False)
Example #5
0
def test_post_request():
    params = request.json
    test_str = params.get("test_str")  # str
    test_int = params.get("test_int")   # int
    test_bool = params.get("test_bool")  # str
    response_list = ["list_str", 5, True]
    response_dict = {"name": "Messi", "age": 32, "sex": True}
    response_list_dict = [{"name": "Henry", "age": 43}, {"name": "Ronaldo", "age": 40}]
    result_dict = {"test_str": test_str, "test_int": test_int, "test_bool": test_bool, "response_list": response_list,
                   "response_dict": response_dict, "response_list_dict": response_list_dict}
    msg = SYNC_SUCCESS
    re_dict = interface_template(msg, result_dict)
    return json.dumps(re_dict, ensure_ascii=False)
Example #6
0
def stop_run_status(pro_name):
    """
    强行修改用例运行状态 -> 停止
    :param pro_name:
    :return:
    """
    if is_null(pro_name):
        msg = PARAMS_NOT_NONE
    else:
        insert_result = stop_case_run_status(pro_name)
        if insert_result == "mongo error":
            msg = MONGO_CONNECT_FAIL
        else:
            msg = STOP_SUCCESS
    re_dict = interface_template(msg, {"pro_name": pro_name})
    return json.dumps(re_dict, ensure_ascii=False)
Example #7
0
def refresh_case_run_status(pro_name):
    """
    刷新用例运行状态
    :param pro_name:
    :return:
    """
    if is_null(pro_name):
        msg = PARAMS_NOT_NONE
    else:
        case_run_status_list = get_case_run_status(pro_name)
        if case_run_status_list == "mongo error":
            msg = MONGO_CONNECT_FAIL
        else:
            msg = REQUEST_SUCCESS
    re_dict = interface_template(msg, {"pro_name": pro_name, "case_run_status_list": case_run_status_list})
    return json.dumps(re_dict, ensure_ascii=False)
Example #8
0
def refresh_run_progress(pro_name):
    """
    刷新执行用例进度
    :param pro_name:
    :return:
    """
    if is_null(pro_name):
        msg = PARAMS_NOT_NONE
    else:
        progress_info = get_progress_info(pro_name)
        if progress_info == "mongo error":
            msg = MONGO_CONNECT_FAIL
        else:
            msg = REQUEST_SUCCESS
    re_dict = interface_template(msg, {"pro_name": pro_name, "progress_info": progress_info})
    return json.dumps(re_dict, ensure_ascii=False)
Example #9
0
def set_case_status(pro_name, test_method_name):
    """
    设置某个'测试用例'的'状态'(上下线)
    :param pro_name:
    :param test_method_name:
    :return:
    """
    new_case_status = None
    if is_null(pro_name) or is_null(test_method_name):
        msg = PARAMS_NOT_NONE
    else:
        new_case_status = update_case_status(pro_name, test_method_name)
        msg = new_case_status == "mongo error" and MONGO_CONNECT_FAIL or UPDATE_SUCCESS
    re_dict = interface_template(msg, {"pro_name": pro_name, "test_method_name": test_method_name,
                                       "new_case_status": new_case_status})
    return json.dumps(re_dict, ensure_ascii=False)
Example #10
0
def sync_case_list(pro_name):
    """
    将某项目的所有测试用例同步入mongo库中,默认状态为'下线'
    :param pro_name:
    :return:
    """
    if is_null(pro_name):
        msg = PARAMS_NOT_NONE
    else:
        insert_result = case_import_mongo(pro_name)
        if insert_result == "mongo error":
            msg = MONGO_CONNECT_FAIL
        elif insert_result == "no such pro":
            msg = NO_SUCH_PRO
        else:
            msg = SYNC_SUCCESS
    re_dict = interface_template(msg, {"pro_name": pro_name})
    return json.dumps(re_dict, ensure_ascii=False)
Example #11
0
def run_case(pro_name):
    """
    同时执行不同的用例 (开启线程执行,直接返回接口结果)
    :param pro_name:
    :return:
    """
    if not pro_exist(pro_name):
        msg = PRO_NOT_EXIST
    else:
        run_flag = is_exist_start_case(pro_name)
        if run_flag == "mongo error":
            msg = MONGO_CONNECT_FAIL
        else:
            if run_flag:
                msg = EXIST_RUNNING_CASE
            elif is_exist_online_case(pro_name):
                sync_run_case(pro_name)
                msg = CASE_RUNING
            else:
                msg = NO_ONLINE_CASE
    result_dict = {"pro_name": pro_name}
    re_dict = interface_template(msg, result_dict)
    return json.dumps(re_dict, ensure_ascii=False)
Example #12
0
def test_get_request_no_params():
    result_dict = {"pro_name": "pro_demo_1", "browser_name": "Chrome"}
    msg = CASE_RUNING
    re_dict = interface_template(msg, result_dict)
    return json.dumps(re_dict, ensure_ascii=False)