Я разработал фреймворк, управляемый ключевыми словами, и могу запустить его параллельно на сетке селена с помощью провайдера данных (я настроил его для чтения всех тестовых случаев в провайдер данных, а затем я использую атрибут parallel = true и поставщик данных-thread-count в testng).
Я использую log4j2 для ведения журнала.Ниже приведен файл конфигурации log4j2.
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Properties>
<Property name="basePath">./logs</Property>
</Properties>
<Appenders>
<RollingFile name="File" fileName="${basePath}/output.log" filePattern="${basePath}/output-%d{yyyy-MM-dd}.log">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
<SizeBasedTriggeringPolicy size="50000" />
</RollingFile>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>
</Console>
</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="File"/>
</Root>
</Loggers>
</Configuration>
Но когда я запускаю тест параллельно, созданный файл журнала показывает журналы для обоих тестов один за другим.Например, у меня есть два теста, и я хотел бы иметь журналы отдельно для двух тестов, но журналы для каждого теста объединяются, и было бы очень трудно понять, какой шаг журнала принадлежит какому тесту.
03:24:45.036 [TestNG-PoolService-0] INFO utility.LogUtilities - ****************************************************************************************
03:24:45.036 [TestNG-PoolService-1] INFO utility.LogUtilities - ****************************************************************************************
03:24:45.043 [TestNG-PoolService-0] INFO utility.LogUtilities - ****************************************************************************************
03:24:45.043 [TestNG-PoolService-0] INFO utility.LogUtilities - $$$$$$$$$$$$$$$$$$$$$ TC01 $$$$$$$$$$$$$$$$$$$$$$$$$
03:24:45.043 [TestNG-PoolService-0] INFO utility.LogUtilities - ****************************************************************************************
03:24:45.044 [TestNG-PoolService-0] INFO utility.LogUtilities - ****************************************************************************************
03:24:45.045 [TestNG-PoolService-1] INFO utility.LogUtilities - ****************************************************************************************
03:24:45.045 [TestNG-PoolService-1] INFO utility.LogUtilities - $$$$$$$$$$$$$$$$$$$$$ TC02 $$$$$$$$$$$$$$$$$$$$$$$$$
03:24:45.045 [TestNG-PoolService-1] INFO utility.LogUtilities - ****************************************************************************************
03:24:45.045 [TestNG-PoolService-1] INFO utility.LogUtilities - ****************************************************************************************
03:24:45.630 [TestNG-PoolService-0] INFO utility.LogUtilities - -------- Starting WebDriver --------
03:24:45.680 [TestNG-PoolService-1] INFO utility.LogUtilities - -------- Starting WebDriver --------
03:24:51.669 [TestNG-PoolService-1] INFO utility.LogUtilities - -------- Starting: adminopenhomepage -----------
03:24:51.669 [TestNG-PoolService-1] INFO utility.LogUtilities - ---------------- Opening Adming Home Page --------
03:24:52.893 [TestNG-PoolService-1] INFO utility.LogUtilities - ---------------- Admin Home Page is opened successfully --------
03:24:52.894 [TestNG-PoolService-1] INFO utility.LogUtilities - -------- Starting: adminenterusername -----------
03:24:52.894 [TestNG-PoolService-1] INFO utility.LogUtilities - ------------ Finding the admin username --------
03:24:52.971 [TestNG-PoolService-1] INFO utility.LogUtilities - ------------ Admin username found successfully --------
03:24:52.971 [TestNG-PoolService-1] INFO utility.LogUtilities - ---------------- Entering data into username filed --------
03:24:53.138 [TestNG-PoolService-1] INFO utility.LogUtilities - ---------------- Data entered into username filed --------
03:24:53.138 [TestNG-PoolService-1] INFO utility.LogUtilities - -------- Starting: adminenterpassword -----------
Если вы видите выше, журналы для TC01 и TC02 объединены, и очень трудно определить, какое сообщение журнала принадлежит к какому тестовому кейсу.
Итак, как настроить XML-файл для записи журналовв разные файлы в зависимости от количества потоков или есть ли другой способ распечатать журналы отдельно?
Спасибо.