(引用) unittest测试驱动之执行测试(三)
转载:http://www.wtoutiao.com/p/ydeoyY.html
在unittest的模块中,提供了TestRunner类来进行运行测试用例,在实际的应用中,经常使用的是TextTestRunner类,执行后,会已文字的形式打印出测试结果,见如下的测试执行的代码:
#coding:utf-8
from seleniumimport webdriver
import unittest
classbaiduTest(unittest.TestCase):
def setUp(self):
self.driver=webdriver.Firefox()
self.driver.maximize_window()
self.driver.get('http://www.baidu.com')
def testBaiduTitle(self):
self.assertIn(u'百度一下,你就知道',self.driver.title)
def testBaiduTitle2(self):
self.assertNotEqual(u'bing下,你就知道',self.driver.title)
def tearDown(self):
self.driver.close()
if__name__=='__main__':
suite=unittest.TestSuite()
suite.addTest(baiduTest('testBaiduTitle'))
suite.addTest(baiduTest('testBaiduTitle2'))
#执行用例
runner=unittest.TextTestRunner()
runner.run(suite)
执行后,生成如下的测试结果,见截图:
一、unittest.skip()
unittest.skip('注释')是忽略此测试,但是得写忽略该case的原因,如在一个自动化的测试模块中,由于某些功能取消,那么对应的case也就不再执行,可以添加unittest.skip("忽略该测试用例"),见下面的代码示例,忽略了测试百度url的测试用例,见测试代码:
#coding:utf-8
from seleniumimport webdriver
importunittest,sys,time
reload(sys)
sys.setdefaultencoding('utf-8')
classBaiduTest(unittest.TestCase):
def setUp(self):
self.driver=webdriver.Firefox()
self.driver.maximize_window()
self.driver.get('http://www.baidu.com')
self.driver.implicitly_wait(30)
def testTitle(self):
self.assertEqual(u'百度一下,你就知道',self.driver.title)
@unittest.skip('Ignore this test case')
def testUrl(self):
self.assertEqual('https://www.baidu.com/',self.driver.current_url)
def tearDown(self):
self.driver.quit()
@staticmethod
def suite():
suite=unittest.TestSuite(unittest.makeSuite(BaiduTest))
return suite
if__name__=='__main__':
unittest.TextTestRunner(verbosity=2).run(BaiduTest.suite())
见执行后的结果,跳过了testUrl测试用例的执行,见截图:
二、unittest.expectedFailure
unittest.expectedFailure指的是期望失败,见下面的测试代码。期望testUrl测试用例执行失败:
#coding:utf-8
from seleniumimport webdriver
importunittest,sys,time
reload(sys)
sys.setdefaultencoding('utf-8')
classBaiduTest(unittest.TestCase):
def setUp(self):
self.driver=webdriver.Firefox()
self.driver.maximize_window()
self.driver.get('http://www.baidu.com')
self.driver.implicitly_wait(30)
def testTitle(self):
self.assertEqual(u'百度一下,你就知道',self.driver.title)
@unittest.expectedFailure
def testUrl(self):
self.assertEqual('http://www.baidu',self.driver.current_url)
def tearDown(self):
self.driver.quit()
@staticmethod
def suite():
suite=unittest.TestSuite(unittest.makeSuite(BaiduTest))
return suite
if__name__=='__main__':
unittest.TextTestRunner(verbosity=2).run(BaiduTest.suite())
见执行后的测试结果,会显示出来期望的结果是成功还是失败,见截图:
(引用) unittest测试驱动之执行测试(三)的更多相关文章
- jmeter接口自动化-通过csv文件读取用例并执行测试
最近在公司测试中经常使用jmeter这个工具进行接口自动化,简单记录下~ 一.在csv文件中编写好用例 首先在csv文件首行填写相关参数(可根据具体情况而定)并编写测试用例.脚本可通过优先级参数控制执 ...
- Java+Selenium 3.x 实现Web自动化 - Maven打包TestNG,利用jenkins执行测试
1. Jenkins本地执行测试 or 服务器端执行测试 测试代码计划通过jenkins执行时,通过网上查询各种教程,大多数为本地执行测试,由此可见,本地执行是大多数人的选择. 经过探讨,最终决定采用 ...
- LTP--linux稳定性测试 linux性能测试 ltp压力测试 内核更新 稳定性测试
LTP--linux稳定性测试 linux性能测试 ltp压力测试 zhangzj1030关注14人评论33721人阅读2011-12-09 12:07:45 说明:在写这篇文章之前,本人也不曾了 ...
- unittest对单个测试类的多种测试执行方法总结
基于unittest测试框架编写的测试脚本,一般单个测试类下会有多个测试方法,unittest也提供多种测试执行方式,下面就不同方式或者需求一一实操并说明: 一.使用unittest下main()方法 ...
- python调用HTMLTestRunner+unittest实现一次执行多个测试类,并生成与每个测试类对应的测试报告,具体看代码,附上整个project代码
python自动化框架雏形,根据自己需要封装:ui自动化,接口自动化均可适用,python版本为python3.x,不要问我为什么不用python2.x,附上整个project代码:http://fi ...
- {MySQL的逻辑查询语句的执行顺序}一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析
MySQL的逻辑查询语句的执行顺序 阅读目录 一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析 一 SEL ...
- unittest 执行测试脚本输出测试报告
import unittestimport HTMLTestRunnertest as HTMLTestRunner#获取路径path = './'#创建测试套件,读取测试脚本suite = unit ...
- python+selenium自动化软件测试(第10章):测试驱动TDD
测试驱动开发模式,要求开发在写业务代码的时候,先写出测试代码,同时单元测试例子决定了如何来写产品的代码,并且不断的成功的执行编写的所有的单元测试例子,不断的完善单元测试例子进而完善产品代码, 这样随着 ...
- python实例编写(6)--引入unittest测试框架,构造测试集批量测试(以微信统一管理平台为例)
---恢复内容开始--- 一.python单元测试实例介绍 unittest框架又叫PyUnit框架,是python的单元测试框架. 先介绍一个普通的单元测试(不用unittest框架)的实例: 首先 ...
随机推荐
- Android学习五:Content Provider 使用
1ContentProvider相关知识1.1在安卓应用中,通过文件方式对外共享数据,需要进行文件操作读写数据:采用sharedpreferences共享数据,需要使用sharedpreference ...
- Intellij IDEA连接Git@OSC
错误提示:fatal: remote origin already exists. 解决办法:$ git remote rm origin http://my.oschina.net/lujianin ...
- 字符数组,字符指针,字符串常量,以及sizeof的一些总结
1.以字符串形式出现的,编译器都会为该字符串自动添加一个\0作为结尾 如在代码中写"abc",编译器帮你存储的是"abc\0". 2.数组的类型是由该数组所存放 ...
- 【转载】Securing Kibana + Elasticsearch
from: http://tom.meinlschmidt.org/2014/05/19/securing-kibana-elasticsearch/ After some successful se ...
- U盘安装ubuntu server 12.04的问题检测不到CDROM的解决
U盘安装ubuntu server 12.04的问题检测不到CDROM的解决 ========================== 我是u盘安装ubuntu 14 64Bit 也是出现同样的问题 用u ...
- Navicat链接Oracle提示ORA-12737
ORA-12737: Instant Client Light: unsupported server character set string Cause: The character set sp ...
- 63. Swap Nodes in Pairs && Rotate List && Remove Nth Node From End of List
Swap Nodes in Pairs Given a linked list, swap every two adjacent nodes and return its head. For exam ...
- I2C控制器的Verilog建模之三(完结版)
前言:终于到了测试篇,不过悲剧了一下.按照之前<二>里面的思路,在顶层用一个复用器驱动读写独立模块的I2C总线确实失败.虽然综合过去了,不过警告里已经说明:底层的2个原本是inout三态口 ...
- Android如何使用NoHttp
NoHttp 源码及Demo托管在Github欢迎大家Star: https://github.com/yanzhenjie/NoHttp NoHttp是专门做Android网络请求与下载的框架. N ...
- C#中抽象类和接口
下面是我做的测试: using System; using System.Collections.Generic; using System.Linq; using System.Text; usin ...