Exemplo n.º 1
0
def test_login():
    # 3、定义测试数据
    conf_y = ConfigYaml()
    url_path = conf_y.get_conf_url()
    url = url_path + "/authorizations/"
    #     url = "http://211.103.136.242:8064/authorizations/"
    data = {"username": "******", "password": "******"}
    # 4、发送POST请求
    #     r = requests.post(url,json=data)
    #     r = requests_post(url,json=data)
    request = Request()
    r = request.post(url, json=data)
    # 5、输出结果
    #     print(r.json())
    print(r)
    # 返回状态码
    code = r['code']
    AssertUtil().assert_code(code, 200)
    body = r['body']
    # print(body)
    AssertUtil().assert_in_body(body, '"username": "******"')

    # 1、初始化数据库对象
    conn = init_db('db_1')
    # 2、查询结果
    res_db = conn.fetchone("select id from tb_users where username='******'")
    print("数据库查询结果:", res_db)
    # 3、验证
    user_id = body['user_id']
    assert user_id == res_db['id']
Exemplo n.º 2
0
    def run_pre(self, pre_case):
        """初始化数据"""
        url = ConfigYaml().get_conf_url() + pre_case[data_key.url]
        method = pre_case[data_key.method]
        params_type = pre_case[data_key.params_type]
        params = pre_case[data_key.params]
        expect_result = pre_case[data_key.expect_result]
        headers = pre_case[data_key.headers]
        cooikes = pre_case[data_key.cookies]

        # 判断header是否存在,json转义
        # if headers:
        #     header = json.loads(headers)
        # else:
        #     header = headers
        header = Base.json_parse(headers)
        # 判断cooikes是否存在,json转义
        # if cooikes:
        #     cooike = json.loads(cooikes)
        # else:
        #     cooike = cooikes
        cooikes = Base.json_parse(cooikes)
        res = self.run_api(url, method, params, headers)
        print("前置用例执行:%s" % res)
        return res
Exemplo n.º 3
0
def test_good_list():
    # url = "http://211.103.136.242:8064/categories/115/skus"  #---使用配置文件的url了
    #定义测试数据
    url_y = ConfigYaml()
    url_path = url_y.get_conf_url()
    url = url_path + "/categories/115/skus"

    data = {"page": "1", "page_size": "10", "ordering": "create_time"}
    # r = requests.get(url,json=data)
    r = requeests_get(url, json=data)

    from utils.RequestsUtil import request
    request = request()
    r = request.get(url, json=data)
    # print(r.json())
    print(r)
    code = r["code"]
    # print("-----test",code)
    AssertUtil().assert_code(code, 200)

    # body = r["body"]
    # print("-------test------",body)
    # AssertUtil().assert_in_body(body, 'count:14')

    #初始化数据对象
    conn = init_db("db_1")
    #查询结果
    res_db = conn.fetchone("select * from roles")
    print("数据库查询结果:%s" % res_db)
Exemplo n.º 4
0
    def test_run(self, case):
        # 3. 重构函数内容
        data_key = ExcelConfig.DataConfig
        # run_list第一个用例,根据key获取values
        url = ConfigYaml().get_conf_url() + case[data_key.url]
        # print(url)
        case_id = case[data_key.case_id]
        case_model = case[data_key.case_model]
        case_name = case[data_key.case_name]
        pre_exec = case[data_key.pre_exec]
        method = case[data_key.method]
        params_type = case[data_key.params_type]
        params = case[data_key.params]
        expect_result = case[data_key.expect_result]
        headers = case[data_key.headers]
        cookies = case[data_key.cookies]
        status_code = case[data_key.status_code]
        db_verify = case[data_key.db_verify]

        # 2).根据url发送接口请求
        request = Request()
        # params 获取的是字符类型  需要转义成json
        # 验证params有没有内容
        if len(str(params).strip()) is not 0:
            params = json.loads(params)
        # method: post / get
        if str(method).lower() == "get":
            # 2.增加headers
            res = request.get(url, json=params)
        elif str(method).lower() == "post":
            res = request.post(url, json=params)
        else:
            log.error("错误请求method:%s" % method)
        print(res)
