Exemplo n.º 1
0
 def test_api(self, item):
     print(test_data)
     # print("url是:{0},data是:{1},header是:{2},http_method是:{3}".format(item['url'],eval(item['data']),item["header"],item['http_method']))
     print("url value:{0}".format(type(item['url'])))
     print("data value:{0}:".format(type(item['data'])))
     print("header value:{0}:".format(type(eval(item['header']))))
     # print("params value:{0}:".format(type(eval(item['params']))))
     print("http_method value:{0}:".format(type(item['http_method'])))
     res = HttpRequest.http_request(item['url'], item['data'],
                                    eval(item["header"]),
                                    item['http_method'],
                                    getattr(GetData, "Cookie"))
     if res.cookies:
         setattr(GetData, 'Cookie', res.cookies)
     try:
         self.assertEqual(item['excepted_code'], res.json()["code"])
         TestResult = 'PASS'  #成功的
     except AssertionError as e:
         TestResult = 'Failed'  #失败的
         my_logger.info("执行用例出错:{}".format(e))
         raise e
     finally:
         DoExcel.write_back(test_case_path, 'login', item['case_id'] + 1,
                            str(res.json()), TestResult)
         print('获取到的结果是:{}'.format(res.json()))
Exemplo n.º 2
0
    def test_api(self, item):
        #请求之前完成loan_id的替换
        if item['data'].find('${loan_id}') != -1:
            if getattr(GetData, 'load_id') == None:
                query_sql = 'select Id from loan where Member ID={0}'.format(
                    getattr(GetData, 'loan_member_id'))
                loan_id = DoMysql().do_mysql(query_sql)[0][0]
                item['data'] = item['data'].replace('${loan_id}', str(loan_id))
                setattr(GetData, 'load_id', loan_id)  #利用反射存储结果
            else:
                item['data'] = item['data'].replace(
                    '${loan_id}', str(getattr(GetData, 'loan_id')))

        res = HttpRequest.http_request(item['url'], eval(item['data']),
                                       item['http_method'],
                                       getattr(GetData, 'Cookie'))
        if res.cookies:
            setattr(GetData, 'Cookie', res.cookies)
        try:
            self.assertEqual(str(item['expected']), res.json()['code'])
            TestResult = 'PASS'
        except AssertionError as e:
            TestResult = 'Failed'
            my_logger.info('执行用列出错:{0}'.format(e))
            raise e
        finally:
            DoExcel.write_back(test_case_path,
                               item['sheet_name'], item['case_id'] + 1,
                               str(res.json()), TestResult)
            my_logger.error("获取到的结果是:{0}".format(res.json()))
Exemplo n.º 3
0
def run(test_data):
    for item in test_data:
        # print(item['data_type'])
        # print(item['data'])
        # print(type(item['data']))
        print("正在执行的用例是{0}".format(item['title']))
        if item['title'] == '修改管理员':
            newid = getattr(GetAdminId, 'Adminid')
            item['data']['id'] = newid
        res = HttpRequests(
            item['url'],
            item['method'],
            data=item['data'],
            cookies=getattr(GetCookie,
                            'Cookie')).send_request(type=item['data_type'])
        if res.cookies:
            setattr(GetCookie, 'Cookie', res.cookies)
        elif str(res.json()).find('id') != -1 and item['title'] == '添加管理员':
            setattr(GetAdminId, 'Adminid', res.json()['id'])
        print("请求的结果是{0}".format(res.json()))
        DoExcel().write_back(item['caseid'] + 1,
                             8,
                             str(res.json()),
                             sheet_name=item['sheet_name'])

        if int(res.json()['ret']) == item['expect']:
            test_result = 'pass'
        else:
            test_result = 'fail'
        DoExcel().write_back(item['caseid'] + 1,
                             9,
                             test_result,
                             sheet_name=item['sheet_name'])
    def test_api(self, item):
        print(item)
        print(type(item))
        print(item["model"])
        print(type(item["model"]))
        if item["model"] == "login_notice":
            global accessToken
            res_login = HttpRequest.http_request(item['url'], item['data'],
                                                 eval(item["header"]),
                                                 eval(item["params"]),
                                                 item['http_method'],
                                                 getattr(GetData, "Cookie"))
            accessToken = res_login.json()["accessToken"]
            print("accessToken 值为".format(accessToken))
            if res_login.cookies:
                setattr(GetData, 'Cookie', res_login.cookies)
            try:
                self.assertEqual(item['excepted_code'],
                                 res_login.json()["code"])
                TestResult = 'PASS'  # 成功的
            except AssertionError as e:
                TestResult = 'Failed'  # 失败的
                my_logger.info("执行用例出错:{}".format(e))
                raise e
            finally:
                DoExcel.write_back(test_case_path,
                                   'notice', item['case_id'] + 1,
                                   str(res_login.json()), TestResult)
                print('获取到的结果是:{}'.format(res_login.json()))

        elif item["model"] == "notice":

            sid = accessToken
            res_notice = HttpRequest.http_request(
                item['url'], item['data'],
                eval(item["header"].replace(
                    "5EFCC60C2373B9C1FC526F64CAF24610EFA2BFC1C056AF9C92AFC48CE14EE8D8B13942D7F20742E379D7A6F89DB87D72",
                    sid)), eval(item["params"]), item['http_method'],
                getattr(GetData, "Cookie"))
            if res_notice.cookies:
                setattr(GetData, 'Cookie', res_notice.cookies)
            try:
                self.assertEqual(item['excepted_code'],
                                 eval(res_notice.json()["retHead"]))
                TestResult = 'PASS'  # 成功的
            except AssertionError as e:
                TestResult = 'Failed'  # 失败的
                my_logger.info("执行用例出错:{}".format(e))
                raise e
            finally:
                # DoExcel.write_back(test_case_path,'notice',item['case_id']+1,str(res_notice.json()),TestResult)
                print('获取到的结果是:{}'.format(res_notice.json()))
