Простите вопрос для начинающих, но я прежде всего тестировщик, и я пытаюсь понять, как с этим справиться.Я просто пытаюсь заполнить некоторые тестовые данные, прочитав частичный URL-адрес веб-сайта и соответствующий ему идентификатор входа в систему синдикатора, используя буферизованный читатель входного потока и возвращая два значения из каждой строки, разделенные запятой.
Вот мой csv:
website1.uk, website1syndicator
website2.uk, website2syndicator
website3.uk, website3syndicator
Вот мой класс для чтения csv и заполнения List одним элементом String:
public class AbstractTestAllSites extends PageBase {
private static Logger log = LoggerFactory.getLogger(AbstractTestAllSites.class);
private static List<String> allWebsiteNames;
static {
try (InputStream websiteListInputStream = AbstractTestAllSites.class.getResourceAsStream("/websites/my_sites.csv")) {
readAllWebsiteNamesFrom(websiteListInputStream);
} catch (IOException e) {
log.error("Failed to read websitelist!", e);
}
}
private static void readAllWebsiteNamesFrom(InputStream input) throws IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(input, StandardCharsets.UTF_8));
List<String> websites = new ArrayList<String>();
String listLine;
while ((listLine = reader.readLine()) != null) {
listLine = listLine.trim();
if (!(listLine.startsWith("#") || isBlank(listLine))) {
websites.add(listLine);
}
}
allWebsiteNames = unmodifiableList(websites);
}
@Parameterized.Parameters
public static final List<String> data() {
return allWebsiteNames;
}
}
Затем я могу передать конечные точки веб-сайта в свой тест следующим образом:
private static final String url = "http://mydomain.";
private String website;
private String syndicator;
public static WebDriver driver;
public TestAllSitesTest(String website, String syndicator){
this.website = website;
this.syndicator = syndicator;
}
@Before
public void getNextWebsite(){
driver.get(url + this.website);
}
//run my tests here...
... и выполнить итерацию по ним до завершения.Но как я могу передать два параметра, чтобы я мог получить доступ к переменной синдикатора - возможно, нужен HashMap или аналогичный, а затем разделить на запятую, но с трудом.