Exemplo n.º 5
0
def test_yaml(login):
    # 初始化url,data
    url = ConfigYaml().get_conf_url() + login['url']
    data = login['data']
    # post请求
    request = Request()
    res = request.post(url, json=data)
Exemplo n.º 6
0
def test_login():
    #3、定义测试数据
    conf_y = ConfigYaml()
    url_path = conf_y.get_conf_url()
    url = url_path + "/authorizations/"
    #url = "http://211.103.136.242:8064/authorizations/"
    data = {"username": "******", "password": "******"}
    #4、发送POST请求
    #r = requests.post(url,json=data)
    #r = requests_post(url,json=data)
    request = Request()
    r = request.post(url, json=data)
    #5、输出结果
    #print(r.json())
    print(r)
    #验证
    #返回状态码
    code = r["code"]
    #assert code == 200
    AssertUtil().assert_code(code, 200)
    #返回结果内容
    #body = json.dumps(r["body"])
    body = r["body"]
    #assert '"user_id": 1, "username": "******"' in body
    AssertUtil().assert_in_body(body, '"user_id": 1, "username": "******"')

    #1、初始化数据库对象
    conn = init_db("db_1")
    #2、查询结果
    res_db = conn.fetchone(
        "select id,username from tb_users where username='******'")
    print("数据库查询结果", res_db)
    #3、验证
    user_id = body["user_id"]
    assert user_id == res_db["id"]
Exemplo n.º 7
0
def test_login():
    # 3. 定义测试数据
    url = ConfigYaml().get_conf_url() + "/authorizations/"
    # url = "http://211.103.136.242:8064/authorizations/"
    json_data = {"username": "******", "password": "******"}
    # 4. 发送post请求
    # r = requests.post(url, json=json_data)
    # 调用封装的post方法
    # res = requests_post(url, json=json_data)
    # 调用Requests重构的post方法
    request = Request()
    res = request.post(url, json=json_data)
    # 5. 输出结果
    # print(r.json())
    print(res)
    # 验证
    # 返回状态码
    code = res["code"]
    # assert code == 201
    AssertUtil().assert_code(code, 200)
    # 返回结果内容
    # body = json.dumps(res["body"])
    body = res["body"]
    # assert '"user_id": 1, "username": "******"' in body
    AssertUtil().assert_in_body(body, '"user_id": 1, "username": "******"')

    # 1.初始化数据库对象
    conn = init_db("db_1")
    # 2.查询结果
    res_db = conn.fetchone(
        "select id, username from tb_users where username = '******'")
    print("数据库查询结果", res_db)
    # 3. 验证结果
    user_id = body["user_id"]
    assert user_id == res_db["id"]
    def test_run(self, case):
        # 3、重构函数内容
        # data_key = ExcelConfig.DataConfig
        # run_list第1个用例,用例,key获取values
        url = ConfigYaml().get_conf_url() + case[data_key.url]
        print(url)
        case_id = case[data_key.case_id]
        case_model = case[data_key.case_model]
        case_name = case[data_key.case_name]
        pre_exec = case[data_key.pre_exec]
        method = case[data_key.method]
        params_type = case[data_key.params_type]
        params = case[data_key.params]
        expect_result = case[data_key.expect_result]
        headers = case[data_key.headers]
        cookies = case[data_key.cookies]
        code = case[data_key.code]
        db_verify = case[data_key.db_verify]

        # 1、验证前置条件
        if pre_exec:
            pass
            # 2、找到执行用例
            # 前置测试用例
            pre_case = data_init.get_case_pre(pre_exec)
            print("前置条件信息为:%s" % pre_case)
            pre_res = self.run_pre(pre_case)
            print(pre_res)
            headers, cookies = self.get_correlation(headers, cookies, pre_res)

        header = Base.json_parse(headers)
        cookie = Base.json_parse(cookies)
        res = self.run_api(url, method, params, header, cookie)
        print("测试用例执行:%s" % res)

        # allure
        # sheet名称  feature 一级标签
        allure.dynamic.feature(sheet_name)
        # 模块   story 二级标签
        allure.dynamic.story(case_model)
        # 用例ID+接口名称  title
        allure.dynamic.title(case_id + case_name)
        # 请求URL  请求类型 期望结果 实际结果描述
        desc = "<font color='red'>请求URL: </font> {}<Br/>" \
               "<font color='red'>请求类型: </font>{}<Br/>" \
               "<font color='red'>期望结果: </font>{}<Br/>" \
               "<font color='red'>实际结果: </font>{}".format(url, method, expect_result, res)
        allure.dynamic.description(desc)

        # 断言验证
        # 状态码,返回结果内容,数据库相关的结果的验证
        # 状态码
        assert_util = AssertUtil()
        assert_util.assert_code(int(res["code"]), int(code))
        # 返回结果内容
        assert_util.assert_in_body(str(res["body"]), str(expect_result))
        # 数据库结果断言
        Base.assert_db("db_1", res["body"], db_verify)
