Python+ddt模块做接口自动化login登录用例【接口自动化框架设计系列】【多测师】

复制代码
# coding=utf-8
"""
===========================
Author:多测师_王sir
Time:2020/5/20 17:24
Wechat:15367499889
Company:上海多测师信息有限公司
===========================
"""

import unittest
import os
from library.ddt import ddt, data
from common.readexcel import ReadExcel
from common.handlepath import DATADIR
from common.handleconfig import conf
from common.handlerequests import SendRequest
from common.handlelog import log

case_file = os.path.join(DATADIR, "apicases.xlsx")
print(case_file)


@ddt
class TestLogin(unittest.TestCase):
    excel = ReadExcel(case_file, "login")     #拿到login工作簿的对象
    cases = excel.read_data()     #拿到Excel表格中的用例、是一个列表里面有3个字典用例
    request = SendRequest()       #创建了一个session对象

    @data(*cases)
    def test_login(self, case):
        # 第一步:准备用例数据
        url = conf.get("env", "url") + case["url"]
        method = case["method"]
        # print(url)   #url = http://192.168.1.192:8080/cms/manage/loginJump.do
        # print(method)  #post
        data = eval(case["data"])
        headers = eval(conf.get("env", "headers"))
        expected = eval(case["expected"])
        row = case["case_id"] + 1
        # 第二步:发送请求,获取结果
        response = self.request.send(url=url, method=method, data=data, headers=headers)
        res = response.json() #通过json把响应的参数转换为字典格式
        print(res)
        # 第三步:断言(比对预期结果和实际结果)
        try:
            self.assertEqual(expected["code"], res["code"])
            self.assertEqual(expected["msg"], res["msg"])
        except AssertionError as e:
            self.excel.write_data(row=row, column=8, value="未通过")
            log.error("用例:{},执行未通过".format(case["title"]))
            log.exception(e)
            raise e
        else:
            self.excel.write_data(row=row, column=8, value="通过")
            log.info("用例:{},执行通过".format(case["title"]))


if __name__ == '__main__':
    unittest.main()
复制代码

 

posted @   多测师_树哥  阅读(538)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示