天池神器让你的自动化测试脚本不再掉链子

简介:

在自动化测试过程中,常常让测试人员头疼的就是自动化测试脚本不能长期稳定的运行;总是出现各种意想不到错误导致测试的中断;长此以往,不仅影响测试的效率和准确性,也深深的影响着测试人员对自动化测试的信心。

在维护产品拷机代码时,拷机过程中有大量升级重启操作,脚本中就要不断的等待判断是否可进行下一步的操作,其中不同的操作,等待的时间不同,如果每一次等待都按照atom设备型号的标准,想想浪费大把的时间真是罪过呀。今天我们就以等待系统重启的例子来说明如何改善代码的稳定性,让你的脚本不再掉链子。

首先看一下下面这两段代码中等待页面响应的方法:

相信大家都会遇到上面例子中的问题,测试脚本总是因为等待时间不够长而屡次中断,通常情况,都会找一个最长的时间去等待,但即便是设置最长的时间,一旦网络比预想的多一秒的延迟,依然会导致测试的中断。那看下面用while循环,这样是不是就能够适应动态的等待时间。

但是问题又来了,对于测试脚本来讲,大部分都是在等待系统的各种响应,如果都按照这种方法,再看一下自己的脚本遍地都是while判断,每次都要循环,一不留神还死循环了;整个流程都被淹没在while中了;不爽啊。那我们就在继续封装一下了,哈哈,天池神器:wait_until wait_until_not 就问世了。

wait_until:等待你的目标出现

wait_until_not:等待你的目标消失

主要分为三个部分:等待(wait) 目标(method) 出现(until)/消失(until_not)

考虑到这段代码所有的测试人员都可以直接使用,就直接把代码贴出来,供大家参考;下面就直接看代码好了。

Wait说明

Wait类可以设置最长等待时间(timeout),刷新时间间隔(poll_frequency),可忽略的异常值(ignored_exceptions)。

前两个都不用解释了,就简单介绍一下 ignored_exceptions这个值,主要是在目标的检测过程可能发生各种异常,有些异常并不影响继续等待,就可以在这个值里面设置。当然wait方法被封装成类的形式,主要是天池的需要,大家可根据自己的需要进行简化。

util就是等待目标(method)的出现,直到timeout退出;**kwargs参数主要是目标(method)需要的一些参数扩展。

util_not就是等待目标(method)的消失,直到timeout退出;**kwargs参数主要是目标(method)需要的一些参数扩展。

通过以上封装,将第一节的while 循环瞬间就变成一个until函数。

首次尝试一下wait类吧,看! 好几行的代码是不是就变成下面一行就搞定了,你随便等吧。不过到底等什么呢,请看下节的method方法

目标(method)说明

就拿例子中的url_is_connectable举例吧,url_is_connectable类主要是判断url是否可访问;页面可响应后就可以进行下一步的操作了。当然,封装成类,并且内容在call函数中实现也是天池的需要,大家可根据自己的需要简化为函数都是可以的;函数的实现使用urllib库来判断当然大家也可以用其他方法。

结束

看了Wait和url_is_connectable这两个类,是不是一下子就清晰明了了,有了wait以后你就只需要关心你要等的目标就可以了。不过大家一定要注意死循环哦,我都已经掉进去两次了。当然,上面url_is_connectable方法只是一个例子,不过wait类是通用的,大家可以用起来。

本文就是抛砖引玉,希望能和大家在自动化测试代码的健壮性上面有更多的交流;让我们的自动化测试道路走的更远一些。


作者:佚名

来源:51CTO

相关文章
|
2月前
|
Java Shell
「sh脚步模版自取」测试线排查的三个脚本:启动、停止、重启、日志保存
「sh脚步模版自取」测试线排查的三个脚本:启动、停止、重启、日志保存
39 1
|
17天前
|
存储 监控 测试技术
测试脚本编写和维护的最佳实践有哪些?
测试脚本编写和维护的最佳实践有哪些?
|
17天前
|
存储 监控 前端开发
如何确保测试脚本的稳定性和可靠性?
确保测试脚本的稳定性和可靠性是保证性能测试结果准确有效的关键
|
17天前
|
监控 网络协议 Java
一些适合性能测试脚本编写和维护的工具
一些适合性能测试脚本编写和维护的工具
|
18天前
|
存储 Python
Python自动化脚本编写指南
【10月更文挑战第38天】本文旨在为初学者提供一条清晰的路径,通过Python实现日常任务的自动化。我们将从基础语法讲起,逐步引导读者理解如何将代码块组合成有效脚本,并探讨常见错误及调试技巧。文章不仅涉及理论知识,还包括实际案例分析,帮助读者快速入门并提升编程能力。
49 2
|
17天前
|
测试技术 数据库连接 数据库
测试脚本的编写和维护对性能测试结果有何影响?
测试脚本的编写和维护对性能测试结果有着至关重要的影响,
26 1
|
20天前
|
运维 监控 Python
自动化运维:使用Python脚本简化日常任务
【10月更文挑战第36天】在数字化时代,运维工作的效率和准确性成为企业竞争力的关键。本文将介绍如何通过编写Python脚本来自动化日常的运维任务,不仅提高工作效率,还能降低人为错误的风险。从基础的文件操作到进阶的网络管理,我们将一步步展示Python在自动化运维中的应用,并分享实用的代码示例,帮助读者快速掌握自动化运维的核心技能。
35 3
|
26天前
|
运维 监控 应用服务中间件
自动化运维:如何利用Python脚本提升工作效率
【10月更文挑战第30天】在快节奏的IT行业中,自动化运维已成为提升工作效率和减少人为错误的关键技术。本文将介绍如何使用Python编写简单的自动化脚本,以实现日常运维任务的自动化。通过实际案例,我们将展示如何用Python脚本简化服务器管理、批量配置更新以及监控系统性能等任务。文章不仅提供代码示例,还将深入探讨自动化运维背后的理念,帮助读者理解并应用这一技术来优化他们的工作流程。
|
27天前
|
运维 监控 Linux
自动化运维:如何利用Python脚本优化日常任务##
【10月更文挑战第29天】在现代IT运维中,自动化已成为提升效率、减少人为错误的关键技术。本文将介绍如何通过Python脚本来简化和自动化日常的运维任务,从而让运维人员能够专注于更高层次的工作。从备份管理到系统监控,再到日志分析,我们将一步步展示如何编写实用的Python脚本来处理这些任务。 ##
|
1月前
|
运维 Prometheus 监控
自动化运维之路:从脚本到DevOps
【10月更文挑战第25天】在数字化时代的浪潮中,运维不再是简单的服务器管理,而是成为了企业竞争力的核心。本文将带你走进自动化运维的世界,探索如何通过技术手段提升效率和稳定性,以及实现快速响应市场的能力。我们将一起学习如何从基础的脚本编写进化到全面的DevOps实践,包括工具的选择、流程的优化以及文化的建设。无论你是运维新手还是资深专家,这篇文章都将为你提供有价值的见解和实用的技巧。
30 3