Взгляните на dom4j , и это мой подход. Я реализовал инфраструктуру Selen + Junit, и все входные данные представлены в формате XML. Поэтому я настроил структуру ввода xml. Поэтому, если вы идете в этом направлении, я бы посоветовал вам определить, какой формат / структура xml.
Пример:
<seleniumtest>
<!-- Selenium Test Parameters -->
<Parameter name="inputValue">
<value>myvalue</value>
</Parameter>
<Parameter name="mypassword">
<value>password</value>
</Parameter>
<Parameter name="users">
<value>user1</value>
<value>user2</value>
</Parameter>
</seleniumtest>
После того, как вы доработаете структуру, вы можете начать анализировать и выставлять данные в оставшуюся часть теста или только для одного теста.
Вот начало вашего парсера xml, создайте класс и прочитайте конструктор в файле xml,
public class XMLFileParser {
private static final Logger log = Logger.getLogger(XMLFileParser.class.getName());
private Document document;
/**
* Method will construct a Document Object from the given InputStream
* @param readIn The input stream to read the document.
*/
public XMLFileParser(InputStream readIn) {
SAXReader reader = new SAXReader();
try {
document = reader.read(readIn);
}catch (DocumentException ex) {
log.error("Error when attempting to parse input data file", ex);
}
}
/**
* Write a method to iterate over the nodes to actually parse the xml file.
*/
public HashMap<String, Object> parseInput(HashMap<String, Object> params) {
Element rootElement = document.getRootElement();
for(Iterator iter = rootElement.elementIterator("Parameter"); iter.hasNext();) {
// This where you should write your parse logic,
}
return params;
}
Это не обязательно должен быть хэш-файл, но это то, что я хотел сделать, вы можете заставить этот метод возвращать все, что вы пожелаете, на основе вашей инфраструктуры.
Веселись;