Exemplo n.º 5
0
 def test_api(self,item):
     res=HttpRequest.http_request(item['method'],item['url'],eval(item['data']),getattr(GetCookie,'Cookie'))
     if res.cookies: #利用反射存储cookie值
         setattr(GetCookie,'Cookie',res.cookies)
     try:
         self.assertEqual(str(item['expected']),res.json()['resultcode'])
         TestResult='PASS'
     except AssertionError as e:
         TestResult='Failed'
         MyLog.error("执行用例出错:{0}".format(e))
         raise e
     finally:
         DoExcel.write_back(test_case_path,item['sheet_name'],item['case_id']+1,res.text,TestResult)
         MyLog.info("获取到的结果是:{0}".format(res.text))
Exemplo n.º 6
0
 def test_api(self, item):
     res = HttpRequest.http_request(item['url'], eval(item['data']),
                                    item['http_method'],
                                    getattr(GetCookie, "Cookie"))
     try:
         self.assertEqual(item['excepted'], res.json()["status"])
         TestResult = 'PASS'  #成功的
     except AssertionError as e:
         TestResult = 'Failed'  #失败的
         print("执行用例出错:{}".format(e))
         raise e
     finally:
         DoExcel.write_back(test_case_path, 'login', item['case_id'] + 1,
                            str(res.json()), TestResult)
         print('获取到的结果是:{}'.format(res.json()))
Exemplo n.º 7
0
    def test_api(self, item):
        res = HttpRequest.http_request(item['url'], eval(item['data']),
                                       item['http_method'],
                                       getattr(GetCookie, 'Cookie'))

        try:
            self.assertEqual(item['expected'], res.json()['stat'])
            TestResult = 'PASS'
        except Exception as e:
            TestResult = 'Failed'
            print("执行用例出错:{0}".format(e))
            raise e
        finally:
            DoExcel.write_back(test_case_path, 'login', item['case_id'] + 1,
                               str(res.json()), TestResult)
            print("获取到结果是:{0}".format(res.json()))
Exemplo n.º 8
0
class TestLogin(BaseCase):
    caseInfoList = DoExcel.getCaseDataFromExcel(test_data_path, "login")

    @allure.story("测试登录接口")
    @pytest.mark.parametrize("case_info", caseInfoList)
    def test_login(self, case_info):
        with allure.step("对当前的case进行参数化替换"):
            # 对当前的case进行参数化替换
            case_info = self.params_replace_current_case_info(case_info)

        with allure.step("发起请求"):
            res = HttpRequest().http_request(case_info)

        # 断言
        with allure.step("响应结果断言"):
            self.assert_expected(case_info, res)

        member_id = jmespath.search("data.id", res.json())
        if member_id != None:
            with allure.step("保存token到环境变量里"):
                token = jmespath.search("data.token_info.token", res.json())
                if case_info["case_id"] == 1:
                    # 2、保存到环境变量中
                    setattr(RelyData, "token1", token)

                elif case_info["case_id"] == 2:
                    # 2、保存到环境变量中
                    setattr(RelyData, "token2", token)

                elif case_info["case_id"] == 3:
                    # 2、保存到环境变量中
                    setattr(RelyData, "token3", token)