Exemplo n.º 9
0
    def test_run(self, case):
        # data_key = ExcelConfig.DataConfig
        url = case[data_key.url]
        case_id = case[data_key.case_id]
        case_model = case[data_key.case_model]
        case_name = case[data_key.case_name]
        pre_exec = case[data_key.pre_exec]
        method = case[data_key.method]
        params_type = case[data_key.params_type]
        params = case[data_key.params]
        expect_result = case[data_key.expect_result]
        actual_result = case[data_key.actual_result]
        beizhu = case[data_key.beizhu]
        headers = case[data_key.headers]
        cookies = case[data_key.cookies]
        code = case[data_key.code]
        db_verify = case[data_key.db_verify]

        if pre_exec:
            # 前置用例
            pre_case = data_init.get_case_pre(pre_exec)
            # print(f"前置条件信息为:{pre_case}")
            pre_res = self.run_pre(pre_case)
            headers, cookies = self.get_correlation(headers, cookies, pre_res)

        # 增加headers
        header = Base.json_parse(headers)
        # 增加cookies
        cookie = Base.json_parse(cookies)
        request = Request(ConfigYaml().get_config_url())
        # params转义json
        # 验证params有没有内容
        res = self.run_api(url, params, method, header, cookie)
        print(f"执行测试用例:{res}")

        # allure
        allure.dynamic.feature(sheet_name)
        allure.dynamic.story(case_model)
        allure.dynamic.title(case_id + case_name)
        desc = f"url:{url}<br> 请求方法:{method}<br> 期望结果:{expect_result}<br> 实际结果:{res}"
        allure.dynamic.description(desc)

        # 断言验证
        assert_util = AssertUtil()
        assert_util.assert_code(int(res['code']), code)
        assert_util.assert_in_body(str(res['body']), str(expect_result))

        # 数据库验证
        # sql = Base.init_db('db_1')
        # db_res = sql.fetch_one(db_verify)
        # log.debug(f"数据库查询结果:{str(db_res)}")
        # for db_k,db_v in db_res.items():
        #     res_line = res['body'][db_k]
        #     assert_util.assert_body(res_line, db_v)
        Base.assert_db(db_name='db_1',
                       res_body=res['body'],
                       db_verify=db_verify)
Exemplo n.º 10
0
def test_login(login):
    url = ConfigYaml().get_conf_url() + login['url']
    data = login['data']
    print("data %s" % data)
    # post请求
    request = Request()
    res = request.post(url, json=data)
    # 打印结果
    print(res)
