1、unittest框架里的常用断言方法:用于检查数据。

(1)assertEqual(x,y) 检查两个参数类型相同并且值相等。
(2)assertTrue(x) 检查唯一的参数值等于True
(3)assertFalse(x) 检查唯一的参数值等于False
(4)assertIn(x,y) 检查x被包含在y里

(5)assertAlmostEqual(x,y,z) 检查指定精度的两个浮点数相等,第三个参数z代表精确到小数点后几位(是可选参数)。

2、selenium中获得界面上的实际数据并检查它们:

(1)获得当前浏览器窗口里的当前网页的标题(self.driver.title)来检查,主要用于检查网页是否跳转到目标页。
示例:
# 检查跳转到标题包含“系统提示”的网页
t1=self.driver.title
self.assertIn("系统提示",t1)
sleep(8)
# 检查自动跳转到标题以“用户中心”开头的网页
t2=self.driver.title
b1=t2.startswith("用户中心")
self.assertTrue(b1)
(2)检查当前浏览器窗口里的当前网页源代码(driver.page_source)里包含某文本,一般用于网页出现时间较短,无法调查元素的定位条件时检查网页里的文本信息。
示例:
# 检查网页源代码里包含“用户名或密码错误”
p1=self.driver.page_source
self.assertIn("用户名或密码错误",p1)
(3)检查指定元素里文本等于某值:定位到元素后,使用元素对象的text属性就可以获得该元素的开始和结束标记之间的文本,然后就可以检查文本是否正确。
示例:
# 检查默认用户名数据是否是“匿名用户”
lie2=self.driver.find_element(By.XPATH,"//tr[1]/td[2]")
t1=lie2.text# <td>匿名用户</td>
self.assertEqual("匿名用户",t1)
一、其他数据检查
1.检查下拉列表里的默认被选中的选项:定位select标记的元素,然后封装Select类型对象,
first_selected_option属性可以获得第一个被选中的选项(也就是默认选项),
然后text属性获得option开始和结束标记之间的文本,最后就可以断言方法来检查该文本。
示例:
from selenium.webdriver.support.select import Select
# 检查默认的出生日期里的年是1960
y=self.driver.find_element(By.NAME,"birthdayYear")
s1=Select(y)
t3=s1.first_selected_option.text
self.assertEqual("1960",t3)
2.检查单选按钮或复选框是否是已经选中的状态:先定位单选按钮或复选框的元素,然后调用元素对象的
is_selected方法(无参的方法),就可以接受到该方法返回来的状态值(布尔值),最后使用assertTrue检查
该值代表已经选中,或使用assertFalse检查该值代表没有选中。
示例:
# 检查性别中“保密”单选按钮是默认已经选中的
baomi=self.driver.find_element(By.NAME,"sex")
b2=baomi.is_selected()
self.assertTrue(b2)
3.检查文本框里的内容:先定位到文本框后,然后使用页面元素对象的get_attribute("value")方法,参数是
value代表html语法里的标记的value属性,得到这个属性值就代表文本框里的当前内容,然后就可以检查该文本内容。
注意:文本框不能使用.text来获得内容,因为文本框的文本不是记录在开始和结束标记之间的。
示例:
# 检查电子邮件地址文本框里的内容是lisi@163.com
dian=self.driver.find_element(By.NAME,"email")
v1=dian.get_attribute("value")
self.assertEqual("lisi@163.com",v1)
4.检查弹出框弹出来(出现在网页上一层):使用Python语言的异常处理机制的语法,try……except……负责尝试
做某件事,一旦抛出指定的异常就进行相应的异常处理。try语句块里写切换到弹出框的代码(self.driver.switch_to.alert),
在except语句块里写NoAlertPresentException代表弹出框没有出现,设计一个函数用来判断是否弹出框提示框,当没有出现的时候,
让它返回False,出现的话返回True,最后在测试函数中调用这个自定义函数,对返回值做是否等于True的检查。
示例:
from selenium.common.exceptions import NoAlertPresentException
# 自定义函数:注意函数名不要以test开头,名称自定义
# 函数名:is_alert_present
# 功能:用于判断是否出现弹出框(弹出框是否弹出来)
# 参数:无
# 返回值:判断结果(bool类型)
def is_alert_present(self):
try:
self.driver.switch_to.alert
except NoAlertPresentException:
return False
return True
def test_2(self):
self.driver.get("http://localhost/upload/index.php")
sou=self.driver.find_element(By.CLASS_NAME,"go")
sou.click()
sleep(1)
# 检查弹出框是否弹出来
b=self.is_alert_present()
self.assertTrue(b)
5.检查弹出框里的信息是否正确:切换到弹出框,然后对Alert型对象使用text属性值来做检查。
建议:最后调用accept或dismiss函数把弹出框给关闭。
示例:
# 检查弹出框信息并关闭它
a=self.driver.switch_to.alert
self.assertEqual("请输入搜索关键词!",a.text)
a.accept()

练习:新建Python unit test类型的文件case8002.py,setUp里启动Firefox,tearDown关闭浏览器,test_1里打开ECShop前台首页,
点击“登录”,点击“立即登陆”,检查弹出一个提示框,检查提示框里的文本内容中包含“用户名不能为空”和“登录密码不能为空”(做两个检查),点击“确定”。