Exemplo n.º 9
0
 def test_api(self, item):
     res = HttpRequest.http_request(item['url'],
                                    json.dumps(eval(item['data'])),
                                    item['http_method'],
                                    eval(item['header']))
     try:
         self.assertEqual('0', res.json()['success'])
         TestResult = 'PASS'
     except AssertionError as e:
         TestResult = 'FAILED'
         my_logger.info('执行出错:{0}'.format(e))
         raise e
     finally:
         DoExcel.write_back(tool_path.test_data_path, item['sheet_name'],
                            int(item['case_id']) + 1, str(res.json()),
                            TestResult)
         print('获取的结果是:{0}'.format(res.json()['msg']))
Exemplo n.º 10
0
    def test_api(self, item):
        res = HttpRequest.http_request(item['url'], eval(item['data']),
                                       item['http_method'],
                                       getattr(GetData, 'Cookie'))

        if res.cookies:  #利用反射存取cookies
            setattr(GetData, 'Cookie', res.cookies)
        try:
            self.assertEqual(item['expected'], res.json()['stat'])
            TestResult = 'PASS'
        except Exception as e:
            TestResult = 'Failed'
            my_logger.info("执行用例出错:{0}".format(e))
            raise e
        finally:
            DoExcel.write_back(test_case_path,
                               item['sheet_name'], item['case_id'] + 1,
                               str(res.json()), TestResult)
            my_logger.error("获取到结果是:{0}".format(res.json()))
Exemplo n.º 11
0
class TestRegister(BaseCase):
    caseInfoList = DoExcel.getCaseDataFromExcel(test_data_path, "register")

    @allure.story("注册新账号")
    @pytest.mark.parametrize("caseInfo", caseInfoList)  # 替代ddt
    def test_register(self, caseInfo):
        with allure.step("读数据库获取没有注册过的手机号码"):
            # 读数据库获取没有注册过的手机号码
            if caseInfo["case_id"] == 1:
                mobile_phone = self.get_random_phone()
                setattr(RelyData, "mobile_phone1", mobile_phone)
            elif caseInfo["case_id"] == 2:
                mobile_phone = self.get_random_phone()
                setattr(RelyData, "mobile_phone2", mobile_phone)
            elif caseInfo["case_id"] == 3:
                mobile_phone = self.get_random_phone()
                setattr(RelyData, "mobile_phone3", mobile_phone)

        with allure.step("对当前的case进行参数化替换"):
            # 对当前的case进行参数化替换
            case_info = self.params_replace_current_case_info(caseInfo)

        with allure.step("发起请求"):
            res=HttpRequest().http_request(case_info)

        with allure.step("响应结果断言"):
            # 1、响应结果断言
            self.assert_expected(case_info, res)
        with allure.step("数据库断言"):
            # 2、数据库断言
            self.assert_SQL(case_info)

        memberId = jmespath.search("data.id", res.json())
        if memberId != None:
            with allure.step("保存手机号、用户id、密码到环境变量里"):
                mobile_phone = jmespath.search("data.mobile_phone", res.json())
                # 3、注册成功的密码--从用例数据里面
                pwd = case_info['input_params']['pwd']
                if case_info["case_id"] == 1:
                    setattr(RelyData, "mobile_phone1", mobile_phone)
                    setattr(RelyData, "member_id1", memberId)
                    setattr(RelyData, "pwd1", pwd)

                elif case_info["case_id"] == 2:
                    # 2、保存到环境变量中
                    setattr(RelyData, "mobile_phone2", mobile_phone)
                    setattr(RelyData, "member_id2", memberId)
                    setattr(RelyData, "pwd2", pwd)

                elif case_info["case_id"] == 3:
                    # 2、保存到环境变量中
                    setattr(RelyData, "mobile_phone3", mobile_phone)
                    setattr(RelyData, "member_id3", memberId)
                    setattr(RelyData, "pwd3", pwd)
