首页 > 其他 > 详细

断言 assert

时间:2020-09-26 18:47:11      阅读:53      评论:0      收藏:0      [点我收藏+]

自动化测试脚本中,判断测试用例执行结果是通过还是失败,可以通过断言Assert的方法,生成测试结果

Python中的Unittest组件中有几种断言方法

 

技术分享图片

 要注意的是,如assertEqual(a,b[,msg])中判断的是:

  • a和b相等;
  • 断言成功则通过;
  • 断言失败则将msg作为错误信息返回

注意是判断“a和b相等时,断言失败返回错误信息”.....

这里是一个登录的自动化测试用例脚本的assert应用:

 1 def test_login_batch(self):
 2     # 打开要操作的xlsx文件,赋值给ws变量
 3     fn = "..\\cases\\cases.xlsx"  # 相对路径定位
 4     if os.path.exists(fn) is False: # 判断路径定位,如果不存在
 5         fn = "cases\\cases.xlsx"    # 相对路径定位,此处表示是从testRunner开始运行的
 6 
 7 
 8     ws = load_workbook(fn)  # 打开fn文件,ws代表着打开的文件,它是一个工作簿类(workbook)的对象
 9     st = ws["login"]
10 
11     nRow = 0        # 行计数器
12     nCount = 0      # 用例总计数器
13     nFail = 0       # 失败用例计数器
14     # 循环输出config表格中的所有信息
15     for row in st.iter_rows():      #st.Iter_row():获取到st工作表中的所有数据(二维元组)
16         nRow += 1           # 行号累加1
17         if nRow == 1:       # 第一行是表头,忽略
18             continue        # 继续取下一行
19         if row[0].value == %END%: #如果循环到一行中第一列的值是%END%,则表示到了最后一行
20             break   # 跳出循环
21         # 将当前行(CELL对象的tuple)的数据转换为一个字符串列表
22         case = []       # 先定义一个空列表
23         for r in row:   # 循环当前行(一维元组)的每一个单元格
24             if r.value == None: # 如果值为空
25                 case.append(‘‘) # 转换为空字符,末尾添加到case列表
26             else:
27                 case.append(str(r.value))   #否则将r.value转换为字符串,末尾添加到case列表
28 
29         print(case)     # 输出case的内容,看效果
30 
31         # 开始根据当前行(case一维列表)的数据,执行用例
32         print(用例: + case[0])  #打印用例名称
33         self.lg.open()
34         self.lg.login(case[1], case[2])  # 用正确的用户名和密码调用login函数实现登录
35         # 验证登录是否符合预期,True:期望成功,“admin”:登录成功后的页面中出现admin字样,表示确实登录的是admin用户
36         # rc:验证后的结果,如果包含“PASS”表示通过
37         rc = self.lg.login_v(case[3], case[4])
38         print("\t" + rc)  # 把结果打印出来
39         self.lg.close()  # 关闭浏览器
40         # 判断用例的结果,然后回填excel表格
41         nCount += 1         #用例总数累加1
42         if "PASS--" in rc:  #用例通过
43             st["F" + str(nRow)] = "Pass"    # F列的nRows行写入内容
44             st["G" + str(nRow)] = "Pass"
45         else:
46             nFail = nFail + 1
47             st[F + str(nRow)] = Failed  # F列的nRows行写入内容
48             st[G + str(nRow)] = rc        # rc中包含失败的详细提示
49         ws.save(fn)     # 每执行一个用例都保持一下
50     ws.close()          # 全部用例执行完,关闭文件夹
51     print(本次共执行 %d 用例,其中失败 %d 用例。 %(nCount,nFail))
52     self.assertEqual(0,nFail,"本次有失败用例。")    #用断言判断一下本用例是否有失败用例

 

 

通过assertEqual()可以很方便地在结果出看到几次失败的用例

其实断言assert的语法可以看作一个封装好的判断和打印的方法啦,简单好使。

 

 

断言 assert

原文:https://www.cnblogs.com/hereisdavid/p/13735839.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!