内容简介:在自动化测试中会有很多意料之中意料之外的情况需要处理,你可以对特定的case写特定的逻辑,不过一些万金油式的功能函数还是能解决很多问题的。本文权当抛砖引玉,有兴趣的读者欢迎留言指教。完整的代码示范请移步GitHub:
在自动化测试中会有很多意料之中意料之外的情况需要处理,你可以对特定的case写特定的逻辑,不过一些万金油式的功能函数还是能解决很多问题的。本文权当抛砖引玉,有兴趣的读者欢迎留言指教。
完整的代码示范请移步GitHub: https://github.com/tobyqin/python_automation_utils
wait_for
函数实现
def wait_for(method, timeout=DEFAULT_TIMEOUT, poll_time=DEFAULT_POLL_TIME):
"""
Wait for a method with timeout, return its result or raise error.
The expecting result should NOT be False or equal to False.
"""
end_time = time.time() + timeout
exc_info = ()
while True:
try:
value = method()
if value:
return value
except Exception as exc:
args_as_str = [str(x) for x in exc.args]
exc_info = (type(exc).__name__, ','.join(args_as_str))
time.sleep(poll_time)
if time.time() > end_time:
break
message = "Timeout to wait for '{}()' in {} seconds.".format(
method.__name__, timeout)
if exc_info:
message += " [{}]: {}".format(exc_info[0], exc_info[1])
raise Exception(message)
调用示范
# 例一:等待页面
def page_ready():
...
wait_for(page_ready)
then_do_something()
# 例二:等待长操作
def calculation():
# cost long time
return something
result = wait_for(calculation,timeout=100,poll_time=10)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Node.JS如何按顺序调用async函数,如何判断是否为async函数,在mocha中自动化测试async/await代码
- [DevOps]自动化运维基础与自动化监控
- Java自动化——使用Selenium+POI实现Excel自动化批量查单词
- 测者的测试技术手册:自动化的自动化EvoSuite:Maven项目集成EvoSuite实战
- 构建自动化
- 自动化mock
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
人件(原书第3版)
[美] Tom DeMarco、[美] Timothy Lister / 肖然、张逸、滕云 / 机械工业出版社 / 2014-8 / 69.00元
在软件管理领域,很少有著作能够与本书媲美。作为经久不衰的畅销书,本书深刻地洞察到软件开发的最大问题不在于技术,而在于人。人的因素并不容易解决,一旦解决了,你将更有可能获得成功。 本书是软件管理领域的传奇经典,被誉为“对美国软件业影响最大的一本书”。全书从管理人力资源、创建健康的办公环境、雇用并留用正确的人、高效团队形成、改造企业文化和快乐工作等多个角度阐释了如何思考和管理软件开发的最大问题—......一起来看看 《人件(原书第3版)》 这本书的介绍吧!
RGB转16进制工具
RGB HEX 互转工具
在线进制转换器
各进制数互转换器