zoukankan      html  css  js  c++  java
  • Python HTMLTestRunner 学习

    HTMLTestRunner 是 基于 unittest 单元测试的 HTML报告 的一个第三库

     
    安装:
    1. 安装:下载HTMLTestRunner.py文件:地址http://tungwaiyip.info/software/HTMLTestRunner.html
    2、将该文件保存在python安装路径下的lib文件夹中。在文件中能import HTMLTestRunner成功,即配置成功。
    注:如果失败,在项目中新建一个这样的文件也是可以的,只要达到能引入和使用就行。另,由于这是一个py文件,所以 pip install 不大好用
     
    使用:
    引入完成后,在调用测试文件中加入如下代码即可:
    复制代码
    if __name__ == '__main__':
      suite = unittest.TestLoader().loadTestsFromTestCase(testCaseClassName) #定义一个单元测试容器
      filename = "./xxx.html" #定义个报告存放路径,支持相对路径
      f = file(filename,'wb') #结果写入HTML 文件
      runner = HTMLTestRunner.HTMLTestRunner(stream = f,title ='Report_title',description='Report_description',verbosity = 2) #使用HTMLTestRunner配置参数,输出报告路径、报告标题、描述
      runner.run(suite) HTMLTestRunner 的 HTMLTestRunner 方法 跟 unittest.TextTestRunner 方法 一样,支持测试结果信息的收集。如下: runner = HTMLTestRunner.HTMLTestRunner(stream = f,title ='Report_title',description='Report_description') #使用HTMLTestRunner配置参数,输出报告路径、报告标题、描述 result = runner.run(suite) result.success_count #运行成功的数目 result.testsRun #运行测试用例的总数 result.failure_count #运行失败的数目



    ----------------------------------
    而os.getcwd()获取的当前最外层调用的脚本路径,即getPath所在的目录也可描述为起始的执行目录,A调用B,起始的是A,那么获取的就是A所在的目录路径。

    os.path.dirname():去掉脚本的文件名,返回目录。
    os.path.dirname(os,path.realname(__file__)):指的是,获得你刚才所引用的模块 所在的绝对路径,__file__为内置属性。

    怎么样消除UTF-8文件中的名BOM(Byte Order Mark),十六进制编码(EF BB BF),博主的方法有些取巧但是也比较高效,主要用到了codecs的函数BOM_UTF8,如果发现BOM_UTF8,则直接改写文件内容。
    # remove BOM
       if data[:3] == codecs.BOM_UTF8:  # 判断是否为带BOM文件
            data = data[3:]
            with codecs.open(config_path) as dest_file:
                dest_file.write(data)

    ConfigParser 是Python自带的模块, 用来读写配置文件, 用法及其简单。

    Python 字典 get() 方法和 setdefault() 方法类似,返回指定键的值,如果键不在字典中,返回一个指定值,默认为None。
    get() 和 setdefault() 区别: setdefault() 返回的键如果不在字典中,会添加键(更新字典),而 get() 不会添加键。

    使用工厂方法返回一个Logger实例。
    logging.getLogger([name=None])
     指定name,返回一个名称为name的Logger实例。如果再次使用相同的名字,是实例化一个对象。未指定name,返回Logger实例,名称是root,即根Logger。
    Logger是层次结构的,使用 '.' 点号分割,如'a'、'a.b'或'a.b.c.d','a'是'a.b'的父parent,a.b是a的子child。对于foo来说,名字为foo.bar、foo.bar.baz、foo.bam都是foo的后代。


    对于requests提供的get方法,有几个常用的参数:
    url:显而易见,就是接口的地址url啦
    headers:定制请求头(headers),例如:content-type = application/x-www-form-urlencoded
    params:用于传递测试接口所要用的参数,这里我们用python中的字典形式(key:value)进行参数的传递。
    timeout:设置接口连接的最大时间(超过该时间会抛出超时错误)
    现在,各个参数我们已经知道是什么意思了,剩下的就是往里面填值啦,是不是机械式的应用啊,哈哈,小编我就是这样机械般的学习的啦~
    举个栗子:
    url=‘http://api.shein.com/v2/member/logout’
    header={‘content-type’: application/x-www-form-urlencoded}
    param={‘user_id’: 123456,‘email’: 123456@163.com}
    timeout=0.5
    requests.get(url, headers=header, params=param, timeout=timeout)
     post方法
            与get方法类似,只要设置好对应的参数,就可以了。下面就直接举个栗子,直接上代码吧:
    url=‘http://api.shein.com/v2/member/login’
    header={‘content-type’: application/x-www-form-urlencoded}
    data={‘email’: 123456@163.com,‘password’: 123456}
    timeout=0.5
    requests.post(url, headers=header, data=data, timeout=timeout)
    需要说明一下,post方法中的参数,我们不在使用params进行传递,而是改用data进行传递了。
    下面我们来探(了)讨(解)下接口的返回值。
    依然只说常用的返回值的操作。
    text:获取接口返回值的文本格式
    json():获取接口返回值的json()格式
    status_code:返回状态码(成功为:200)
    headers:返回完整的请求头信息(headers['name']:返回指定的headers内容)
    encoding:返回字符编码格式
    url:返回接口的完整url地址
  • 相关阅读:
    FEniCS 1.1.0 发布,计算算术模型
    Piwik 1.10 发布,增加社交网站统计
    淘宝褚霸谈做技术的心态
    CyanogenMod 10.1 M1 发布
    Druid 发布 0.2.11 版本,数据库连接池
    GNU Gatekeeper 3.2 发布
    Phalcon 0.9.0 BETA版本发布,新增大量功能
    EUGene 2.6.1 发布,UML 模型操作工具
    CVSps 3.10 发布,CVS 资料库更改收集
    Opera 移动版将采用 WebKit 引擎
  • 原文地址:https://www.cnblogs.com/klb561/p/10212997.html
Copyright © 2011-2022 走看看