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 现在似乎大家都一致认同一个项目应该有足够多的测试来保证功能的正常运作,而且这些此处的‘测试’特指自动化测试:并且大多数人会认为如果还有哪个项目依然采用人工 ...
随机推荐
- Linux下搭建tomcat集群全记录
(转) Linux下搭建tomcat集群全记录 2011-10-12 10:23 6133人阅读 评论(1) 收藏 举报 tomcatlinuxapacheinterceptorsession集群 1 ...
- java 获取路径与各文件目录的…
java 获取路径 博客分类: MyJava JavaJSPWebTomcat编程 转至:http://geeksun.iteye.com/blog/356339 (1).request.getRe ...
- 为什么选择Netty
支持高并发访问 比核心 Java API 更好的吞吐量,较低的延时资源消耗更少,这个得益于共享池和重用减少内存拷贝 https://baike.baidu.com/item/Netty/1006162 ...
- linux系统下file使用的magic文件格式说明
magic 本手册是file命令所使用的magic文件的格式说明文档,版本是5.04. file命令用于识别文件类型,其他检测,检测文件内容中是否符合 'magic模式',也就是规则. /usr/sh ...
- java接口中成员变量和方法的默认修饰符(转)
Java的interface中,成员变量的默认修饰符为:public static final 所以我们在interface中定义成员变量的时候,可以 1:public static final St ...
- android studio 改包名
使用Android studio有一段时间了,但是每次修改包名的时候都是用一种简单粗暴的方式,那就是新建一个想要的包名,然后直接拖拽. 但是这样有个不好的地方就是每次都要去修改manifest.xml ...
- mac 修改mysql 密码, navicat 连接失败原因
1.cd /usr/local/mysql/bin/ 2.sudo su输入之后会要求输入你的计算机密码,输入的时候是什么都不显示的,输完后回车 3. ./mysqld_safe --skip-gra ...
- null is not an object (evaluating 'Picker._init')
安装完react-native-picker后,init出现报错,其实是原生配置还没完全生效,重启项目就可以了
- mac mysql 编码配置
mac mysql 编码配置 (mysql目录下没有my.cnf) 想要修改编码发现自己的/usr/local/mysql/support-files里面根本没有my.cnf 安装方式是去mysql官 ...
- Codeforces Round #432 (Div. 2, based on IndiaHacks Final Round 2017) D
Arpa has found a list containing n numbers. He calls a list bad if and only if it is not empty and g ...