Exemplo n.º 12
0
    def test_api(self, item):
        my_logger.info('开始执行用例{0}:{1}'.format(item['case_id'], item['title']))
        loan_member_id = getattr(GetData, 'loan_member_id')

        # 请求之前完成load_id的替换
        if item['data'].find('${loan_id}') != -1:
            if getattr(GetData, 'loan_id') is None:
                query_sql = 'select max(id) from loan where member_id={0}'.format(loan_member_id)
                loan_id = DoMysql().do_mysql(query_sql)[0][0]
                item['data'] = item['data'].replace('${loan_id}', str(loan_id))
                setattr(GetData, 'loan_id', loan_id)
                my_logger.info('loan_id为:{0}'.format(loan_id))
            else:
                my_logger.info(getattr(GetData, 'loan_id'))
                item['data'] = item['data'].replace('${loan_id}', str(getattr(GetData, 'loan_id')))
        my_logger.info('获取到的请求数据是{0}'.format(item['data']))

        if item['check_sql'] != None:  # 当你的check_sql的语句不为空时 就可以进行数据库校验
            my_logger.info(item['check_sql'])
            my_logger.info('此条用例需要做数据库校验:{0}'.format(item['title']))
            query_sql = eval(item['check_sql'])['sql']  # 拿到Excel中 字典里面的sql语句
            Before_Amount = DoMysql.do_mysql(query_sql, 1)[0]
            my_logger.info('用例:{0}请求之前的余额是{1}'.format(item['title'], Before_Amount))
            my_logger.info('---------------------开始http 接口请求---------------------')
            res = HttpRequest.http_request(item['url'], eval(item['data']), item['http_method'],
                                           getattr(GetData, 'Cookie'))
            my_logger.info('---------------------完成http 接口请求---------------------')
            After_Amount = DoMysql().do_mysql(query_sql, 1)[0]
            my_logger.info('用例:{0}请求之后的余额是{1}'.format(item['title'], After_Amount))
            if float(abs(Before_Amount-After_Amount+1000)) == float(eval(item['data'])['amount']):
                my_logger.info('数据库余额校验通过')
                check_sql_result = '数据库检查通过'
            else:
                my_logger.info('数据库余额校验未通过')
                check_sql_result = '数据库检查未通过'
            # 写回结果
            DoExcel.write_back(project_path.test_case_path, item['sheet_name'], item['case_id'] + 1, 10, check_sql_result)
        else:
            my_logger.info('此条用例不需要做数据库校验:{0}'.format(item['title']))
            my_logger.info('---------------------开始http 接口请求---------------------')
            res = HttpRequest.http_request(item['url'], eval(item['data']), item['http_method'],
                                           getattr(GetData, 'Cookie'))
            my_logger.info('---------------------完成http 接口请求---------------------')

        if res.cookies:  # 利用反射存储cookie值
            setattr(GetData, 'Cookie', res.cookies)

        try:
            self.assertEqual(str(item['expected']), res.json()['code'])
            test_result = 'PASS'  # 成功的
        except AssertionError as e:
            test_result = 'Failed'  # 失败的
            my_logger.error("执行用例出错:{0}".format(e))
            raise e
        finally:  # 不管try是错还是对,finally里面的代码是一定会执行的
            DoExcel.write_back(project_path.test_case_path, item['sheet_name'], item['case_id'] + 1, 8, str(res.json()))
            DoExcel.write_back(project_path.test_case_path, item['sheet_name'], item['case_id'] + 1, 9, test_result)
            my_logger.info("获取到的结果是:{0}".format(res.json()))
            my_logger.info('----------------------------------------------------------------------------------\n')
Exemplo n.º 13
0
class TestInvest(BaseCase):
    caseInfoList = DoExcel.getCaseDataFromExcel(test_data_path, "invest")

    @allure.story("测试投资接口")
    @pytest.mark.parametrize("case_info", caseInfoList)
    def test_invest(self, case_info):
        with allure.step("对当前的case进行参数化替换"):
            case_info = self.params_replace_current_case_info(case_info)

        with allure.step("发起请求"):
            res = HttpRequest().http_request(case_info)

        # 断言
        with allure.step("响应结果断言"):
            self.assert_expected(case_info, res)
Exemplo n.º 14
0
 def test_api(self, item):
     print("测试开始:{0}".format(item['title']))  #测试标题
     res = HttpRequest().http_request(item['url'], eval(item['data']),
                                      item['http_method'],
                                      getattr(GetData, 'Cookie'))  #获取请求
     if res.cookies:  #利用反射获取cookies
         setattr(GetData, 'Cookie', res.cookies)
     try:  #进行断言
         self.assertEqual(str(item['expect']), res.json()['code'])
         TestResult = 'PASS'
     except Exception as e:
         TestResult = 'Failed'
         print("执行用例出错:{}".format(e))
         raise e
     finally:  #将测试结果返回文档中
         DoExcel().write_back(case_path,
                              item['sheet_name'], item['case_id'] + 1,
                              str(res.json()), TestResult)
