我使用serenity BDD进行自动化测试,使用页面对象模型进行框架测试。我创建了一个BasePage类,它将被所有其他页面继承。我想通过添加所有日志来最小化来自页面的日志消息。将信息消息发送到中央基本页。例如,在调用click()方法时,我将在basePage类中记录单击前和单击后的方法,如下所示:
公共类BasePage扩展了PageObject{
private static final Logger log = LogManager.getLogger(BasePage.class.getClass());
private final WebElementFacade element;
public static void clickBtn(WebElementFacade btnName) {
log.info("About to click " + btnName + " button");
btnName.click();
log.info("Successfully clicked on " + btnName + " button.");
}
后来我发现,与其单独尝试预先确定用户将在webElements上执行哪些操作,并为每个操作编写新方法(如上图所示),不如实现WebDriverFacade界面,因此,我从WebDriverFacade获取BasePage中所有未实现的方法列表,然后在每个方法中写入日志消息,如下所示:
公共类BasePage扩展PageObject实现WebElementFacade{
private static final Logger log = LogManager.getLogger(BasePage.class.getClass());
private final WebElementFacade element;
@Override
public void submit() {
// TODO Auto-generated method stub
}
@Override
public void sendKeys(CharSequence... keysToSend) {
// TODO Auto-generated method stub
}
@Override
public String getTagName() {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean isSelected() {
// TODO Auto-generated method stub
return false;
}
.
.
.
.
.
}
这将有两个目的:
我面临的问题是在第二个用例中收到的错误:
返回类型与继承的WebElementFacade方法不兼容。withTimeoutOf(int,TimeUnit),PageObject。withTimeoutOf(整数,时间单位)
现在我的问题是:
我想这可能是另一个有用的场景。确保子类方法不使用pageObject中的方法,并且只能使用基类中的方法。这可以通过包装WebElementFacade并添加日志消息作为附加功能来实现。如果您对此有任何想法,我们将不胜感激。非常感谢。
老实说,这是一个巧妙的技巧,如果你成功了,你应该感到自豪。我想我在动态语言中找到了类似的东西。但是你最好只是添加日志条目并学习以下内容。
如何命名函数,这样你就不会觉得它们需要重命名。如何清楚地记录以供调试使用。
这是因为伐木的力量在于它的灵活性。当你学会如何处理复杂的事情,比如矩阵,这样你就可以看到它,然后你就可以提高你的整体技能了。
我很抱歉没有给你代码,但我觉得一些“追逐另一只兔子”的建议更好。
我正在尝试将一个值设置为MDC,以便在有日志的情况下显示在每个日志行中。如果kafka producer中有info(“”),那么日志就不会显示我之前为MDC添加的值。 我有一个拦截器来为correlationId设置“默认值” 我设置了 MDC 相关 Id 值,当它进入控制器时。 仅用于Kafka日志不包括之前添加的 MDC 消息 2022-06-08 10:15:31.616 INFO { c
本文向大家介绍C# 如何添加错误日志信息,包括了C# 如何添加错误日志信息的使用技巧和注意事项,需要的朋友参考一下 系统日志 系统日志包含了由Windows系统组件记录的事件。例如,在启动期间装入驱动程序或其他系统组件失败被记录到系统日志。要查看系统日志: 打开命令提示符。 在提示符下输入eventvwr。这打开了Windows事件查看器。 应用程序日志 应用程序日志包含了由应用程序或程序记录的事
在我的Android应用程序中,我收到使用Firebase发送的消息,问题不是所有消息都到达,有时消息到达非常慢。 在我的服务器端,我跟踪我发送到FCM的消息,我总是收到成功:来自FCM的1个响应,仍然有我在Android应用程序中没有收到的消息。 我认为FCM消息日志在上面描述的情况下会有很大的帮助,但我不确定是否存在此选项。 有办法浏览Firebase消息日志吗?
我很高兴地使用SLF4J和logback和使用2个附加为根记录器。 stdout的调试级别 文件的信息级别 所有日志都需要成为输出的一部分(因此需要根记录器)。
我正在开发一个简单的桌面应用程序(不是webapp)。 它们有不同的模式。好像他们忽略了我的设置。 我也试着应用我在这里找到的建议: https://spring.io/blog/2009/12/04/logging-dependencies-in-spring
我想开始记录跟踪信息,因此添加了: Sleuth将跟踪信息添加到日志行,但我在模式https://github.com/spring-projects/spring-boot/blob/2.3.x/spring-boot-project/spring-boot/src/main/resources/org/springframework/boot/logback/defaults.xml中找不到任