栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python自动化之添加项目测试用例

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python自动化之添加项目测试用例

添加项目测试用例:
import unittest
import os
import requests
from unittestreport import ddt, list_data
from common.handle_excel import HandleExcel
from common.handle_path import DATA_DIR
from common.handle_conf import conf
from common.tools import replace_data
from common.handle_log import my_log
from common.handle_mysql import HandleDB

'''
添加项目,需要登陆
定义用例的前置方法(类级别)
'''
@ddt
class TestAdd(unittest.TestCase):
    excel = HandleExcel(os.path.join(DATA_DIR, ' apicase.xlsx', 'add'))
    cases = excel.read_data()
    db = HandleDB()

    @classmethod
    def setUpClass(cls) -> None:
        '''前置登陆'''
        # 1、准备登陆的数据
        url = conf.get('env', 'base_url') + '/member/login'
        params = {
            "mobile_phone": conf.get("test_data", "mobile"),
            "ped": conf.get("test_data", "pwd")
        }
        headers = eval(conf.get("env", "headers"))
        # 2、请求登陆接口
        response = requests.post(url=url, json=params, headers=headers)
        res = response.json()[0]
        # 3、提取token,放到请求头中,给后面用例使用
        token = jsonpath(res, '$..token')
        headers['Authorization'] = 'Bearer ' + token
        cls.headers = headers
        # 4、提取用例id
        cls.member_id = jsonpath(res, '$..id')[0]

    @list_data(cases)
    def test_add(self, item):
        # 第一步:准备数据
        url = conf.get('env', 'base_url') + item['url']
        item['data'] = replace_data(item['data', TestAdd])
        params = eval(item['data'])
        expected = eval(item['expected'])
        method = item['methond']
        # 调用接口之前,查询数据库该用户的项目数量
        sql = "select * from futureloan.loan where member_id={}".format(self.member_id)
        start_count = self.db.find_one(sql)
        # 第二步:调用接口,获取实际结果
        response = requests.request(method=method, url=url, json=params, headers=self.headers)
        res = response.json()
        # 调用接口之后,查询数据库该用户的项目数量
        sql = "select * from futureloan.loan where member_id={}".format(self.member_id)
        end_count = self.db.find_one(sql)
        # 第三步:断言
        try:
            self.assertEqual(expected['code'], res['code'])
            self.assertEqual(expected['msg'], res['msg'])
        except AssertionError as e:
            my_log.error("用例{}执行失败".format(item['title']))
            if res['msg'] == 'OK':
                self.assertEqual(end_count - start_count, 1)
            else:
                self.assertEqual(end_count - start_count, 0)
                my_log.exception(e)
                raise e
        else:
            my_log.info("用例{}执行成功".format(item['title']))
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/675231.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号