一、断言方法

断言是对自动化测试异常情况的判断。

# -*- coding: utf-8 -*-
from selenium import webdriver
import unittest
import os,sys,time
import HTMLTestReport #登录
driver =webdriver.Firefox() current_time = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime(time.time()))
current_time1 = time.strftime("%Y-%m-%d", time.localtime(time.time()))
print(current_time )
print(current_time1 )
# 必须打印图片路径HTMLTestRunner才能捕获并且生成路径,\image\**\\**.png 是获取路径的条件,必须这样的目录
#设置存储图片路径,测试结果图片可以按照每天进行区分 pic_path = '.\\result\\image\\' + current_time1+'\\' + current_time +'.png'
print(pic_path)
time.sleep(5) #通过if进行断言判断
driver.get("https://baidu.com/")
print(driver.title)
driver.save_screenshot(pic_path)
if u'百度一下,你就知道' == driver.title:
print ('Assertion test pass.')
else:
print ('Assertion test fail.') #通过try抛出异常进行断言判断
driver.get("https://baidu.com/")
driver.save_screenshot(pic_path)
try:
assert u'百度一下,你就知道' == driver.title
print ('Assertion test pass.')
except Exception as e:
print ('Assertion test fail.', format(e)) time.sleep(5)
driver.quit()

方法一,是利用python中Assert方法,采用包含判断,方法二是通过if方法,采用完全相等方法,建议选择第一种方法

这u代表unicode的意思,由于我们这里采用了python 2, 如果你使用pyn3 就不需要,在Python3中,字符串默认采用unicode存储。

二、断言方法

在执行用例的过程中,最终用例是否通过,是通过判断测试的到的实际结果与预测结果是否相等绝顶的。unittest框架的TestCase类提供下面这些方法用于测试结果的判断。

 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)
方法 检查 版本
assertEqual(a,b) a==b  
assertNotEqual(a,b) a!=b  
asserTrue(x) bool(x) is true  
asserFalse(x) bool(x) is False  
assertIs(a,b) a is b  
assertIsNot(a,b) a is not b  
assertIsNone(x) x is None  
assertIsNoneNot(x) x is not None  
assertIn(a,b) a in b  
assertInNot a not in b  
assertIsInstance(a,b) isinstance(a,b)  
assertNotIsInstance(a,b) not isinstance (a,b)  

***assertEqual(first ,second ,msg =None)

断言第一个参数和第二个参数是否相等,如果 不相等则测试失败。msg为可选参数,用于定义测试失败时打印的信息。

 import unittest

 class assertEqual1(unittest.TestCase):
def setUp(self):
number = input ("Enter a number:")
self.number = int (number) def test_case(self):
self.assertEqual (self.number, 10, msg='Your input is not 10!') def tearDown(self):
pass if __name__ == '__main__':
unittest.main ()

三、assertTrue与assertFalse

用于测试表达式是true还是false。

下面来实现判断一个数是否未数的功能,所谓的质数(又叫素数)是指只能被1和她本身整除的数。

 def is_prime(n):
if n <= 1:
return False
for i in range (2, n):
if n % i == 0:
return False
else:
return True
 from calculator import is_prime
import unittest class test (unittest.TestCase):
def setUp(self):
print("测试开始") def test_case(self):
self.assertTrue (is_prime(3), msg="Is not prime!") def tearDown(self):
print("测试结束") if __name__ == '__main__':
unittest.main ()

在调用is_prime()函数时分别传不同的值来执行测试用例,然后通过assertTrue()断言得到的结果进行判断。

四、assertIn(first,second,msg = None)与assertNotIn(first,second,msg = None)

注:断言第一个参数是否在第二个参数中,第二个表示参数是否包含第一个参数。

 import unittest

 class test (unittest.TestCase):
def setUp(self):
print("测试开始") def test_case(self):
a = 'hello'
b = 'hello word!'
# self.assertIn (b, a, msg='a is not in b')
self.assertNotIn (a, b, msg='a is not in b') def tearDown(self):
print("测试结束") if __name__ == '__main__':
unittest.main ()
  1. assertIs(first,second,msg=None) 与assertIsNot(first,second,msg=None)

断言第一个参数和第二个参数是否为同一个对象。

2.assertIsNone(expr,msg = None)与assertIsNone(expr,msg = None)

断言表达式是否为None对象。

3.assertIsInstance(obj,cls,msg = None)与assertIsInstance(obj,cls,msg = None)

断言obj是否为cls的一个实例。

