тут скорее всего происходит, что в один момент запуска тестов названия проперти одни и те же и ТестНГ выбирает первый попавшийся
хотя я попробовал этот же пример и у меня все работает
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="tests" thread-count="3" verbose="1">
<test name="Test1" preserve-order="true">
<parameter name="browser" value="firefox" />
<parameter name="suite" value="Test1" />
<classes>
<class name="test.Test1" />
</classes>
</test>
<test name="Test2" preserve-order="true">
<parameter name="browser" value="chrome" />
<parameter name="suite" value="Test2" />
<classes>
<class name="test.Test2" />
</classes>
</test>
<test name="Test3" preserve-order="true">
<parameter name="browser" value="explorer" />
<parameter name="suite" value="Test3" />
<classes>
<class name="test.Test3" />
</classes>
</test>
</suite>
ну и код каждого теста выглядит вот так вот
package test;
import org.testng.annotations.Optional;
import org.testng.annotations.Parameters;
import org.testng.annotations.Test;
public class Test1 {
<span style="color: rgb(128, 128, 48); ">@</span>Parameters<span style="color: rgb(128, 128, 48); ">(</span><span style="color: rgb(128, 0, 128); ">{</span><span style="color: rgb(0, 0, 230); ">"browser"</span><span style="color: rgb(128, 128, 48); ">,</span> <span style="color: rgb(0, 0, 230); ">"suite"</span><span style="color: rgb(128, 0, 128); ">}</span><span style="color: rgb(128, 128, 48); ">)</span>
<span style="color: rgb(128, 128, 48); ">@</span>Test
<span style="color: rgb(128, 0, 0); font-weight: bold; ">public</span> <span style="color: rgb(187, 121, 119); ">void</span> testA<span style="color: rgb(128, 128, 48); ">(</span><span style="color: rgb(128, 128, 48); ">@</span>Optional<span style="color: rgb(128, 128, 48); ">(</span><span style="color: rgb(0, 0, 230); ">"default browser"</span><span style="color: rgb(128, 128, 48); ">)</span> <span style="color: rgb(187, 121, 119); font-weight: bold; ">String</span> browser<span style="color: rgb(128, 128, 48); ">,</span> <span style="color: rgb(187, 121, 119); font-weight: bold; ">String</span> suite<span style="color: rgb(128, 128, 48); ">)</span> <span style="color: rgb(128, 0, 128); ">{</span>
<span style="color: rgb(187, 121, 119); font-weight: bold; ">System</span><span style="color: rgb(128, 128, 48); ">.</span>out<span style="color: rgb(128, 128, 48); ">.</span>println<span style="color: rgb(128, 128, 48); ">(</span>suite<span style="color: rgb(128, 128, 48); ">+</span><span style="color: rgb(0, 0, 230); ">", "</span><span style="color: rgb(128, 128, 48); ">+</span>getClass<span style="color: rgb(128, 128, 48); ">(</span><span style="color: rgb(128, 128, 48); ">)</span><span style="color: rgb(128, 128, 48); ">.</span>getName<span style="color: rgb(128, 128, 48); ">(</span><span style="color: rgb(128, 128, 48); ">)</span><span style="color: rgb(128, 128, 48); ">+</span><span style="color: rgb(0, 0, 230); ">", "</span><span style="color: rgb(128, 128, 48); ">+</span>browser<span style="color: rgb(128, 128, 48); ">)</span><span style="color: rgb(128, 0, 128); ">;</span>
assert <span style="color: rgb(128, 0, 0); font-weight: bold; ">true</span><span style="color: rgb(128, 0, 128); ">;</span>
<span style="color: rgb(128, 0, 128); ">}</span>
<span style="color: rgb(128, 128, 48); ">@</span>Parameters<span style="color: rgb(128, 128, 48); ">(</span><span style="color: rgb(128, 0, 128); ">{</span><span style="color: rgb(0, 0, 230); ">"browser"</span><span style="color: rgb(128, 128, 48); ">,</span> <span style="color: rgb(0, 0, 230); ">"suite"</span><span style="color: rgb(128, 0, 128); ">}</span><span style="color: rgb(128, 128, 48); ">)</span>
<span style="color: rgb(128, 128, 48); ">@</span>Test
<span style="color: rgb(128, 0, 0); font-weight: bold; ">public</span> <span style="color: rgb(187, 121, 119); ">void</span> testB<span style="color: rgb(128, 128, 48); ">(</span><span style="color: rgb(128, 128, 48); ">@</span>Optional<span style="color: rgb(128, 128, 48); ">(</span><span style="color: rgb(0, 0, 230); ">"default browser"</span><span style="color: rgb(128, 128, 48); ">)</span> <span style="color: rgb(187, 121, 119); font-weight: bold; ">String</span> browser<span style="color: rgb(128, 128, 48); ">,</span> <span style="color: rgb(187, 121, 119); font-weight: bold; ">String</span> suite<span style="color: rgb(128, 128, 48); ">)</span> <span style="color: rgb(128, 0, 128); ">{</span>
<span style="color: rgb(187, 121, 119); font-weight: bold; ">System</span><span style="color: rgb(128, 128, 48); ">.</span>out<span style="color: rgb(128, 128, 48); ">.</span>println<span style="color: rgb(128, 128, 48); ">(</span>suite<span style="color: rgb(128, 128, 48); ">+</span><span style="color: rgb(0, 0, 230); ">", "</span><span style="color: rgb(128, 128, 48); ">+</span>getClass<span style="color: rgb(128, 128, 48); ">(</span><span style="color: rgb(128, 128, 48); ">)</span><span style="color: rgb(128, 128, 48); ">.</span>getName<span style="color: rgb(128, 128, 48); ">(</span><span style="color: rgb(128, 128, 48); ">)</span><span style="color: rgb(128, 128, 48); ">+</span><span style="color: rgb(0, 0, 230); ">", "</span><span style="color: rgb(128, 128, 48); ">+</span>browser<span style="color: rgb(128, 128, 48); ">)</span><span style="color: rgb(128, 0, 128); ">;</span>
assert <span style="color: rgb(128, 0, 0); font-weight: bold; ">true</span><span style="color: rgb(128, 0, 128); ">;</span>
<span style="color: rgb(128, 0, 128); ">}</span>
<span style="color: rgb(128, 128, 48); ">@</span>Parameters<span style="color: rgb(128, 128, 48); ">(</span><span style="color: rgb(128, 0, 128); ">{</span><span style="color: rgb(0, 0, 230); ">"browser"</span><span style="color: rgb(128, 128, 48); ">,</span> <span style="color: rgb(0, 0, 230); ">"suite"</span><span style="color: rgb(128, 0, 128); ">}</span><span style="color: rgb(128, 128, 48); ">)</span>
<span style="color: rgb(128, 128, 48); ">@</span>Test
<span style="color: rgb(128, 0, 0); font-weight: bold; ">public</span> <span style="color: rgb(187, 121, 119); ">void</span> testC<span style="color: rgb(128, 128, 48); ">(</span><span style="color: rgb(128, 128, 48); ">@</span>Optional<span style="color: rgb(128, 128, 48); ">(</span><span style="color: rgb(0, 0, 230); ">"default browser"</span><span style="color: rgb(128, 128, 48); ">)</span> <span style="color: rgb(187, 121, 119); font-weight: bold; ">String</span> browser<span style="color: rgb(128, 128, 48); ">,</span> <span style="color: rgb(187, 121, 119); font-weight: bold; ">String</span> suite<span style="color: rgb(128, 128, 48); ">)</span> <span style="color: rgb(128, 0, 128); ">{</span>
<span style="color: rgb(187, 121, 119); font-weight: bold; ">System</span><span style="color: rgb(128, 128, 48); ">.</span>out<span style="color: rgb(128, 128, 48); ">.</span>println<span style="color: rgb(128, 128, 48); ">(</span>suite<span style="color: rgb(128, 128, 48); ">+</span><span style="color: rgb(0, 0, 230); ">", "</span><span style="color: rgb(128, 128, 48); ">+</span>getClass<span style="color: rgb(128, 128, 48); ">(</span><span style="color: rgb(128, 128, 48); ">)</span><span style="color: rgb(128, 128, 48); ">.</span>getName<span style="color: rgb(128, 128, 48); ">(</span><span style="color: rgb(128, 128, 48); ">)</span><span style="color: rgb(128, 128, 48); ">+</span><span style="color: rgb(0, 0, 230); ">", "</span><span style="color: rgb(128, 128, 48); ">+</span>browser<span style="color: rgb(128, 128, 48); ">)</span><span style="color: rgb(128, 0, 128); ">;</span>
assert <span style="color: rgb(128, 0, 0); font-weight: bold; ">true</span><span style="color: rgb(128, 0, 128); ">;</span>
<span style="color: rgb(128, 0, 128); ">}</span>
}
и результаты которые я получил, как видите все правильно работает
Test2, test.Test2, chrome
Test1, test.Test1, firefox
Test3, test.Test3, explorer
Test2, test.Test2, chrome
Test1, test.Test1, firefox
Test3, test.Test3, explorer
Test1, test.Test1, firefox
Test2, test.Test2, chrome
Test3, test.Test3, explorer
какую версию ТестНГ вы используете? у меня 6.3.1