Exemplo n.º 11
0
    def test_run(self, case):
        # run_list第1个用例,用例,key获取values
        url = ConfigYaml().get_conf_url() + case[data_key.url]

        case_id = case[data_key.case_id]
        case_model = case[data_key.case_model]
        case_name = case[data_key.case_name]
        pre_exec = case[data_key.pre_exec]
        method = case[data_key.method]
        params_type = case[data_key.params_type]
        params = case[data_key.params]
        expect_result = case[data_key.expect_result]
        headers = case[data_key.headers]
        cookies = case[data_key.cookies]
        code = case[data_key.code]
        db_verify = case[data_key.db_verify]

        # 2.增加Headers
        # 3.增加cookies
        # 4.发送请求
        if pre_exec:
            # 前置测试用例
            pre_case = data_init.get_case_pre(pre_exec)
            print("前置条件信息为:%s" % pre_case)
            pre_res = self.run_pre(pre_case)
            headers, cookies = self.get_correlation(headers, cookies, pre_res)
        # 1.判断headers是否存在,json转义,无需
        header = Base.json_param(headers)
        cookie = Base.json_param(cookies)
        res = self.run_api(url,
                           method,
                           params=params,
                           header=header,
                           cookie=cookie)
        print("测试用例执行:%s" % res)

        # allure
        # sheet名称  feature 一级标签
        allure.dynamic.feature(sheet_name)
        # 模块   story 二级标签
        allure.dynamic.story(case_model)
        # 用例ID+接口名称  title
        allure.dynamic.title(case_id + case_name)
        # 请求URL  请求类型 期望结果 实际结果描述
        desc = "<font color='red'>请求URL111: </font> {}<Br/>" \
               "<font color='red'>请求类型222: </font>{}<Br/>" \
               "<font color='red'>期望结果: </font>{}<Br/>" \
               "<font color='red'>实际结果: </font>{}".format(url, method, expect_result, res)
        allure.dynamic.description(desc)

        # 断言验证
        # 状态码,返回结果内容,数据库相关的结果的验证
        assert_util = AssertUtil()
        assert_util.assert_code(int(res['code']), code)
        # 返回结果内容
        assert_util.assert_in_body(str(res["body"]), str(expect_result))
        Base.assert_db("db_1", res["body"], db_verify)
Exemplo n.º 12
0
def init_arangodb(db_alias):
    #从配置文件中读取Arangodb数据库信息进行初始化
    arangodb_info = ConfigYaml().get_db_config(db_alias)
    arangoURL = arangodb_info['arangoURL']
    username = arangodb_info['username']
    password = arangodb_info['password']

    conn = ArangodbUtil(arangoURL, username, password)
    return conn
    def test_run(self, case):
        # 3. 重构函数内容
        # data_key = ExcelConfig.DataConfig
        # run_list第一个用例,根据key获取values
        url = ConfigYaml().get_conf_url() + case[data_key.url]
        print(url)
        case_id = case[data_key.case_id]
        case_model = case[data_key.case_model]
        case_name = case[data_key.case_name]
        pre_exec = case[data_key.pre_exec]
        method = case[data_key.method]
        params_type = case[data_key.params_type]
        params = case[data_key.params]
        expect_result = case[data_key.expect_result]
        headers = case[data_key.headers]
        cookies = case[data_key.cookies]
        status_code = case[data_key.status_code]
        db_verify = case[data_key.db_verify]

        # 1.判断headers是否存在,存在:json转义  不存在:无需作任何操作
        if headers:
            header = json.loads(headers)
        else:
            header = headers
        # 3.判断cookies是否存在,存在:json转义  不存在:无需作任何操作
        if cookies:
            cookie = json.loads(cookies)
        else:
            cookie = cookies

        # 1.验证前置条件是否存在
        if pre_exec:
            # 2.根据前置条件找到前置用例
            pre_case = data_init.get_case_pre(pre_exec)
            print("前置条件信息为:%s" % pre_case)
            self.run_pre(pre_case)

        # 2).根据url发送接口请求
        request = Request()
        # params 获取的是字符类型  需要转义成json
        # 验证params有没有内容
        if len(str(params).strip()) is not 0:
            params = json.loads(params)
        # method: post / get
        if str(method).lower() == "get":
            # 2.增加headers
            res = request.get(url, json=params, headers=header,
                              cookies=cookie)  # 4.增加cookies
        elif str(method).lower() == "post":
            res = request.post(url,
                               json=params,
                               headers=header,
                               cookies=cookie)
        else:
            log.error("错误请求method:%s" % method)
        print(res)
Exemplo n.º 14
0
 def __init__(self, env=None, excel_filename=None, sheet_name=None):
     # 1. 初始化信息,可单独定义或者写成配置文件
     conf = ConfigYaml()
     self.env_url = conf.get_conf_url(env)
     self.env_excel_file = conf.get_excel_file(env).get(excel_filename)
     self.env_excel_sheet = conf.get_excel_sheet(env).get(sheet_name)
     self.case_file = get_data_path() + os.sep + self.env_excel_file
     # 2. 获取需要运行的测试用例数据
     self.data_list = Data(self.case_file,
                           self.env_excel_sheet).get_run_data()