Exemplo n.º 15
0
    def test_api(self, item):

        global TestResult
        res = HttpRequest().http_request(item['url'], eval(item['data']), item['http_method'],
                                         getattr(GetData, "Cookie"))

        actual_code = res.json()['code']  # 实际结果

        if res.cookies:  # 如果有cookies,那就res.cookies赋值给Cookie属性
            setattr(GetData, 'Cookie', res.cookies)  # 反射
        try:
            self.assertEqual(str(item['expected_code']), actual_code)
            print("用例{0}正确!".format(item['case_id']), item['title'])
            TestResult = 'PASS'
        except AssertionError as e:
            print("用例错误!错误原因是{0}:".format(e))
            TestResult = 'Failed'
            raise e  # 异常处理完后记得抛出
        finally:  # 不管怎样都得写入Excel
            DoExcel().write_back(test_case_path, item['sheet_name'], item['case_id'] + 1, str(res.json()), TestResult)
            print("响应体:", "\n", res.json())
Exemplo n.º 16
0
class TestAddLoan(BaseCase):
    caseInfoList = DoExcel.getCaseDataFromExcel(test_data_path, "addLoan")

    @allure.story("测试添加项目接口")
    @pytest.mark.parametrize("case_info", caseInfoList)
    def test_add_loan(self, case_info):
        with allure.step("对当前的case进行参数化替换"):
            # 对当前的case进行参数化替换
            case_info = self.params_replace_current_case_info(case_info)

        with allure.step("发起请求"):
            res = HttpRequest().http_request(case_info)

        # 断言
        with allure.step("响应结果断言"):
            self.assert_expected(case_info, res)

        memberId = jmespath.search("data.member_id", res.json())
        if memberId != None:
            loan_id = jmespath.search("data.id", res.json())
            # 2、保存到环境变量中
            setattr(RelyData, "loan_id", loan_id)
Exemplo n.º 17
0
# -*- coding:utf-8 -*-
#作者 :Lyle.Li
#时间 :2020/4/16 18:11
#文件 :test_http_request.py
import unittest
from tools.http_request import HttpRequest
from tools.do_excel import DoExcel
from ddt import ddt, data
from tools.get_data import GetData
from tools.project_path import *

test_data = DoExcel().get_data(case_path)  #测试数据获取文件


@ddt  #进行数据分离
class TestHttpRequest(unittest.TestCase):
    def setUp(self):
        pass

    @data(*test_data)
    def test_api(self, item):
        print("测试开始:{0}".format(item['title']))  #测试标题
        res = HttpRequest().http_request(item['url'], eval(item['data']),
                                         item['http_method'],
                                         getattr(GetData, 'Cookie'))  #获取请求
        if res.cookies:  #利用反射获取cookies
            setattr(GetData, 'Cookie', res.cookies)
        try:  #进行断言
            self.assertEqual(str(item['expect']), res.json()['code'])
            TestResult = 'PASS'
        except Exception as e:
Exemplo n.º 18
0
 def login_data(self):
     fileName = os.path.join(test_data_path,"login_data.xlsx")
     return DoExcel(fileName,"login").read_excel()
Exemplo n.º 19
0
#作者:HP
#日期:2020-03-20 20:48
#文件:test_http_request
import unittest
from tools.http_request import HttpRequest
from tools.get_data import GetCookie
from ddt import ddt, data  #
from tools.do_excel import DoExcel
from tools.project_path import *

test_data = DoExcel.get_data(test_case_path, 'create')  #执行登录用例


@ddt
class TestHttpRequest(unittest.TestCase):
    def setUp(self, ):
        pass

    @data(*test_data)
    def test_api(self, item):
        res = HttpRequest.http_request(item['url'], eval(item['data']),
                                       item['http_method'],
                                       getattr(GetCookie, 'Cookie'))

        try:
            self.assertEqual(item['expected'], res.json()['stat'])
            TestResult = 'PASS'
        except Exception as e:
            TestResult = 'Failed'
            print("执行用例出错:{0}".format(e))
            raise e
Exemplo n.º 20
0
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
"""Script content introduction
__author__ = 'ziying'
__date__ = '2020/11/1 14:23'
__function__ = ''
"""