python+selenium之断言Assertion的更多相关文章

  1. Python+Selenium之断言对应的元素是否获取以及基础知识回顾

    # coding=utf-8 from selenium import webdriver driver = webdriver.Firefox() driver.maximize_window () ...

  2. python selenium测试用例断言

    1.if ...else ...判断进行断言 #coding=utf-8 from time import * from selenium import webdriver "): driv ...

  3. Python中不尽如人意的断言Assertion

    Python Assert 为何不尽如人意 Python中的断言用起来非常简单,你可以在assert后面跟上任意判断条件,如果断言失败则会抛出异常. >>> assert 1 + 1 ...

  4. 【转】Python中不尽如人意的断言Assertion

    原文地址:Python中不尽如人意的断言Assertion Python Assert 为何不尽如人意 Python中的断言用起来非常简单,你可以在assert后面跟上任意判断条件,如果断言失败则会抛 ...

  5. selenium关于断言的使用

    基本介绍: Selenium工具专门为WEB应用程序编写的一个验收测试工具. Selenium的核心:browser bot,是用JAVASCRIPT编写的. Selenium工具有4种:Seleni ...

  6. Selenium3 + Python3自动化测试系列五——常用断言Assertion

    断言Assertion 验证应用程序的状态是否同所期望的一致. 常见的断言包括:验证页面内容,如标题是否为X或当前位置是否正确,或是验证该复选框是否被勾选. selenium 提供了三种模式的断言:a ...

  7. 一次完整的自动化登录测试-基于python+selenium进行cnblog的自动化登录测试

    Web登录测试是很常见的测试!手动测试大家再熟悉不过了,那如何进行自动化登录测试呢!本文作者就用python+selenium结合unittest单元测试框架来进行一次简单但比较完整的cnblog自动 ...

  8. 使用python selenium进行自动化functional test

    Why Automation Testing 现在似乎大家都一致认同一个项目应该有足够多的测试来保证功能的正常运作,而且这些此处的‘测试’特指自动化测试:并且大多数人会认为如果还有哪个项目依然采用人工 ...

  9. python+selenium 自动化测试实战

    一.前言: 之前的文章说过, 要写一篇自动化实战的文章, 这段时间比较忙再加回家过11一直没有更新博客,今天整理一下实战项目的代码共大家学习.(注:项目是针对我们公司内部系统的测试,只能内部网络访问, ...

随机推荐

  1. 如何解决 Matlab 画图时中文显示乱码的问题?

    使用的是win10系统,从前几个月某一天,我的matlab的figure里的中文都变成了口口.很是郁闷,还以为是动到了什么配置引起的. 前几天更新了matlab 2018b,发现还有这个问题.就觉得不 ...

  2. 7.20实习培训日志-Java基础程序设计结构

    Java基础程序设计结构 在 Math 类中,为了达到最快的性能,所有的方法都使用计算机浮点单元中的例程,如果得到一个完全可预测的结果比运行速度更重要的话,那么就应该使用StrictMath类,它使用 ...

  3. element ui 修改默认样式

    修改element ui默认的样式 如果要组件内全局修改 首先在浏览器里F12找到element默认的UI类名 找到要修改的默认类名以后 在文件中修改代码,重写属性 <style> .el ...

  4. 《深入理解Java虚拟机》笔记01 -- 运行时数据区

    运行时数据区示意图 1. 程序计数器 占用一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器.主要用来记录线程执行到哪条语句了,分支.循环.跳转.异常处理.线程恢复等功能都需要依赖这个 ...

  5. 洛谷P4218 [CTSC2010]珠宝商(后缀自动机+点分治)

    传送门 这题思路太清奇了……->题解 //minamoto #include<iostream> #include<cstdio> #include<cstring ...

  6. 解决Idea项目启动报错:程序包javax.servlet.http不存在

    报错信息 在没有使用maven的时候,web项目从远程仓库获取下以后,起一次启动往往会报错javax.servlet.http程序包找不到,随之而来的java基础包都将不能使用,报错信息如下: 解决方 ...

  7. 利用Hough变换识别图像中的直线

    引入 近期看到2015年数学建模A题太阳影子定位中的第四问,需要根据附件中视频里的直杆的太阳影子的变化确定拍摄地点.其实确定拍摄地点这个问题并不是十分困难,因为有前三问的铺垫,我们已经得出了太阳影子长 ...

  8. [LOJ 2082] 「JSOI2016」炸弹攻击 2

    [LOJ 2082] 「JSOI2016」炸弹攻击 2 链接 链接 题解 枚举发射源,将发射源当做原点,对敌人和激光塔极角排序. 由于敌人纵坐标均为正,而其它点均为负,因此每两个角度差在 \(\pi\ ...

  9. CodeForces - 361A-Levko and Table (思维)

    Levko loves tables that consist of n rows and n columns very much. He especially loves beautiful tab ...

  10. 071 Simplify Path 简化路径

    给定一个文档 (Unix-style) 的完全路径,请进行路径简化.例如,path = "/home/", => "/home"path = " ...