6.检查元素出现在网页里(能被定位到):try后尝试使用find_element来查找元素,在except后写NoSuchElementException,
如果抛出此异常代表元素定位不到,如果没有抛出,代表元素可以被定位到。封装一个自定义函数is_element_present用于判断是否可以定位到元素,
返回值是布尔值,True代表定位到,False代表未定位到,参数写一个定位条件(By.XX)和定位数据(str类型),在测试函数中调用此自定义函数,
最后就可以检查元素出现。
示例:
from selenium.common.exceptions import NoAlertPresentException,NoSuchElementException
# 判断元素是否可以被定位到(是否出现)
# 参数:how ---怎么定位?值是By.XXX
# what ---用什么定位?值是str类型的
# 返回值:布尔值,代表是否定位到
def is_element_present(self,how,what):
try:
self.driver.find_element(how,what)
except NoSuchElementException:
return False
return True
def test_xxx(self):
……
# 检查“上市日期”的元素出现
b1=self.is_element_present(By.NAME,"attr[172]")
self.assertTrue(b1)

unittest框架里的常用断言方法:用于检查数据的更多相关文章

  1. 即用了 测试脚本里面的 类的值,又继承了 unittest类 使用他的断言方法 (接口自动化 数据分离 变量相互调用 看这里)

  2. python的unittest框架中的assert断言

    unittest框架自带断言,如果想用assert断言,一定要引入unittest.TestCase框架才行,不然不会自动识别assert断言

  3. Python3.7版本unittest框架添加用例的方法

    1.实例demo是用谷歌浏览器在百度首页搜python的动作脚本:     BaiDu_test是指脚本中自己定义的类名,test_get是指你的类中定义的testcase方法. 在if name函数 ...

  4. Junit框架使用--JUnit常用断言及注解

    从别人博客中抄过来一点东西 原文地址:http://blog.csdn.net/wangpeng047/article/details/9628449 断言是编写测试用例的核心实现方式,即期望值是多少 ...

  5. pytest框架 里 fixture 参数化的方法

  6. unittest框架进坑系列_(含selenium数据分离的坑)

    1.测试用例的执行顺序 有默认的顺序的,不是按你自己的排列执行,注意. 进坑原因,没有先执行制造变量的测试用例,导致其他用例无法找到变量值 2.数据分离的坑 在控制层 有函数嵌套,2个函数都必须带se ...

  7. 阶段3 2.Spring_04.Spring的常用注解_6 用于注入数据的注解

    @Qualifier 指定id为accountDao1 测试 如果把Autowired注释掉的话, 就会报空指针异常.就是没有注入进来 @Qualifier不能独立使用必须和Autowired配合使用 ...

  8. Unittest框架小结

    在日常的自动化测试过程中,Python里有一个自带的单元测试框架是unittest模块,简单易用,这里简单介绍下其主要的用法. Unittest测试框架主要包含四个部分 TestCase 也就是测试用 ...

  9. unittest框架官方翻译:中文版

    指数 模块 | 下一个 | 上一个 | Python » 英语 法国 日本 朝鲜的   开发(3.8) 3.7.3rc1 3.6 3.5 2.7  文档 » Python标准库 » 开发工具 » | ...

随机推荐

  1. indexOf返回值问题

    String s = "aoood";System.out.println(s.indexOf(""));//返回0 System.out.println(s. ...

  2. Could not autowire. No beans of 'JavaMailSenderImpl' type found

  3. PyQt5 基本语法(五)

    目录 2. 输入控件(二) 2.2 步长调节 2.2.1 QAbstractSpinBox 2.2.1.1 描述 2.2.1.2 功能作用 2.2.1.2.1 使用 2.2.1.2.2 主要功能 2. ...

  4. spring程序开发步骤

    1.使用spring框架之前的开发步骤 2.使用spring之后的开发步骤 3.文字描述 1.导入Spring开发的基本依赖 2.编写Dao接口和实现类 3.创建spring核心配置文件 4.在spr ...

  5. 面试官:说一说Zookeeper中Leader选举机制

    哈喽!大家好,我是小奇,一位不靠谱的程序员 小奇打算以轻松幽默的对话方式来分享一些技术,如果你觉得通过小奇的文章学到了东西,那就给小奇一个赞吧 文章持续更新 一.前言 今天又是一个阳光明媚的一天,我又 ...

  6. 51单片机I/O引脚IO口工作原理

    51单片机I/O引脚IO口工作原理 一.51单片机管脚p0.p1.p2.p3口区别如下: 1.意思不同P0口作输出口用时,需加上拉电阻.P0口有复用功能.当对外部存储器进行读写操作时,P0口先是提供外 ...

  7. linux修改中文字符集

    //修改系统配置 cd /etc/profile //末尾加如下代码 export LC_ALL="zh_CN.GBK"export LANG="zh_CN.GBK&qu ...

  8. 学习打卡day16&&echarts入门

    echarts有两种部署方式,一种是使用CDN命令,将所需文件安装到目标文件中,"npm install echarts --save",适合于已经学习入门了Vue.第二种是在gi ...

  9. unity 编辑器扩展简单入门

    unity 编辑器扩展简单入门 通过使用编辑器扩展,我们可以对一些机械的操作实现自动化,而不用使用额外的环境,将工具与开发环境融为一体:并且,编辑器扩展也提供GUI库,来实现可视化操作:编辑器扩展甚至 ...

  10. Docker安装 Ubuntu Centos

    Ubuntu 安装Dokcer 1. 删除旧版本Docker安装包和依赖项 sudo apt-get remove docker docker-engine docker.io containerd ...