import pytest
import os
from common.until.register import register
from tools.do_excel import DoExcel
from tools.logger import logger
from config.conf import DATA_DIR

do_excel = DoExcel(DATA_DIR, "register")
TestData = do_excel.get_data()
do_excel.close_file()


@pytest.mark.usefixtures("fix_class_level")
class TestRegister:
    @pytest.mark.usefixtures("fix_function_level")
    @pytest.mark.register
    @pytest.mark.parametrize("case", TestData)  # 读取excel文件中的测试用例
    def test_register(self, case):

        logger.info("测试数据:{}".format(eval(case["Data"])))
        logger.info("开始执行第 {} 条用例:{}!".format(case["CaseID"], case["Title"]))
        # print("开始执行第 {} 条用例:{},测试数据:{}!".format(case["CaseID"], case["Title"], eval(case["Data"])))
        res = register(
Exemplo n.º 21
0
#作者:HP
#日期:2020-03-20 20:48
#文件:test_http_request
import unittest
from tools.http_request import HttpRequest
from tools.get_data import GetCookie
from ddt import ddt, data  #
from tools.do_excel import DoExcel
from tools.project_path import *

test_data = DoExcel.get_data(test_case_path, 'login')  #执行登录用例


@ddt
class TestHttpRequest(unittest.TestCase):
    def setUp(self, ):
        pass

    @data(*test_data)
    def test_api(self, item):
        res = HttpRequest.http_request(item['url'], eval(item['data']),
                                       item['http_method'],
                                       getattr(GetCookie, 'Cookie'))

        try:
            self.assertEqual(item['expected'], res.json()['stat'])
            TestResult = 'PASS'
        except Exception as e:
            TestResult = 'Failed'
            print("执行用例出错:{0}".format(e))
            raise e
Exemplo n.º 22
0
# @Author : demi
# @Email : [email protected]
# @File : http_request_testcase.py


import unittest
from tools.http_request import HttpRequest
from tools.get_data import GetData
from ddt import ddt, data  # 列表嵌套列表 或者是列表嵌套字典
from tools.do_excel import DoExcel
from tools import project_path
from tools.my_log import MyLog
from tools.do_mysql import DoMysql


test_data = DoExcel.get_data(project_path.test_case_path)
my_logger = MyLog()


@ddt
class HttpRequestTestcase(unittest.TestCase):
    def setUp(self):
        pass

    @data(*test_data)
    def test_api(self, item):
        my_logger.info('开始执行用例{0}:{1}'.format(item['case_id'], item['title']))
        loan_member_id = getattr(GetData, 'loan_member_id')

        # 请求之前完成load_id的替换
        if item['data'].find('${loan_id}') != -1:
Exemplo n.º 23
0
# -*- conding: utf-8 -*-
# @Time      :2019/7/30 15:09
# Author     :chengjin
# @Email     :[email protected]
# @File      :test_http_request.py
import unittest
from tools.project_path import *
from tools.http_request import HttpRequest
from tools.get_cookie import GetCookie
from ddt import ddt, data  #列表嵌套列表 或者列表嵌套字典
from tools.do_excel import DoExcel

test_data = DoExcel.get_data(test_case_path, "login")


@ddt
class TestHttpRequest(unittest.TestCase):
    def setUp(self):
        pass

    @data(*test_data)
    def test_api(self, item):
        res = HttpRequest.http_request(item['url'], eval(item['data']),
                                       item['http_method'],
                                       getattr(GetCookie, "Cookie"))
        try:
            self.assertEqual(item['excepted'], res.json()["status"])
            TestResult = 'PASS'  #成功的
        except AssertionError as e:
            TestResult = 'Failed'  #失败的
            print("执行用例出错:{}".format(e))
Exemplo n.º 24
0
import unittest
from tools.http_request import HttpRequests
from tools.get_global import GetCookie, GetAdminId, GetAdmin
from ddt import ddt, data
from tools.read_config import ReadConfig
from tools.do_excel import DoExcel
from tools.print_log import initLogging
from tools.project_path import log_path, case_config_path
from tools.handle_sqlite import HandleSqlite

test_data = DoExcel().get_data()

# print(test_data)

# print(test_data)


@ddt
class TestHttp(unittest.TestCase):
    result_list = []
    test_result_list = []

    def setUp(self):
        print('start')

    def tearDown(self):
        print('end')

    @classmethod
    def tearDownClass(cls,
                      result_list=result_list,
Exemplo n.º 25
0
import unittest
from tools.do_excel import DoExcel
from tools.project_path import *
from ddt import *
from tools.http_request import HttpRequest
from tools.get_cookie import GetCookie
from tools.my_log import MyLog

test_data=DoExcel.get_data(test_case_path)
@ddt
class TestHttpRequest(unittest.TestCase):
    def setUp(self):
        pass
    @data(*test_data)
    def test_api(self,item):
        res=HttpRequest.http_request(item['method'],item['url'],eval(item['data']),getattr(GetCookie,'Cookie'))
        if res.cookies: #利用反射存储cookie值
            setattr(GetCookie,'Cookie',res.cookies)
        try:
            self.assertEqual(str(item['expected']),res.json()['resultcode'])
            TestResult='PASS'
        except AssertionError as e:
            TestResult='Failed'
            MyLog.error("执行用例出错:{0}".format(e))
            raise e
        finally:
            DoExcel.write_back(test_case_path,item['sheet_name'],item['case_id']+1,res.text,TestResult)
            MyLog.info("获取到的结果是:{0}".format(res.text))
    def tearDown(self):
        pass
if __name__ == '__main__':
Exemplo n.º 26
0
# -*- conding: utf-8 -*-
# @Time      :2019/7/30 15:09
# Author     :chengjin
# @Email     :[email protected]
# @File      :test_http_request.py
import unittest
from tools.project_path import *
from tools.http_request import HttpRequest
from tools.get_cookie import GetCookie
from ddt import ddt, data  #列表嵌套列表 或者列表嵌套字典
from tools.do_excel import DoExcel

test_data = DoExcel.get_data(test_case_path, "recharge")


@ddt
class TestHttpRequest(unittest.TestCase):
    def setUp(self):
        pass

    @data(*test_data)
    def test_api(self, item):
        res = HttpRequest.http_request(item['url'], eval(item['data']),
                                       item['http_method'],
                                       getattr(GetCookie, "Cookie"))
        try:
            self.assertEqual(item['excepted'], res.json()["status"])
            TestResult = 'PASS'  #成功的
        except AssertionError as e:
            TestResult = 'Failed'  #失败的
            print("执行用例出错:{}".format(e))
Exemplo n.º 27
0
 def test_api(self, item):
     # 获取主机地址
     HOST = ReadConfig.get_config(case_config_path, 'ADDRESS', 'host')
     item['url'] = HOST + item['url']  # 获取url
     #提交data为空,关联值get_value不为空
     if item['data'] == None and item['get_value'] != None:
         if type(eval(item['get_value'])) == dict:
             res = HttpRequest().http_request(item['url'],
                                              None,
                                              item['method'],
                                              item['type'],
                                              headers=getattr(
                                                  GetToken, "header"))
             if res.json()['msg'] == 'OK':
                 get_data = eval(item['get_value'])
                 for keys in get_data.keys():
                     key = keys
                     value = get_data[key]
                 add = 'res.json()' + value
                 add = eval(add)
                 OperaConfig.write_config(file_path, key, key, add)
             try:
                 self.assertEqual(item['expected'], res.json()['msg'])
                 TestResult = 'PASS'
             except AssertionError as e:
                 TestResult = 'FAIL'
                 print("执行用例出错:{0}".format(e))
                 raise e
             finally:
                 #写回结果(str(res.json()),excel只能写字符串,数字,不能写字典
                 DoExcel(test_case_path, item['sheet_name']).write_back(
                     item['case_id'] + 1, str(res.json()), TestResult)
                 print("获取到的结果是:{0}".format(res.json()))
     # 提交data不为空,关联值get_value不为空(字符串:使用值)
     elif item['data'] != None and item['get_value'] != None and type(
             item['get_value']) == str:
         data1 = OperaConfig.read_config(file_path, item['get_value'],
                                         item['get_value'])  #获取配置文件值
         if item['url'].find(item['get_value']) != -1:
             url = item['url'].replace("{{" + item['get_value'] + "}}",
                                       data1)
             res = HttpRequest().http_request(url,
                                              eval(item['data']),
                                              item['method'],
                                              item['type'],
                                              headers=getattr(
                                                  GetToken, "header"))
         elif item['data'] != None and item['data'].find(
                 item['get_value']) != -1:
             data = item['data'].replace("{{" + item['get_value'] + "}}",
                                         data1)
             res = HttpRequest().http_request(item['url'],
                                              eval(data),
                                              item['method'],
                                              item['type'],
                                              headers=getattr(
                                                  GetToken, "header"))
         try:
             self.assertEqual(item['expected'], res.json()['msg'])
             TestResult = 'PASS'
         except AssertionError as e:
             TestResult = 'FAIL'
             print("执行用例出错:{0}".format(e))
             raise e
         finally:
             #写回结果(str(res.json()),excel只能写字符串,数字,不能写字典
             DoExcel(test_case_path,
                     item['sheet_name']).write_back(item['case_id'] + 1,
                                                    str(res.json()),
                                                    TestResult)
             print("获取到的结果是:{0}".format(res.json()))
     # 提交data为空,关联值get_value为空(普通get)
     elif item['data'] == None and item['get_value'] == None:
         res = HttpRequest().http_request(item['url'],
                                          None,
                                          item['method'],
                                          item['type'],
                                          headers=getattr(
                                              GetToken, "header"))
         try:
             self.assertEqual(item['expected'], res.json()['msg'])
             TestResult = 'PASS'
         except AssertionError as e:
             TestResult = 'FAIL'
             print("执行用例出错:{0}".format(e))
             raise e
         finally:
             # 写回结果(str(res.json()),excel只能写字符串,数字,不能写字典
             DoExcel(test_case_path,
                     item['sheet_name']).write_back(item['case_id'] + 1,
                                                    str(res.json()),
                                                    TestResult)
             print("获取到的结果是:{0}".format(res.json()))
     # 其他
     else:
         res = HttpRequest().http_request(item['url'],
                                          eval(item['data']),
                                          item['method'],
                                          item['type'],
                                          headers=getattr(
                                              GetToken, "header"))
         try:
             self.assertEqual(item['expected'], res.json()['msg'])
             TestResult = 'PASS'
         except AssertionError as e:
             TestResult = 'FAIL'
             print("执行用例出错:{0}".format(e))
             raise e
         finally:
             #写回结果(str(res.json()),excel只能写字符串,数字,不能写字典
             DoExcel(test_case_path,
                     item['sheet_name']).write_back(item['case_id'] + 1,
                                                    str(res.json()),
                                                    TestResult)
             print("获取到的结果是:{0}".format(res.json()))
Exemplo n.º 28
0
from ddt import ddt, data  # 数据类型必须是列表嵌套列表,或者列表嵌套字典
import unittest
from tools.http_request import HttpRequest
import json
import tools.project_path as tool_path
from tools.do_excel import DoExcel
from test_result.log.api_logging import MyLog

my_logger = MyLog()
test_data = DoExcel.get_data(tool_path.test_data_path)


@ddt
class TestHttpRequest(unittest.TestCase):
    def setUp(self):
        pass

    def tearDown(self):
        pass

    @data(*test_data)
    def test_api(self, item):
        res = HttpRequest.http_request(item['url'],
                                       json.dumps(eval(item['data'])),
                                       item['http_method'],
                                       eval(item['header']))
        try:
            self.assertEqual('0', res.json()['success'])
            TestResult = 'PASS'
        except AssertionError as e:
            TestResult = 'FAILED'
Exemplo n.º 29
0
# -*- coding: utf-8 -*-
# @Author   : Monster
# @File     : test_case.py

import unittest
from ddt import ddt, data
from tools.http_request import HttpRequest
from tools.do_excel import DoExcel
from tools.get_token import GetToken
from tools.project_path import *
from tools.read_config import ReadConfig
from tools.operation_config import OperaConfig
test_data = DoExcel(test_case_path).get_data()  #读取用例


@ddt
class TestHttpRequest(unittest.TestCase):
    @classmethod
    def setUpClass(cls) -> None:
        """
        登录获取(后台)token
        :return:
        """
        # 获取主机地址
        HOST = ReadConfig.get_config(case_config_path, 'ADDRESS', 'host')
        url = f'{HOST}/api/auth/oauth/user/token'
        param = {"username": "******", "password": "******"}
        header = {
            "Content-Type": "application/json;charset=UTF-8",
            "Authorization": "Basic QmFzZVBsYXRmb3JtOjEyMzQ1Ng=="
        }
Exemplo n.º 30
0
 def tearDownClass(cls,
                   result_list=result_list,
                   test_result_list=test_result_list):
     DoExcel().write_all_back(result_data=result_list,
                              test_result_data=test_result_list)