我正在尝试学习python来处理一个测试项目。是否有一种方法可以在python测试框架中实现类似功能的TestNG侦听器。
侦听器有诸如OnTestFailure()、OnTestSuccess、OnStart()等方法,当您想要做某些事情时,这些方法非常有用。
比方说,一个测试用例失败了,您想执行一些操作,比如截图。然后你可以只在一个地方写,而不是在每个测试方法中都写。
此类将从测试用例中调用,类似于teststatus.mark('test name'、result、'message you want to log')result是一个布尔值
class TestStatus(unittest.TestCase):
def __init__(self):
super(TestStatus, self).__init__()
def mark(self, testName, result, resultMessage):
testName = testName.lower()
try:
if result:
self.log.info("Verification successful :: " + resultMessage)
else:
# If the test fails,
# this calls screenshot method from util class
self.util.screenShot("FAIL" + mapKey)
self.log.info("Verification failed :: " + resultMessage)
except:
self.log.info("### Exception Occurred !!!")
traceback.print_stack()
这是测试用例类中的一个示例测试用例:
def test_accountSignup(self):
# Generate a username and password to use in the test case
userName = self.util.getUniqueName()
password = self.util.getUniqueName()
# You can ignore this, this is calling a method
# signup from the account page (page object model)
self.accounts.signup(userName, password)
# This call is also from the page object,
# it checks if the sign up was successful
# it returns a boolean
result = isSignUpSuccessful()
# test_status object was created in the setUp method
#
self.test_status.mark("test_accountSignup", result,
"Signup was successful")
方法正在传递,这太好了,但是为什么的结果会出现在库测试结果中,我不明白。我怎么才能避免呢? 我在这里列出了和的完整代码。
Q1)我在Selenium-TestNG中有一个现有的框架以及Listeners类。我使用testng的@aftertest注释关闭浏览器: 这里,Listeners类的onTestSuccess方法在我作为没有cucumber特性文件的普通旧Selenium TestNG运行时工作得非常好: 当测试通过时,首先调用Listeners类的onTestSuccess()方法,然后调用teardown
问题内容: 我有一个要求,如果在db表中插入一条记录,则需要自动执行一个Java进程。实现db侦听器的最简单方法是什么? 问题答案: 我有一个针对Oracle的解决方案。自从甲骨文购买了Java以来,你不需要创建自己的应用程序,因此它发布了一个监听器。据我所知,这在内部不使用轮询,而是将通知推送到Java端(可能基于某些触发器): 你可以像这样实现它(这只是一个示例): 编辑: 你可以使用以下
我目前正在为一个包含大量模块的大项目创建TestNG测试用例。现有的大多数单元测试实际上都是集成测试,因为它们非常依赖于/opt文件夹中的配置文件以及正在运行的数据库和消息队列。 为了使事情进一步复杂化,测试用例使用配置位于resources/meta-inf/services/org.TestNG.itestnglistener文件中的TestNG侦听器。这个文件中的侦听器触发所有测试用例(正如
我有一个内部使用Akka的Spring MVC应用程序。其中一个参与者正在调用已使用MockRestServiceServer模拟的REST服务。当我运行调用控制器和有趣的参与者的测试时,即使内部抛出异常,测试也会通过。 我在日志中看到以下异常堆栈跟踪。在测试用例中,我还在验证模拟服务器(mockRestServiceServer.verify())之前放入了一个Thread.sleep(5000