python selenium 断言_python+selenium之断言Assertion

本文详细介绍了Python Selenium中断言的使用,包括利用Python内置的Assert方法、if语句进行断言判断,以及unittest框架提供的各种断言方法,如assertEqual、assertTrue、assertFalse、assertIn等。通过示例代码展示了如何在自动化测试中运用这些断言确保测试结果的准确性。
摘要由CSDN通过智能技术生成

一、断言方法

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

#-*- coding: utf-8 -*-

from selenium importwebdriverimportunittestimportos,sys,timeimportHTMLTestReport#登录

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.titleprint ('Assertion test pass.')exceptException 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类提供下面这些方法用于测试结果的判断。

1 from calculator importCount2 importunittest3

4

5 classTestCount (unittest.TestCase):6 defsetUp(self):7 print("test start")8

9 deftest_add(self):10 j = Count (2, 4)11 self.assertEqual (j.add (), 6)12

13 deftest_add2(self):14 i = Count (2,9)15 self.assertEqual (i.add (), 11)16

17 deftearDown(self):18 print("test end")19

20

21 if __name__ == '__main__':22 #unittest.main ()

23 suite =unittest.TestSuite()24 suite.addTest(TestCount('test_add2'))25 suite.addTest (TestCount ('test_add'))26 runner =unittest.TextTestRunner()27 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为可选参数,用于定义测试失败时打印的信息。

1 importunittest2

3

4 classassertEqual1(unittest.TestCase):5 defsetUp(self):6 number = input ("Enter a number:")7 self.number =int (number)8

9 deftest_case(self):10 self.assertEqual (self.number, 10, msg='Your input is not 10!')11

12 deftearDown(self):13 pass

14

15

16 if __name__ == '__main__':17 unittest.main ()

三、assertTrue与assertFalse

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

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

1 defis_prime(n):2 if n <= 1:3 returnFalse4 for i in range (2, n):5 if n % i ==0:6 returnFalse7 else:8 return True

1 from calculator importis_prime2 importunittest3

4

5 classtest (unittest.TestCase):6 defsetUp(self):7 print("测试开始")8

9 deftest_case(self):10 self.assertTrue (is_prime(3), msg="Is not prime!")11

12 deftearDown(self):13 print("测试结束")14

15

16 if __name__ == '__main__':17 unittest.main ()

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

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

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

1 importunittest2

3

4 classtest (unittest.TestCase):5 defsetUp(self):6 print("测试开始")7

8 deftest_case(self):9 a = 'hello'

10 b = 'hello word!'

11 #self.assertIn (b, a, msg='a is not in b')

12 self.assertNotIn (a, b, msg='a is not in b')13

14 deftearDown(self):15 print("测试结束")16

17

18 if __name__ == '__main__':19 unittest.main ()

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的一个实例。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值