Я изучаю селенную сетку и тест.
Я пытаюсь создать персонализированный результат html с помощью интерфейсов testng. мое понимание того, как создавать html-результаты, отлично подходит для одного запуска машины.
Но когда я обрабатываю удаленные машины, я не могу понять, как результаты консолидируются, если тесты выполняются параллельно в удаленных машинах?
Любые факторы следует рассмотреть перед внедрением моих собственных интерфейсов?
Любая помощь приветствуется.
заранее спасибо
Он отлично работает, из многопоточных тестов в HTML-отчет, потому что ITestResult всегда один и тот же, независимо от того, что вы делаете. Вы можете просто создать класс "CustomReport", который расширяет IReporter. Затем переопределите метод generateReport и просто дайте TestNG создать и передать эти два аргумента в него:
@Override
public void generateReport( List<XmlSuite> xml, List<ISuite> suites, String outdir )
{
for ( ISuite thisSuite: suites ) {
thisSuite.getResults(). ...
...
}
....
Затем внутри этого метода сделайте все, что хотите, чтобы настроить отчет и создать таблицы HTML или что угодно.
Кроме того, одна вещь, которую я делаю (чтобы уменьшить путаницу в выводе консоли при запуске многопоточных тестов), записывает имя потока в сообщения в отчете TestNG, используя что-то вроде:
public void logIt( String message ) {
Reporter.log( "Thread-" + Thread.currentThread().getId() + ": " + message, true );
}
TestNG является удивительным, особенно когда вы понимаете, что я сказал выше, а также тот факт, что вы неявно разрешаете TestNG передавать XMLTest или ITestContext или ITestResult некоторым из методов @Configuration. Например:
@BeforeClass
public void setUp( ITestContext context ) {
logger.info("BeforeClass setUp...");
suiteParams = context.getSuite().getXmlSuite().getAllParameters();
...