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地址
  • 相关阅读:
    PhpStorm如何连接外部服务器

    hello,bokeyuan
    pyspark SparkSession及dataframe基本操作
    spark2.2 中文文档
    广告推荐加入图像特征
    docker教程
    DSSM算法-计算文本相似度
    navivate 下载
    save——model模块保存和载入使用简单例子
  • 原文地址:https://www.cnblogs.com/klb561/p/10212997.html
Copyright © 2011-2022 走看看