自动化测试脚本中,判断测试用例执行结果是通过还是失败,可以通过断言Assert的方法,生成测试结果
Python中的Unittest组件中有几种断言方法
要注意的是,如assertEqual(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的语法可以看作一个封装好的判断和打印的方法啦,简单好使。
原文:https://www.cnblogs.com/hereisdavid/p/13735839.html