Exemplo n.º 15
0
def test_yaml(login):
    #初始化url,data
    url = ConfigYaml().get_conf_url() + login["url"]
    print("url %s" % url)
    data = login["data"]
    print("data %s" % data)
    #post请求
    request = Request()
    res = request.post(url, json=data)
    #打印结果
    print(res)
Exemplo n.º 16
0
def test_yaml(login):
    """
    执行测试用例
    """
    uri = login['url']
    print(uri)
    data = login['data']
    print(data)
    request = Request(ConfigYaml().get_config_url())
    res = request.post(uri, json=data)
    print(res)
Exemplo n.º 17
0
def goods_list():
    # 1、参数
    conf_y = ConfigYaml()
    url_path = conf_y.get_conf_url()
    url = url_path + "/categories/115/skus/"
    # url = "http://211.103.136.242:8064/categories/115/skus/"
    data = {"page": "1", "page_size": "10", "ordering": "create_time"}
    # 2、请求
    r = requests.get(url, json=data)
    # 3、结果
    print(r.json())
Exemplo n.º 18
0
def init_db(db_alias):
    db_info = ConfigYaml().get_db_conf_info(db_alias)
    host = db_info["db_host"]
    user = db_info["db_user"]
    passwrod = db_info["db_passwrod"]
    db_name = db_info["db_name"]
    charset = db_info["db_charset"]
    port = int(db_info["db_port"])
    conn = Mysql(host, user, passwrod, db_name, charset, port)
    print(conn)
    return conn
Exemplo n.º 19
0
def init_db(db_alias):
    #2、初始数据化信息,通过配置
    db_info = ConfigYaml().get_db_conf_info(db_alias)
    host = db_info["db_host"]
    user = db_info["db_user"]
    password = db_info["db_password"]
    name = db_info["db_name"]
    #3、初始化myssql对象
    conn = Mysql(host, user, password, name)
    print(conn)
    return conn
Exemplo n.º 20
0
def goods_list():
    """获取商品列表数据"""
    # 定义测试数据
    url = ConfigYaml().get_conf_url() + "/categories/115/skus/"
    # url = "http://211.103.136.242:8064/categories/115/skus/"
    json_data = {"page": "1", "page_size": "10", "ordering": "create_time"}
    # 发送请求
    # r = requests.get(url, json=json_data)
    res = requests_get(url, json=json_data)
    # 输出结果
    # print(r.json())
    print(res)
Exemplo n.º 21
0
 def get_report(self, case_name, url, method, data, expect, res):
     # 接口名称  title
     allure.dynamic.title(case_name)
     url = ConfigYaml().get_conf_url() + url
     # 请求URL  请求类型 期望结果 实际结果描述
     desc = "" \
            "<font color='red'>请求URL: </font> {}<Br/>" \
            "<font color='red'>请求类型: </font>{}<Br/>" \
            "<font color='red'>请求参数: </font>{}<Br/>" \
            "<font color='red'>期望字段: </font>{}<Br/>" \
            "<font color='red'>实际结果: </font>{}".format(url, method, data, expect, res)
     allure.dynamic.description(desc)
Exemplo n.º 22
0
def init_db(db_alias):
    # 2、初始数据化信息,通过配置
    db_info = ConfigYaml().get_db_conf_info(db_alias)
    host = db_info["db_host"]
    user = db_info["db_user"]
    password = db_info["db_password"]
    db_name = db_info["db_name"]
    charset = db_info["db_charset"]
    port = int(db_info["db_port"])
    # 3、初始化mysql对象
    conn = Mysql(host, user, password, db_name, charset, port)
    return conn
