zoukankan      html  css  js  c++  java
  • HTMLTestRunner生成测试报告注意事项

     1 __author__ = 'XXX'
     2 #coding=utf-8
     3 
     4 import requests
     5 import unittest
     6 import json
     7 import HTMLTestRunner
     8 
     9 class GetRequestTest(unittest.TestCase):
    10 
    11     def setUp(self):
    12         self.base_url="http://www.kuaidi100.com/"
    13 
    14     def tearDown(self):
    15         pass
    16 
    17     def test_login(self):
    18         self.data={"type":"yuantong","postid":"200528056708"}
    19 
    20         r=requests.post(self.base_url+"/query",self.data)
    21         dicts=json.loads(r.text)
    22         print(dicts)
    23         code=r.status_code
    24         print(code)
    25 
    26         self.assertEqual(code,200)
    27         self.assertEqual(dicts['status'],'200')
    28 
    29 if __name__=="__main__":
    30     suite=unittest.TestSuite()
    31     suite.addTest(GetRequestTest("test_login"))
    32     fp=open('E:\testresult.html','wb')
    33     #测试报告的标题与描述
    34     runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title='测试报告的标题:',description='测试报告的描述:')
    35     runner.run(suite)
    36     fp.close()

    以上是一段简单的python+unittest接口测试的测试代码;

    这里重点说下运行生成report过程中遇到的问题,记录下来:

    问题1:import HTMLTestRunner.py 报异常:

    HTMLTestRunner.py是Python标准库unittest单元测试框架的一个扩展,它生成HTML测试报告,需要下载此文件,选中目标另存为保存到路径:Python36Lib目录下(Windows安装环境)

    下载路径:http://tungwaiyip.info/software/HTMLTestRunner.html

    问题2:python3中运行以上脚本报ImportError: No module named 'StringIO',因为HTMLTestRunner.py是基于python2开发的,在解决完问题1后,需要通过编辑器修改HTMLTestRunner.py文件如下内容:

    第94行,将import StringIO修改成import io

    第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer = io.StringIO()

    第642行,将if not rmap.has_key(cls):修改成if not cls in rmap:

    第766行,将uo = o.decode('latin-1')修改成uo = e

    第775行,将ue = e.decode('latin-1')修改成ue = e

    第631行,将print >> sys.stderr, ' Time Elapsed: %s' % (self.stopTime-self.startTime)修改成print(sys.stderr, ' Time Elapsed: %s' % (self.stopTime-self.startTime))

    问题3:IDE里运行python命令执行该段脚本,报错提示TypeError: 'Module' object is not callable”,原因是以内htmltestrunner模块的时候不明确,有两种使用方式,总结如下:

    A。直接引入 from HTMLTestRunner import HTMLTestRunner,调用的时候runner = HTMLTestRunner(stream =......)

    B。间接引用,import HTMLTestRunner,调用的时候需要runner = HTMLTestRunner.HTMLTestRunner(stream =......)

    问题4:在ide里可以运行并生成测试报告,但是在Pycharm里不行,原因是Ctrl+Shift+F10运行不会生成脚本,Alt+Shift+F10运行生成脚本
     
    后续继续更新……
  • 相关阅读:
    appium---纯web app测试
    appium---元素定位工具
    appium---[ADB] Killing adb server on port 5037报错
    pytest---自定义用例识别规则
    pytest---用例执行顺序
    解决Could not find function xmlCheckVersion in library libxml2问题
    pytest---测试框架初探
    layoutSubviews何时被调用
    'addTimeInterval:' is deprecated: first deprecated in iOS 4.0
    iOS7 表格separatorInset的处理
  • 原文地址:https://www.cnblogs.com/nirvana-daidai/p/8891833.html
Copyright © 2011-2022 走看看