• 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()
  • 相关阅读:
    架构的上层是系统,是系统要素的组织形式
    计数与方法论、哲学
    网络编程--会话层、表示层、应用层
    面向中间件编程--草稿
    泛型:基于类型组合的算法和结构构建---数据结构与算法
    面向对象:消息机制更适合描述;
    类型的连接:实连接、虚连接
    数据库 = filesystem + transcation + dsl + dslengine
    一文看透浏览器架构
    代码的结合性:继承 扩展 组合 变换--swift暗含的四根主线
  • 原文地址:https://www.cnblogs.com/xiaoshubass/p/13021618.html
Copyright © 2020-2023  润新知