Je lis les données d'entrée du fichier json. Ma structure de fichier JSON estComment saisir des données à partir d'un fichier tableau json lorsque plusieurs tableaux sont présents dans le fichier json en utilisant java
`{ "testloginpage":[
{
"username":"hellotest",
"password":"password1234",
},
], "emailtest":[
{
"fromemailaddress":"[email protected]",
"testemailserver":"111.11.11.1",
"testusername":"test",
"testpassword":"test",
},
{
"fromemailaddress":"[email protected]",
"testemailserver":"22.22.22.2",
"testusername":"aaaa",
"testpassword":"aaaa",
}, ],
}`
Je suis en mesure de boucle à travers et capable de lire toutes les données en utilisant le code suivant:
public static void readFromJson() {
JSONParser parser = new JSONParser();
try{
FileReader reader = new FileReader ("<--FilePath--><filenale>.json.txt");
JSONParser jsonParser = new JSONParser();
JSONObject jsonObject = (JSONObject) jsonParser.parse(reader);
JSONArray login = (JSONArray) jsonObject.get("testloginpage");
for (int i = 0; i<login.size();i++){
JSONObject jsonObjectRow = (JSONObject) login.get(i);
UserName = (String) jsonObjectRow.get("username");
Password = (String) jsonObjectRow.get("password");
}
JSONArray emailtestfields = (JSONArray) jsonObject.get("emailtest");
for (i = 0; i<emailtestfields.size();i++)
{
System.out.println("The "+i+" elements in email test are" +emailtestfields.get(i));
}
Iterator i = emailtestfields.iterator();
while (i.hasNext()){
JSONObject innerObj = (JSONObject) i.next();
System.out.println("From email address is "+innerObj.get("fromemailaddress"));
fromEmailAddressEmailSettings = (String) innerObj.get("fromemailaddress");
System.out.println("test Email Server is "+innerObj.get("testemailserver"));
emailServerEmailSettings = (String) innerObj.get("testemailserver");
System.out.println("User name is "+innerObj.get("testusername"));
testUserNameEmailSettings = (String) innerObj.get("testusername");
System.out.println("test User password is "+innerObj.get("testuserpassword"));
testPasswordEmailSettings = (String) innerObj.get("testpassword");
}
}catch (Exception e) {
System.out.println("Error: "+e);
}
}
J'ai une classe testng où je suis la création d'un script de test. Actuellement, le script n'enregistre que le deuxième ensemble de données dans le formulaire et l'enregistre. Le scénario que j'essaye de réaliser est que je dois lire de json combien d'enregistrements d'emailtest sont disponibles (dans par exemple son 2) et que dans ma classe de test je dois d'abord prendre le premier ensemble de données emailtest et entrer et enregistrer et prendre le deuxième ensemble et entrer dans l'application Web et enregistrer. J'ai créé une fonction générique pour entrer des données dans la zone de texte qui fonctionnent bien. Je ne sais pas comment puis-je porter le compte de la boucle dans mon script de test de test et d'abord entrer dans le premier ensemble de données et enregistrer et que prendre le deuxième ensemble, entrer et enregistrer.