第一句子网 - 唯美句子、句子迷、好句子大全
第一句子网 > HTMLTestRunner生成测试报告报错 ModuleNotFoundError: No module named ‘StringIO‘

HTMLTestRunner生成测试报告报错 ModuleNotFoundError: No module named ‘StringIO‘

时间:2021-01-08 04:01:54

相关推荐

HTMLTestRunner生成测试报告报错 ModuleNotFoundError: No module named ‘StringIO‘

今天在学习使用HTMLTestRunner生成测试报告时遇到一个报错,如图所示:

网上搜索了下“No module named 'StringIO'”解决方法,原来我用的是Python 3.X版本,而下载的HTMLTestRunner适用于Python2.X(下载链接:http://tungwaiyip.info/software/HTMLTestRunner.html)

于是这里再做次“搬运工”,了解下如何在Python3中使用HTMLTestRunner报No module named 'StringIO'解决方法。

修改HTMLTestRunner.py文件:

(1)第94行,将import StringIO修改成import io

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

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

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

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

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

HTMLTestRunner修改后,重新运行脚本发现一切正常并在相应路径下生成了测试报告,如图所示:

执行脚本代码参考:

代码没有进行封装,大家就不要纠结这个小问题了,能解决问题就行,有问题可以留言

import unittestfrom time import sleepfrom selenium import webdriverfrom mon.by import Byfrom selenium.webdriver.support.wait import WebDriverWaitfrom TestRunner import HTMLTestRunnerclass Test01(unittest.TestCase):def setUp(self):self.driver = webdriver.Firefox()# 打印测试页_remote(带水印)文件下载地址self.baseurl1 = "file:///C:/Users/86176/Desktop/%E6%B5%8B%E8%AF%95%E9%A1%B5/%E6%89%93%E5%8D%B0%E6%B5%8B%E8%AF%95%E9%A1%B5_remote.html"# 打印测试页文件下载地址self.baseurl2 ="file:///C:/Users/86176/Desktop/%E6%B5%8B%E8%AF%95%E9%A1%B5/%E6%89%93%E5%8D%B0%E6%B5%8B%E8%AF%95%E9%A1%B5.html"# 阅读测试页文件下载地址self.baseurl3 ="file:///C:/Users/86176/Desktop/%E6%B5%8B%E8%AF%95%E9%A1%B5/%E9%98%85%E8%AF%BB%E6%B5%8B%E8%AF%95%E9%A1%B5.html"# 打印测试页_remote测试用例def test_01(self):driver = self.driverdriver.get(self.baseurl1)sleep(5)# 清空下载文件地址driver.find_element(By.ID, "filedown").clear()# 输入下载文件地址driver.find_element(By.ID, "filedown").send_keys("http://10.11.12.249:8080/cp/files/1.ofd")# 清空水印内容driver.find_element(By.ID, "showWaterMark").clear()# 输入水印内容driver.find_element(By.ID, "showWaterMark").send_keys("我是水印内容")# 清空打印分数driver.find_element(By.ID, "printNum").clear()# 输入打印分数driver.find_element(By.ID, "printNum").send_keys("1")# 打印是否包含水印driver.find_element(By.ID, "printOld").click()driver.find_element(By.XPATH, "//body/select/option[1]").click()sleep(1)# 点击执行以上参数driver.find_element(By.CLASS_NAME, "function_btn").click()sleep(2)# 显示文件元素显示等待最长时间10秒WebDriverWait(driver, 10).until(lambda x: len(driver.find_elements_by_id("pageContainer1")) == 1)try:var = driver.find_element(By.ID, "pageContainer1")print("测试成功:文件已显示")except:print("11111111")driver.quit()# 打印测试页测试用例def test_02(self):driver = self.driverdriver.get(self.baseurl2)# 清空下载文件地址driver.find_element(By.ID, "filedown").clear()# 输入下载文件地址driver.find_element(By.ID, "filedown").send_keys("http://10.11.12.249:8080/cp/files/1.ofd")# 清空水印内容driver.find_element(By.ID, "showWaterMark").clear()# 输入水印内容driver.find_element(By.ID, "showWaterMark").send_keys("我是水印内容")# 清空打印分数driver.find_element(By.ID, "printNum").clear()# 输入打印分数driver.find_element(By.ID, "printNum").send_keys("1")# 点击是否双面打印下拉框driver.find_element(By.ID, "sidedprint").click()# 选择下拉框第一个值driver.find_element(By.XPATH, "//body/select/option[1]").click()sleep(1)# 点击执行以上参数driver.find_element(By.CLASS_NAME, "function_btn").click()sleep(2)# 显示文件元素显示等待最长时间10秒WebDriverWait(driver, 10).until(lambda x: len(driver.find_elements_by_id("pageContainer1")) == 1)try:var = driver.find_element(By.ID, "pageContainer1")print("测试成功:文件已显示")except:print("11111111")driver.quit()# 阅读测试页测试用例def test_03(self):driver = self.driverdriver.get(self.baseurl3)sleep(5)# 清空下载文件地址driver.find_element(By.ID, "filedown").clear()# 输入下载文件地址driver.find_element(By.ID, "filedown").send_keys("http://10.11.12.249:8080/cp/files/1.ofd")# 展示到第几页driver.find_element(By.ID, "maxpage").send_keys(2)# 是否打印driver.find_element(By.ID, "isPrint").click()driver.find_element(By.XPATH, "//*[@id='isPrint']/option[1]").click()# 是否下载driver.find_element(By.ID, "isDownload").click()driver.find_element(By.XPATH, "//*[@id='isDownload']/option[1]").click()sleep(1)# 点击执行以上参数driver.find_element(By.CLASS_NAME, "function_btn").click()sleep(2)# 显示文件元素显示等待最长时间10秒WebDriverWait(driver, 10).until(lambda x: len(driver.find_elements_by_id("pageContainer1")) == 1)try:var = driver.find_element(By.ID, "pageContainer1")print("测试成功:文件已显示")except:print("测试失败:文件未显示")driver.quit()if __name__ == "__main__":test1 = unittest.defaultTestLoader.loadTestsFromTestCase(Test01)suite = unittest.TestSuite(test1)filepath = 'D:\GZ\python\webz\report'runner = HTMLTestRunner(title="带截图的测试报告",description="测试页测试报告",stream=open('../report/test_report.html', 'wb'),verbosity=2,# save_last_try=True,# retry=3)runner.run(suite)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。