使用过一段时间的Robot Framework测试框架,测试之前需要先搭环境,需要安装的东西很多,这一点个人有些排斥。

每一个测试内容对应一个Test_Case,Robot有自己语法格式,如判断、循环。实际使用中发现导入自定义Lib莫名报错,很是头疼。

脚本编写完成,可以在UI界面运行,也可以使用命令行pybot + Robot项目运行。

Robot最大的优点,自动生成html格式的测试报告,免去脚本中一大堆测试结果处理、保存动作。缺点上文已描述,需要搭建环境,自定义语法个人很排斥。

于是,这几天在网上寻找测试报告模板,最终觉得HTMLTestRunner非常不错。

一、下载、配置

1.下载HTMLTestRunner.py文件:地址http://tungwaiyip.info/software/HTMLTestRunner.html

2.将该文件保存在python安装路径下的lib文件夹中。

二、使用

1.基本用法

1.1 import unittest
1.2 定义一个继承自unittest.TestCase的测试用例类
1.3 定义setUp和tearDown,在每个测试用例前后做一些辅助工作。
1.4 定义测试用例,名字以test开头。
1.5 一个测试用例应该只测试一个方面,测试目的和测试内容应很明确。主要是调用assertEqual、assertRaises等断言方法判断程序执行结果和预期值是否相符。
1.6 调用unittest.main()启动测试
1.7 如果测试未通过,会输出相应的错误提示。如果测试全部通过则不显示任何东西,这时可以添加-v参数显示详细信息。

2.unittest模块的常用方法

assertEqual(a, b)     a == b      
assertNotEqual(a, b)     a != b      
assertTrue(x)     bool(x) is True      
assertFalse(x)     bool(x) is False      
assertIs(a, b)     a is b     2.7
assertIsNot(a, b)     a is not b     2.7
assertIsNone(x)     x is None     2.7
assertIsNotNone(x)     x is not None     2.7
assertIn(a, b)     a in b     2.7
assertNotIn(a, b)     a not in b     2.7
assertIsInstance(a, b)     isinstance(a, b)     2.7
assertNotIsInstance(a, b)     not isinstance(a, b)     2.7

3.测试用例

#coding:utf-8
import unittest
import time
import randomimport HTMLTestRunnerclass Test_Class(unittest.TestCase):def setUp(self):self.seq = range(10)def test_shuffle(self):  # make sure the shuffled sequence does not lose any elements  random.shuffle(self.seq)  self.seq.sort()  self.assertEqual(self.seq, range(10))  # should raise an exception for an immutable sequence  print("test_shuffle")self.assertRaises(TypeError, random.shuffle, (1,2,3))  def test_choice(self):  element = random.choice(self.seq)  print("test_choice")self.assertTrue(element in self.seq)  def test_sample(self):  with self.assertRaises(ValueError):  random.sample(self.seq, 20)  for element in random.sample(self.seq, 5):  self.assertTrue(element in self.seq)def sun(self):self.temp = 5 + 6print("sun test")self.assertEqual(self.temp,11)if __name__ == "__main__":testsuite = unittest.TestSuite()   #    添加测试用例到测试集中testsuite.addTest(Test_Class("test_shuffle"))testsuite.addTest(Test_Class("test_choice"))testsuite.addTest(Test_Class("test_sample"))testsuite.addTest(Test_Class("sun"))#   生成测试报告文件filename = 'D:\\result.html'fp = file(filename, 'wb')runner = HTMLTestRunner.HTMLTestRunner(stream=fp,title='测试结果',description='测试报告.')
#    runner = unittest.TextTestRunner()runner.run(testsuite)

  运行后测试结果会生成为D:\\result.html 的文件,当然测试结果的文件名称你可以随意命名,或者根据时间自动生成。直接打开后就可以看到测试结果。

三、测试报告

  

四、使用说明

1.test_case中print信息出现在report中,运行批处理窗口没有打印信息。

2.Python shell中运行同样如此

但还有一个问题,Python shell中运行时未产生测试报告,测试报告文件大小为0

转载于:https://www.cnblogs.com/hester/p/4703054.html

