Python + selenium之unitest(2)
unittest单元测试框架中重要的概念:
1.Test Case
一个Test Case实例就是一个测试用例。在一个完整的测试流程中,包括测试前准备环境的搭建(setUp),实现测试过程的代码(run)以及测试后测试环境的还原(tearDown)。单元测试(unittest)本质就是:一个测试用例就是一个完整的测试单元,通过运行这个测试单元,可以对某个功能模块进行验证。
2.Test Suite
一个功能的验证往往需要多个测试用例,可以多个测试用例集合在一块执行,于是就产生了测试套件TestSuite的概念,Test Suite用来组装单个测试用例,可以通过addTest加载TestCase加到TestSuite中从而F返回一个TestSuite实例。
3.Test Runner
测试的执行也是单元测试中非常重要的一个概念。一般单元测试框架中都会提供丰富的执行策略和执行结果。在unittest单元测试框架中,通过TextTestRunner类提供的run()方法来执行test suite/test case .
test runner()可以使用图形界面,文本界面或者返回一个特殊的值等方式来表示测试执行的结果。
4.Test Fixture
对于一个测试用例环境的搭建和销毁,就是一个fixture,通过覆盖TestCase的setUp()和tearDown()方法来实现。比如在一个测试用例中需要访问数据库,那么就可以在setUp()中通过建立数据库连接来进行初始化,在tearDown()中清空数据库产生的数据,然后关闭连接。
注意:tearDown的过程很重要,要为下一个test case留下一个干净的环境。
from calculator import Count
import unittest class TestCount (unittest.TestCase):
def setUp(self):
print("test start") def test_add(self):
j = Count (2, 4)
self.assertEqual (j.add (), 6) def test_add2(self):
i = Count (2,9)
self.assertEqual (i.add (), 11) def tearDown(self):
print("test end") if __name__ == '__main__':
# unittest.main ()
suite = unittest.TestSuite()
suite.addTest(TestCount('test_add2'))
# suite.addTest (TestCount ('test_add'))
runner = unittest.TextTestRunner()
runner.run(suite)
从上可以看出:setUp和tearDown作用于测试用例的开始与结束。
Python + selenium之unitest(2)的更多相关文章
- Python + selenium之unitest(1)
单元测试负责对最小的软件设计单元(模块)进行验证,它使用软件设计文档中对模块的描述作为指南,对重要的程序进行测试以发现模块中的错误. 下面演示不用测试框架的单元测试: # 计算器类 class Cou ...
- python+selenium 浏览器的问题
以前用selenium调用firefox是不需要驱动的,最近安装了python3.52+最新的firefox 发现调不起来了 搜索以后发现Firefox 47+需要搞个firefox的驱动 gecko ...
- 一次完整的自动化登录测试-基于python+selenium进行cnblog的自动化登录测试
Web登录测试是很常见的测试!手动测试大家再熟悉不过了,那如何进行自动化登录测试呢!本文作者就用python+selenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动 ...
- Python + Selenium 实现登录Office 365
最近捡起之前用的Python + Selenium实现工作中需要的登录Office 365功能.(吐槽:国内网络真是卡,登录Office 365实属不易.另外Selenium这样的网站都要墙,无法理解 ...
- python+selenium+Robot
准备工作: 1.下载python2.7 http://python.org/getit/ 2.下载下载setuptools [python 的基础包工具] 可以帮助我们轻松的下载,构建,安装,升级,卸 ...
- python+selenium运行报错UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)
使用python+selenium运行自动化脚本时,打印某一段文字出现UnicodeEncodeError: 'ascii' codec can't encode characters in posi ...
- Functional testing - python, selenium and django
Functional testing - python selenium django - Source Code : from selenium import webdriverfrom sele ...
- python selenium自动化(二)自动化注册流程
需求:使用python selenium来自动测试一个网站注册的流程. 假设这个网站的注册流程分为三步,需要提供比较多的信息: 在这个流程里面,需要用户填入信息.在下拉菜单中选择.选择单选的radio ...
- 使用python selenium进行自动化functional test
Why Automation Testing 现在似乎大家都一致认同一个项目应该有足够多的测试来保证功能的正常运作,而且这些此处的‘测试’特指自动化测试:并且大多数人会认为如果还有哪个项目依然采用人工 ...
随机推荐
- (转)apache2.2.x+tomcat7.0.x集群+…
apache http server下载地址 http://httpd.apache.org/download.cgi#apache22 这里下载的是httpd-2.2.21-win32-x86-op ...
- SpringBoot使用拦截器无效
附上代码: public class WendaWebConfiguration extends WebMvcConfigurerAdapter { @Autowired PassportInterc ...
- ADT-Bundle--Android开发环境快速搭建
http://blog.csdn.net/aizquan/article/details/8974750
- java面试一定会遇到的56个面试题
1.问题:如果main方法被声明为private会怎样? 答案:能正常编译,但运行的时候会提示”main方法不是public的”. 2.问题:Java里的传引用和传值的区别是什么? 答案:传引用是指传 ...
- Solr 6.7学习笔记(04)-- Suggest
当我们使用baidu或者Google时,你输入很少的字符,就会自动跳出来一些建议选项,在Solr里,我们称之为Suggest,在solrconfig.xml里做一些简单的配置,即可实现这一功能.配置如 ...
- 洛谷P3757 [CQOI2017]老C的键盘
传送门 首先可以直接把整个序列建成一个完全二叉树的结构,这个应该都看得出来 然后考虑树形dp,以大于为例 设$f[i][j]$表示$i$这个节点在子树中排名第$j$位时的总方案数(因为实际只与相对大小 ...
- Vue多环境配置
Vue多环境配置 大家都知道,使用vue-cli脚手架生成的Vue项目只有开发环境和生产环境,然而在实际开发中,用到的不止这些环境,还包括测试环境,准生产环境等等.所以需要自己添加没有的环境. 以测试 ...
- WC-第二次作业
WordCount 第二次作业 码云地址:https://gitee.com/lgcj1218/WordCount/tree/master 一.解题思路 本次作业采用的c#语言 按功能分为了三个类 , ...
- thinkphp 2.1代码执行及路由分析
Dispatcher.class.php这个文件中是url路由,由于第一次正式看路由那块,所以就从头开始一行一行看把. 首先是dispatch函数 是37行到140行 这个函数是做映射用,把url映射 ...
- 前端JavaScript(3)-关于DOM操作的相关案例,JS中的面向对象、定时器、BOM、位置信息
小例子: 京东购物车 京东购物车效果: 实现原理: 用2个盒子,就可以完整效果. 先让上面的小盒子向下移动1px,此时就出现了压盖效果.小盒子设置z-index压盖大盒子,将小盒子的下边框去掉,就可以 ...