Steff

导航

Macaca Android Java TestNG

package client;
import com.alibaba.fastjson.JSONObject;
import macaca.client.MacacaClient;
import macaca.client.commands.Element;
import macaca.client.common.GetElementWay;
import org.testng.Assert;
import org.testng.annotations.*;
import universal.jdbc.ConnectionUtil;
import universal.jdbc.JdbcHelper;

import java.io.File;
import java.io.IOException;
import java.util.List;

public class AndroidSampleTest {
MacacaClient driver = new MacacaClient();
// set screenshot save path
File directory = new File("");
public String courseFile = directory.getCanonicalPath();
private String mobile = "12345678900";
public double windowWidth;
public double windowLeight;

public AndroidSampleTest() throws IOException {
}

@Parameters({"port","udid"})
@BeforeClass
public void setUp(@Optional("4729") String port, @Optional("emulator-5554") String udid) throws Exception {
String platform = "android";
JSONObject porps = new JSONObject();
porps.put("platformName", platform);
porps.put("app", System.getProperty("user.dir")+"/app/" + Const.ANDROID_APP_NAME_nHUB);
porps.put("udid", udid);
porps.put("reuse", 1);
porps.put("autoAcceptAlerts",true);
JSONObject desiredCapabilities = new JSONObject();
desiredCapabilities.put("host", "127.0.0.1"); // custom server host
desiredCapabilities.put("port", Integer.parseInt(port)); // custom server port
desiredCapabilities.put("desiredCapabilities", porps);
driver = driver.initDriver(desiredCapabilities);
driver.waitElementTimeout = 10000;
JSONObject jsonObject = driver.getWindowSize();
System.out.println(jsonObject);
windowWidth = Double.parseDouble(jsonObject.get("width").toString());
windowLeight = Double.parseDouble(jsonObject.get("height").toString());

}

@Test
public void testCaseOne() throws Exception {
System.out.println("------------#1 login test-------------------");

customFront();
customFront();
customFront();

driver.waitForElement(GetElementWay.XPATH, "//*[@resource-id='com.:id/next']").click();
driver.waitForElement(GetElementWay.XPATH, "//*[@resource-id='com.:id/etMobile']").sendKeys(mobile);
driver.waitForElement(GetElementWay.XPATH,"//*[@text='Next']").click();
driver.keys(getSMSCodeByDataBase(mobile));
driver.waitForElement(GetElementWay.XPATH,"//*[@resource-id='com.:id/reLayout']").click();
driver.waitForElement(GetElementWay.XPATH,"//*[@resource-id='com.:id/postFeed']").click();
driver.waitForElement(GetElementWay.XPATH,"//*[@resource-id='com.:id/etMsg']").sendKeys("Fresh Fun Green Great");
driver.waitForElement(GetElementWay.XPATH,"//*[@resource-id='com.:id/titleComplete']").click();
String postContent = driver.waitForElement(GetElementWay.ID,"com.:id/expandable_text").getText();
Assert.assertEquals(postContent,"Fresh Fun Green Great");

}

public void customFront() {
try {
Element e = driver.waitForElement(GetElementWay.XPATH,"//*[@resource-id='com.:id/vp_video']");
driver.drag(windowWidth-20, windowLeight/2, 20, windowLeight/2, 0.1);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public void customBack() {
try {
Element e = driver.waitForElement(GetElementWay.XPATH,"//*[@resource-id='com.:id/vp_video']");
System.out.println(e.getCenterX() + ":" + e.getCenterY());
System.out.println("-------" + e.getRect() + "-------");
driver.drag(20, windowLeight/2, windowWidth-20, windowLeight/2, 0.1);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public String getSMSCodeByDataBase(String mobile) {
ConnectionUtil.setDataBaseName("testDB");
String sql = "SELECT * FROM testTable" +
" WHERE account = " + "'" +
mobile + "'" +
" AND" +
" accountType = 'MOBILE'" +
" ORDER BY createTime DESC" +
" LIMIT 0,1;";
System.out.println(sql);
List codeList = JdbcHelper.query(sql,"vCode");
System.out.println((String) codeList.get(0));
return (String) codeList.get(0);
}

@AfterClass
public void tearDown() throws Exception {
driver.waitForElement(GetElementWay.XPATH,"//*[@resource-id='com.:id/recyclerView']/android.widget.LinearLayout[1]/android.widget.RelativeLayout[1]/android.widget.TextView[1]").click();
driver.waitForElement(GetElementWay.XPATH,"//*[@text='Delete Feed']").click();
driver.quit();
}
}

posted on 2018-10-31 18:23  Steff  阅读(61)  评论(0)    收藏  举报