Exemplo n.º 23
0
def test_01():
    conf_y = ConfigYaml()
    url_path = conf_y.get_conf_url()
    url = url_path + "/action.ashx?action=GetSampleDeviceAndPoint"
    data = {"Inputs": "{CName:\"\",MCode:0,pageCurrent:1,PageSize:10}"}
    requests = Request()
    r = requests.post(url, data=data, headers=None)
    code = r["code"]
    AssertUtil().assert_code(code, 200)
    body = r["body"]
    AssertUtil().assert_in_body(body, "'Page': {'Current': 1, 'Total': 150}")
    print(body)
Exemplo n.º 24
0
def init_db(db_alias):
    # 通过读取配置文件,初始化数据库信息
    db_info = ConfigYaml().get_db_conf_info(db_alias)
    host = db_info["db_host"]
    user = db_info["db_user"]
    password = db_info["db_password"]
    db_name = db_info["db_name"]
    charset = db_info["db_charset"]
    port = int(db_info["db_port"])
    # 初始化Mysql对象
    conn = Mysql(host, user, password, db_name, charset, port)
    print(conn)
    return conn
Exemplo n.º 25
0
def init_mysqldb(db_alias):
    # 从配置文件读取数据库信息进行初始化
    db_info = ConfigYaml().get_db_config(db_alias)
    db_host = db_info["db_host"]
    db_user = db_info["db_user"]
    db_password = db_info["db_password"]
    db_name = db_info["db_name"]
    db_charset = db_info["db_charset"]
    db_port = int(db_info["db_port"])

    conn = MysqlUtil(db_host, db_user, db_password, db_name, db_charset,
                     db_port)
    return conn
Exemplo n.º 26
0
def init_db(db_alias):
    # 2、初始化数据信息,通过配置
    db_info = ConfigYaml().get_db_conf_info(db_alias)
    host = db_info['db_host']
    user = db_info['db_user']
    password = db_info['db_password']
    db_name = db_info['db_name']
    charset = db_info['db_charset']
    port = int(db_info['db_port'])
    # 3、初始化mysql对象
    conn = Mysql(host, user, password, db_name, charset, port)
    # print(conn)
    return conn
Exemplo n.º 27
0
    def run_pre(self, pre_case):
        url = ConfigYaml().get_conf_url() + pre_case[data_key.url]
        method = pre_case[data_key.method]
        params = pre_case[data_key.params]
        headers = pre_case[data_key.headers]
        cookies = pre_case[data_key.cookies]

        # 判断headers,cookies是否存在,json转义,无需
        header = Base.json_param(headers)
        cookie = Base.json_param(cookies)
        res = self.run_api(url, method, params, header)
        print("前置用例执行:%s" % res)
        return res
Exemplo n.º 28
0
def send_mail(report_html_path="", content="", title="测试"):
    """
    发送邮件
    :param report_html_path:
    :param content:
    :param title:
    :return:
    """
    email_info = ConfigYaml().get_email_info()
    smtp_addr = email_info["smtpserver"]
    username = email_info["username"]
    password = email_info["password"]
    recv = email_info["receiver"]
Exemplo n.º 29
0
def get_indicator_data(response_data):
    conf_indicator_list = ConfigYaml().get_titan_info()
    for indicator_name in conf_indicator_list:
        test_indicator_list = list()
        file = Conf.get_titan_indicator_path() + os.sep + indicator_name + ".txt"
        with open(file, "r", encoding="utf-8") as f:
            standard_indicator_list = eval(f.read())
            for first_data in response_data:
                disease_title = first_data["title"]
                if disease_title == indicator_name:
                    test_indicator_list = get_data(first_data)
                    print(test_indicator_list)
            Assertions().assert_in_titan_data(standard_indicator_list, test_indicator_list, indicator_name)
Exemplo n.º 30
0
def test_06():
    conf_y = ConfigYaml()
    url_path = conf_y.get_conf_url()
    url = url_path + "/action.ashx?action=GetDevStateBySysAndName"
    data = {"Inputs": ""}
    # headers = {"Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"}
    requests = Request()
    r = requests.post(url, data=data, headers=None)
    code = r["code"]
    AssertUtil().assert_code(code, 200)
    body = r["body"]
    # AssertUtil().assert_in_body(body, "'Page': {'Current': 1, 'Total': 0}, 'SysId': 0, 'SysName': '全系统'")
    print(body)