http://wilddiary.com/validate-json-against-schema-in-java/
https://jsonschema.net/#/
http://jsonviewer.stack.hu/
sample json schema:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "mytitle",
"description": "my description",
"type": "object",
"required": [
"data",
"status"
],
"properties": {
"status": {
"type": "number"
},
"data": {
"type": "array",
"minItems": 1,
"additionalItems": true,
"items": {
"required": [
"myStatus1",
"myMediaPlanType",
"myBudget",
"myAccountID",
"myAccountName",
"myNotes",
"myMediaPlans",
"myAuditData",
"myUsage1",
"myMediaPlansCount",
"myIsParentCrossBrandCampaign",
"myCrossBrandIDs",
"myCrossBrandChildCampaign",
"myID",
"myName"
],
"myStatus1": {
"type": "number"
},
"myMediaPlanType": {
"type": "number"
},
"myBudget": {
"type": "number"
},
"myAccountID": {
"type": "number"
},
"myNotes": {
"type": "string"
},
"myMediaPlans": {
"type": "array"
},
"myAuditData": {
"type": "object",
"required": [
"myCreatedByID",
"myLastUpdatedByID",
"myCreatedDate",
"myLastUpdatedDate"
],
"properties": {
"myCreatedByID": {
"type": "number"
},
"myLastUpdatedByID": {
"type": "number"
},
"myCreatedDate": {
"type": "string"
},
"myLastUpdatedDate": {
"type": "string"
}
}
},
"myUsage1": {
"type": "number"
},
"myMediaPlansCount": {
"type": "number"
},
"myIsParentCrossBrandCampaign": {
"type": "string"
},
"myCrossBrandIDs": {
"type": "array"
},
"myCrossBrandChildCampaign": {
"type": "array"
},
"myID": {
"type": "number"
},
"myName": {
"type": "string"
}
}
}
}
}
Tuesday, 14 March 2017
Tuesday, 7 March 2017
Write into file in append mode / file writer
package com.google.email;
import java.io.*;
import java.io.IOException;
public class WriteTextUtil {
public void writeInAppendMode(String path, String strFinal) throws IOException {
BufferedWriter bw = null;
FileWriter fw = null;
try {
fw = new FileWriter(path, true);
bw = new BufferedWriter(fw);
PrintWriter out = new PrintWriter(bw);
out.println(strFinal);
out.println("\n");
} finally {
if (bw != null)
bw.close();
if (fw != null)
fw.close();
}
}
}
import java.io.*;
import java.io.IOException;
public class WriteTextUtil {
public void writeInAppendMode(String path, String strFinal) throws IOException {
BufferedWriter bw = null;
FileWriter fw = null;
try {
fw = new FileWriter(path, true);
bw = new BufferedWriter(fw);
PrintWriter out = new PrintWriter(bw);
out.println(strFinal);
out.println("\n");
} finally {
if (bw != null)
bw.close();
if (fw != null)
fw.close();
}
}
}
Saturday, 4 March 2017
Appium on OSX
Appium-OSX
Tutorial
Required software:
Java: JDK
Appium : http://appium.io
Any java IDE: Eclipse / Intellij idea
Appium java client : https://mvnrepository.com/artifact/io.appium/java-client/4.1.2
Selenium stand alone server : https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-server-standalone/2.53.0
Xcode : developer.apple.com/xcode/downloads : version 5.1 or
higher (i.e 6.1 )
( for opening Iphone simulator)
-
Command line tools (OS X 10.9).pkg
-
Xcode_6.1.1.dmg
Device Configuration : Enable UI automation in mobile (1.Connect your mobile
to laptop. 2. Go to settings 3. Developper
4. Enable UI automation
Iphone Simulator
verification:
Open Xcode
Click on Create a new Xcode project – Choose single view
application – product name : test,
language : Objective c, Device: Universal
Next
Choose folder name
Create
Click on Run
If it opens a simulator, you are done and then you can close
everything.
Installation:
Install Appium and
choose IOS
Click on Apple symbol to add or modify settings
Basic Tab:
Provide App path : App which you want to automate ( download
app in your local .ipa extension)
Force Device : check the check box and choose your connected
device
Platform version: UDID- Unique Device Id: (open xcode ->
Devices-> select the device you want to
test , you can find Identifier ,
this is the UDID ) (This is basically alias name , give Name: KranthiIphone6)
Full Rest : check the checkbox – every time we run test we
have a clean start
Advanced tab:
Xcode path : make sure xcode path pointed to actual
installation
Click on launch button
Once you see 200 in the console, you can start inspecting
elements
Click on Inspector UI ( magnifier symbol )
This will install the app on your mobile and shows screen in
inspector
We can choose any element and find xpath for the same
Appium setup
Check:
Click on Appium Doctor button
Code sample:
Open Eclipse
Create a maven project
Add appium-client and selenium server standalone jar to
build path
Public class FirstTest{
Public static void main(String[] args){
DesiredCapabilities cap=new DesiredCapabilities();
Cap.setCapabilities(“platformName”,”ios”);
Cap.setCapabilities(“platformVersion”,”8.1”);
Cap.setCapabilities(“deviceName”,” KranthiIphone6”);// this
we configured earlier in appium server
IOSDriver driver=new IOSDriver(new URL(http://127.0.0.1:4723/we/hub”),cap);
Driver.manage.timeouts().implicitwiat(60,TimeUnits.SECONDS);
Driver.findElement(By.xpath(“xpath”)).click();
//we can build our own xpaths by copying xpath of the device
screen and then we can write xpaths
//xpathtester.com/xpath
Driver.quite();
}
Labels:
app testing,
Appium,
automation,
iphone,
mac os,
osx,
webdriver
Friday, 17 February 2017
release the port in windows OS
Windows OS:
cmd> netstat -ano | findstr 8080
lists who is using port 8080 and related process id
port - pid
8080 - 13892
do you want to kill process ?
taskkill /f /pid 13892
SUCCESS
Thursday, 16 February 2017
Read soap xml file using xpath
import org.apache.xmlbeans.impl.xb.xsdschema.FieldDocument;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.xml.sax.InputSource;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.xpath.XPath;
import javax.xml.xpath.XPathConstants;
import javax.xml.xpath.XPathFactory;
import java.io.FileReader;
public class SoapReaderUsingXpath {
public static void main(String[] args){
String result ="";
String soapXmlFile;
DocumentBuilderFactory dbf;
DocumentBuilder db;
Document doc;
XPath xpath;
Node nl;
soapXmlFile="C:\\wssoap.xml";
String myXpath="//Element/Body/Node1/text()";
try{
dbf=DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(false);
db=dbf.newDocumentBuilder();
doc=db.parse(new InputSource(new FileReader(soapXmlFile)));
xpath= XPathFactory.newInstance().newXPath();
nl=(Node)xpath.evaluate(myXpath,doc.getDocumentElement(), XPathConstants.NODE);
result=nl.getNodeValue();
}
catch (Exception ex){}
}
}
Read text file?
BufferedReader br = new BufferedReader(new FileReader("file.txt"));
try {
StringBuilder sb = new StringBuilder();
String line = br.readLine();
while (line != null) {
sb.append(line);
sb.append(System.lineSeparator());
line = br.readLine();
}
String everything = sb.toString();
} finally {
br.close();
}
Tuesday, 14 February 2017
Read xml file content
import java.io.*;
import java.nio.charset.Charset;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.MimeHeaders;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;
import org.w3c.dom.NodeList;
public class NewTest {
public static void main(String[] args) throws IOException, SOAPException {
String xmlInput = getTexFromXML("C:\\Inboud_testfile_before.xml");
MessageFactory factory = MessageFactory.newInstance();
SOAPMessage message = factory.createMessage(
new MimeHeaders(),
new ByteArrayInputStream(xmlInput.getBytes(Charset
.forName("UTF-8"))));
SOAPBody body = message.getSOAPBody();
getValue(body,"REC_MEME","MEME_CK",0);
}
private static String getTexFromXML(String xmlPath) {
String xmlInput;
BufferedReader br = null;
try {
br = new BufferedReader(new FileReader(new File(xmlPath)));
String line;
StringBuilder sb = new StringBuilder();
while ((line = br.readLine()) != null) {
sb.append(line.trim());
}
xmlInput = sb.toString();
return xmlInput;
} catch (Exception e) {
e.printStackTrace();
}
return xmlPath;
}
public static void getValue(SOAPBody body, String parentNode, String childNode, Integer position)
{
NodeList returnList = body.getElementsByTagName(parentNode);
for (int k = 0; k < returnList.getLength(); k++) {
if(position==k) {
NodeList innerResultList = returnList.item(k).getChildNodes();
for (int l = 0; l < innerResultList.getLength(); l++) {
if (innerResultList.item(l).getNodeName()
.equalsIgnoreCase(childNode)) {
System.out.println(Integer.valueOf(innerResultList.item(l)
.getTextContent().trim()));
}
}
}
}
}
}
Subscribe to:
Posts (Atom)