zoukankan      html  css  js  c++  java
  • unittest框架(三)unittest+yaml数据驱动

    学习完了如何用yaml文件管理用例,如何进行单元测试,如何产生漂亮的测试报告,那么结合这几点,我们简单学习下unittest+yaml数据驱动来测试。

    第一步:首先,我们建一个yaml文件,管理用例,以/api/user/login登录接口为例。

    第二步:新建python文件,编写逻辑代码

    import unittest,requests
    import ddt
    from BeautifulReport import BeautifulReport as bf
    from urllib import parse
    @ddt.ddt   #告诉这个类要使用ddt了
    class Login(unittest.TestCase):
        base_url = 'http://118.24.3.40/'
        @ddt.file_data('login.yaml')#ddt帮你读文件,获取文件内容,循环调用函数
        def test_request(self,**kwargs):
            detail = kwargs.get('detail','没写用例描述')
            self._testMethodDoc = detail  #动态的用例描述
            url = kwargs.get('url')#url
            url = parse.urljoin(self.base_url,url)#拼接好url
            method = kwargs.get('method','get')#请求方式,默认是get,以防用户未在yaml用例里没写请求方式
            data = kwargs.get('data',{}) #请求参数,没有数据的时候默认给一个空字典
            header = kwargs.get('header',{})#请求头
            cookie = kwargs.get('cookie',{})#cookie
            check = kwargs.get('check')
            method = method.lower() #便于处理
            try:
                if method=='get':
                    res = requests.get(url,params=data,cookies=cookie,headers=header).text
                    #因为接口有异常的情况下, 可能返回的不是json串,会报错,所以将res转为text类型
                else:
                    res = requests.post(url,data=data,cookies=cookie,headers=header).text
            except Exception as e:
                print('接口请求出错')
                res = e
            for c in check:
                self.assertIn(c,res,msg='预计结果不符,预期结果【%s】,实际结果【%s】'%(c,res))
    
    sutie = unittest.TestSuite()
    sutie.addTest(unittest.makeSuite(Login))
    run = bf(sutie)
    run.report('login_test','登录测试用例')
    # print(run.success_count) #通过的次数
    # print(run.failure_count)  #失败的次数
  • 相关阅读:
    关于全景漫游
    webgl圈中物体
    css3の极限
    reactjs弹幕视频播放
    数值积分I
    显出你的h5逼格
    奇葩のbeforeunload
    面试问题搜集及解析
    TCP拥塞控制(滑动窗口机制)
    如何使CPU占用率为50%
  • 原文地址:https://www.cnblogs.com/mululu/p/9235186.html
Copyright © 2011-2022 走看看