zoukankan      html  css  js  c++  java
  • 断言 assert

    自动化测试脚本中,判断测试用例执行结果是通过还是失败,可以通过断言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("	" + 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的语法可以看作一个封装好的判断和打印的方法啦,简单好使。

     

  • 相关阅读:
    电信生命周期说明
    find in linux 2 微信公众号
    GDB中应该知道的几个调试方法 2 微信公众号
    linux 下程序员专用搜索源码用来替代grep的软件ack(后来发现一个更快的: rg), 且有vim插件的 2 微信公众号
    linux下的 c 和 c++ 开发工具及linux内核开发工具 2 微信公众号
    linux下命令行发送邮件的软件:mutt 微信公众号
    腺样体肿大的综合治疗考虑 微信公众号
    打呼噜治疗方法 微信公众号
    vim 操作 2 微信公众号
    nginx之外的web 服务器caddy 微信公众号
  • 原文地址:https://www.cnblogs.com/hereisdavid/p/13735839.html
Copyright © 2011-2022 走看看