python下selenium测试报告整合相关推荐

  1. python下selenium模拟浏览器常见操作

    本文主要记录下selenium的常见操作,如定位具体元素的不同方法.在具体元素内循环.提取文本等.具体代码如下: # -*- coding: utf-8 -*- ''' Created on 2019 ...

  2. Python下Selenium PhantomJs设置header的方法

    2019独角兽企业重金招聘Python工程师标准>>> 代码 话不多说,直接上代码 from selenium import webdriver from selenium.webd ...

  3. Selenium UI自动化测试(四)Python+Unittest+HTMLTestRunner测试报告—百度hao123实例

    Python+Unittest+HTMLTestRunner测试报告-百度个人中心实例 环境配置:https://blog.csdn.net/sevensolo/article/details/100 ...

  4. python下的selenium和PhantomJS

    一般我们使用python的第三方库requests及框架scrapy来爬取网上的资源,但是设计javascript渲染的页面却不能抓取,此时,我们使用web自动化测试化工具Selenium+无界面浏览 ...

  5. [python爬虫] Selenium定向爬取海量精美图片及搜索引擎杂谈

    我自认为这是自己写过博客中一篇比较优秀的文章,同时也是在深夜凌晨2点满怀着激情和愉悦之心完成的.首先通过这篇文章,你能学到以下几点:         1.可以了解Python简单爬取图片的一些思路和方 ...

  6. python自动化--selenium

    python自动化–selenium 一. 思想 selenium 中多个 WebDriver 实例对应一个 chromedriver 进程,一个 chromedriver 进程管理多个 chrome ...

  7. python selenium脚本_怎样开始写第一个基于python的selenium脚本

    1.下载并安装python(http://www.python.org/geti/). 2.安装selenium(http://pypi.python.org/pypi/selenium)下载并解压缩 ...

  8. 使用Python在Selenium WebDriver中获取WebElement的HTML源代码

    我正在使用Python绑定来运行Selenium WebDriver. from selenium import webdriver wd = webdriver.Firefox() 我知道我可以抓住 ...

  9. [Python爬虫] Selenium+Phantomjs动态获取CSDN下载资源信息和评论

    前面几篇文章介绍了Selenium.PhantomJS的基础知识及安装过程,这篇文章是一篇应用.通过Selenium调用Phantomjs获取CSDN下载资源的信息,最重要的是动态获取资源的评论,它是 ...

最新文章

  1. Java项目:前后端分离疫情防疫平台设计和实现(java+springmvc+VUE+node.js+mybatis+mysql+springboot+redis+jsp)
  2. 单片机干嘛的?嵌入式是单片机吗?
  3. 贪污经费,撤销院士称号!
  4. 消费者行为模型_市场调查消费者行为研究模型
  5. SharePoint 2010: 设计BCS工作流
  6. Redis面试题详解
  7. 204787 ,194787 |0001 1131 0001 4226 7035 ![2480 ]
  8. linux系统监控和进程管理
  9. 《淘宝网开店 SEO 推广 营销 爆款 实战200招》——1.3 网上开店的热门行业有哪些...
  10. 正确理解springboot的常用注入方式
  11. 使用timerfd实现定时器功能
  12. oracle 查看数据库启动时间同步,oracle rac CTSS时钟同步模式转换为NTP同步模式的实施记录(4)...
  13. 手机如何连接远程桌面?
  14. Unity 增加2D游戏的打击感笔记
  15. 腾讯qq的授权管理查看页面
  16. js 浏览器窗口活跃监听
  17. 信用风险计量模型简述
  18. FusionCharts基本使用
  19. 五、DML(数据操纵语句)
  20. 【集训DAY1】Dwarves line up【线段树】

热门文章

  1. python-1day
  2. TFBOY 养成记 一些比较好多文章。
  3. Android-Ant自动编译打包android项目 -- 2 ----签名与渠道包
  4. P1145 约瑟夫 W(模拟)
  5. codeforces 1097 Hello 2019
  6. Teradata大数据新动作:通过统一数据架构拥抱开源
  7. inline-block 和 float 的区别
  8. [QTP] 描述性编程
  9. 【博客征文】畅谈百度轻应用初体验
  10. 在WPF中显示动态GIF(转)