<自动化测试>之<unittest框架使用1>
要说单元测试和UI自动化之间的是什么样的一个关系,说说我个人的一些心得体会吧,我并没有太多的这方面经验,由于工作本身就用的少,还有就是功能测试点点对于我这种比较懒惰的人来说,比单元测试复杂...思考单元测试的处理逻辑和UI的对应关系,根据分层自动化的测试思想, UI>>接口>>最底层就是单元,对于单元级别的自动化测试, 是白盒测试范畴, 用一段代码去测试一段代码, 而我们则是需要利用单元测试框架的一些组织驱动单元来编写我们的自动化测试脚本, 而unittest是python自带的单元测试框架,我们不必深究,我们只是利用unittest封装好的一部分规则方法,去填充你的脚本
# coding: utf-8
'''
@author : hx
@desc : 重点学习unittest的用法
注意setUp/setUpClass, tearDown/tearDownClass 的区别
1.setUp:每个测试函数运行前运行
2.tearDown:每个测试函数运行完后执行
3.setUpClass:必须使用@classmethod装饰器,所有test运行前运行一次
4.tearDownClass:必须使用@classmethod装饰器,所有test运行后运行一次 unittest 还有一些不常用的装饰器:
@unittest.skip(reason):无条件跳过测试,reason描述为什么跳过测试
@unittest.skipif(condititon,reason):condititon为true时跳过测试
@unittest.skipunless(condition, reason):condition 不是true时跳过测试
@unittest.expectedFailure:如果test失败了,这个test不计入失败的case数目
''' import unittest
import time
from selenium import webdriver class SearchTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls.driver = webdriver.Chrome()
cls.driver.implicitly_wait(30)
cls.driver.maximize_window()
cls.base_url = 'http://www.baidu.com/'
cls.driver.get(cls.base_url) cls.search_text = cls.driver.find_element_by_id('kw')
cls.search_btn = cls.driver.find_element_by_id('su') def test_search_btn_displayed(self):
self.assertTrue(self.search_btn.is_displayed())
self.assertTrue(self.search_btn.is_enabled()) def test_search_text_maxlength(self):
max_length = self.search_text.get_attribute('maxlength')
self.assertEqual('', max_length) def test_search(self):
self.search_text.clear()
self.search_text.send_keys('博客园传神')
self.search_btn.click() time.sleep(4)
title = self.driver.title
self.assertEqual(title, u'博客园传神_百度搜索') @classmethod
def tearDownClass(cls):
cls.driver.quit() if __name__ == '__main__':
unittest.main(verbosity = 3)
<自动化测试>之<unittest框架使用1>的更多相关文章
- 彻底弄清c标准库中string.h里的常用函数用法
在我们平常写的c/c++程序,一些算法题中,我们常常会用到c标准库中string.h文件中的函数,这些函数主要用于处理内存,字符串相关操作,是很有用的工具函数.而且有些时候,在笔试或面试中也会出现让你 ...
- 走进C标准库(8)——"string.h"中函数的实现相关字符串操作函数
我的strcat: char *strcat(char *dest,char *src) { char * reval = dest; while(*dest) dest++; while(*src) ...
- 走进C标准库(3)——"stdio.h"中的getc和ungetc
接前文. 再来看看getc和ungetc的实现.在看这两个函数的实现之前,我们先来想一想这两个函数分别需要做的工作. int getc(FILE *stream) 说明:函数getc从stream指向 ...
- 走进C标准库(2)——"stdio.h"中的fopen函数
其他的库文件看起来没有什么实现层面的知识可以探究的,所以,直接来看stdio.h. 1.茶余饭后的杂谈,有趣的历史 在过去的几十年中,独立于设备的输入输出模型得到了飞速的发展,标准C从这个改善的模型中 ...
- 走进C标准库(1)——assert.h,ctype.h
默默觉得原来的阅读笔记的名字太土了,改了个名字,叫做走进C标准库. 自己就是菜鸟一只,第一次具体看C标准库,文章参杂了对<the standard C library>的阅读和对源码的一些 ...
- C 非标准库(conio.h)
所谓的 C 标准库(C standard library),是指在 ISO C 或者 POSIX 标准中定义的: POSIX is a superset(超集) of the standard C l ...
- 走进C标准库(4)——"stdio.h"中的putc
花了点时间把园子弄得好看了点,现在继续. 函数名: putc 功 能: 输出一字符到指定流中 用 法: int putc(int ch, FILE *stream); #define _putc_ ...
- 走进C标准库(5)——"stdio.h"中的其他部分函数
函数介绍来自:http://ganquan.info/standard-c/ 函数名: freopen 功 能: 替换一个流 用 法: FILE *freopen(char *filename, ...
- 走进C标准库(6)——"string.h"中函数的实现memchr
我写的memchr: void *memchr(const void *buf, char ch, unsigned count){ unsigned ; while(*(buf++) != ch & ...
- 走进C标准库(7)——"string.h"中函数的实现memcmp,memcpy,memmove,memset
我的memcmp: int memcmp(void *buf1, void *buf2, unsigned int count){ int reval; while(count && ...
随机推荐
- myeclipse svn重新定位 本地文件 svn 重新定位
我们在用工具myeclipse开发项目时,当资源库存储空间不够时,我们就需要添加资源库,涉及到我们切换项目资源库,下面就介绍一下svn资源库重新定位步骤 1,window到show view到othe ...
- 使用Echarts中遇到值得记录的小案例(一)
需求部分 在开发项目的时候遇到一个需求,就是如何保证echarts图表里至少显示一个图例的数据(也就是最后一个图例不能变成unselected的状态)下图是最初加载时的画面 不想出现图例都被点击取消导 ...
- 因果卷积(causal)与扩展卷积(dilated)
因果卷积(causal)与扩展卷积(dilated)之An Empirical Evaluation of Generic Convolutional and Recurrent Networks f ...
- mysql 查询结果增加自动递增的一列,排名,排序
mysql中有时候需要对查询的结果排序,比如根据成绩获取排名信息等,需要增加一个自增的列,也就是排名信息 ; as sortid FROM a; 如果不支持写两条sql,可以用以下写法合成一条sq ...
- Git 内部原理
首先要弄明白一点,从根本上来讲 Git 是一个内容寻址(content-addressable)文件系统,并在此之上提供了一个版本控制系统的用户界面. 马上你就会学到这意味着什么. git objec ...
- ctDNA的分析理论上也可以为多样性的肿瘤
导语 肺腺癌(LUAD)和肺鳞癌(LUSC)是最常见的非小细胞肺癌类型.循环肿瘤DNA(ctDNA)是由凋亡或坏死的肿瘤细胞释放并在血液中循环的小片段DNA.与常规肿瘤活检相比,ctDNA检测具有一定 ...
- win10 命令重置 管理员密码
重置win10系统管理员的方法有不少,这里给大家介绍的一种用Windows PowerShell命令重置win10管理员密码方法教程,感兴趣的用户,可以学习一下. 操作过程: 1.点击左下角的开始菜单 ...
- Dubbo 系列(07-4)集群容错 - 集群
BDubbo 系列(07-4)集群容错 - 集群 [toc] Spring Cloud Alibaba 系列目录 - Dubbo 篇 1. 背景介绍 相关文档推荐: Dubbo 集群容错 - 实战 D ...
- input只读效果
有两种方式可以实现input的只读效果:disabled 和 readonly. 自然两种出来的效果都是只能读取不能编辑,可是两者有很大不同. Disabled说明该input无效,及其value不会 ...
- 厉害了,Java EE 再次更名为 Jakarta EE
来自:开源中国 https://www.oschina.net/news/108108/java-ee-rename-as-jakarta-ee Eclipse基金会最近对 Java EE 标准的每个 ...