Commit de18a26f by Li Yongyu

add mock and banner 、

parent ac2c81c7
package com.offcn.ys.appWebAuto.app.tiku.pagesAction;
import io.appium.java_client.MobileElement;
import io.appium.java_client.TouchAction;
import io.appium.java_client.android.AndroidDriver;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import com.offcn.ys.appWebAuto.app.tiku.pagse.*;
import org.apache.poi.ss.formula.functions.Sumif;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.Sleeper;
import org.testng.AssertJUnit;
import org.testng.annotations.Test;
import com.offcn.ys.appWebAuto.frame.Database.db_cases;
import com.offcn.ys.appWebAuto.frame.pub.CutImage;
import com.offcn.ys.appWebAuto.frame.tools.Log;
import com.offcn.ys.appWebAuto.frame.tools.MapUtil;
import com.offcn.ys.appWebAuto.web.tiku.pages.*;;
public class estimateAction {
private AndroidDriver<WebElement> appdriver;
public static int Number;
public estimateAction(AndroidDriver appdriver) {
super();
this.appdriver = appdriver;
}
/**
* 数据库设置轮播图
* @throws InterruptedException
*/
public void dbset() throws InterruptedException {
String sql2 = "UPDATE t_recommend_object SET is_delete = 1 WHERE exam_id = 311 AND object_id = 2828";
db_cases.updatedb(sql2);
String sql1 = "UPDATE t_recommend_object SET is_delete = 0 WHERE exam_id = 311 AND object_id = 2826";
db_cases.updatedb(sql1);
Thread.sleep(1000);
}
/**
* 进入首页
*/
public void intofirstpage() {
WebElement radio_home = appdriver.findElement(Estimate.radio_home);
radio_home.click();
}
/**
* 从banner进入估分列表
* @throws IOException
*/
public void intoEstimate() throws IOException {
touchScreen();
}
/**
* 申论点击开始估分
*/
public void startSLEstimate() {
WebElement slstart = appdriver.findElement(Estimate.slbegin);
slstart.click();
}
/**
* 输入用户分数
*/
public void inputUsercore() {
WebElement usercore = appdriver.findElement(Estimate.inputscore);
usercore.click();
usercore.sendKeys("10");
pressReturnKey();
}
/**
* 交卷并查看解析
*/
public void submitandjiexi() {
WebElement submit = appdriver.findElement(Estimate.submit);
submit.click();
}
/**
* 确认
*/
public void hand_ok() {
WebElement handok = appdriver.findElement(Estimate.exam_ok);
handok.click();
}
/**
* 全部解析
* @throws InterruptedException
*/
public void clickAllAnalysis() throws InterruptedException {
WebElement clickall_analysis = appdriver.findElement(Estimate.all_analysis);
clickall_analysis.click();
}
/**
* 点击开始估分
*/
public void startEstimate() {
WebElement start = appdriver.findElement(Estimate.begin);
start.click();
}
/**
* 点击开始答题
*/
public void startAnswer() {
WebElement xcstart = appdriver.findElement(Estimate.xcstartanswer);
xcstart.click();
}
/**
* 底端向左滑动
*/
public void downmoveToleft() {
int width=appdriver.manage().window().getSize().width;
int height=appdriver.manage().window().getSize().height;
TouchAction tAction = new TouchAction(appdriver);
tAction.press(width - 100, height *5/ 6).waitAction(200).moveTo(100, height *5/ 6).release().perform();
}
/**
* 向左滑动
*/
public void moveToleft() {
int width=appdriver.manage().window().getSize().width;
int height=appdriver.manage().window().getSize().height;
TouchAction tAction = new TouchAction(appdriver);
tAction.press(width - 100, height *4/ 5).waitAction(200).moveTo(100, height *4/ 5).release().perform();
}
/**
* 重新学习
*/
public void clickRestudy() {
WebElement Restudy = appdriver.findElement(exerciseBook.Restudy);
Restudy.click();
WebElement Restudy_ok = appdriver.findElement(exerciseBook.Restudy_ok);
Restudy_ok.click();
}
/**
/**
* 错题解析
*/
public void erroranalysis() {
WebElement error_analysis = appdriver.findElement(exerciseBook.error_analysis);
error_analysis.click();
}
/**
* 错题解析返回首页
*/
public void clickbackfirstpage() {
WebElement back = appdriver.findElement(paper.back);
back.click();
back.click();
}
@SuppressWarnings("unchecked")
/**
* 点击屏幕上半部分中间
*/
public void touchScreen(){
@SuppressWarnings("rawtypes")
int width=appdriver.manage().window().getSize().width;
int height=appdriver.manage().window().getSize().height;
int x = width*1/2; //
int y = height*1/4; //
Map tap = new HashMap();
tap.put("tapCount", new Double(2));
tap.put("touchCount", new Double(1));
tap.put("duration", new Double(0.5));
tap.put("x", x);
tap.put("y", y);
appdriver.executeScript("mobile: tap", tap);
}
/**
* 向上滑动
*/
public void moveToUp() {
int width=appdriver.manage().window().getSize().width;
int height=appdriver.manage().window().getSize().height;
TouchAction tAction = new TouchAction(appdriver);
int y1 = height*4/5; //上滑的开始点,从y1开始也就是屏幕的四分之三处
int y2 = height*1/5; //上滑的结束点,到y2结束也就是屏幕的四分之一处
tAction.press(width/2,y1).waitAction(200).moveTo(width/2,y2).release().perform();
tAction.press(width/2,y1).waitAction(200).moveTo(width/2,y2).release().perform();
}
/**
* 向上滑动
*/
public void moveToUp_down() {
int width=appdriver.manage().window().getSize().width;
int height=appdriver.manage().window().getSize().height;
TouchAction tAction = new TouchAction(appdriver);
int y1 = height*5/6; //上滑的开始点,从y1开始也就是屏幕的四分之三处
int y2 = height*4/6; //上滑的结束点,到y2结束也就是屏幕的四分之一处
tAction.press(width/2,y1).waitAction(200).moveTo(width/2,y2).release().perform();
tAction.press(width/2,y1).waitAction(200).moveTo(width/2,y2).release().perform();
}
/**
* 滑动到元素或滑动到页面底部
*/
// 获取应用占屏幕大小
public int[] appScreen() {
int width = appdriver.manage().window().getSize().getWidth();
int height = appdriver.manage().window().getSize().getHeight();
int[] appSize = { width, height };
return appSize;
}
// 向上滑动
public void swipeToUp(int duration) {
int starty = appScreen()[1] * 4 / 6;
int endy = appScreen()[1] * 5 / 6;
int x = appScreen()[0] * 5 / 6;
try {
appdriver.swipe(x, starty, x, endy, duration);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 向下滑动
*/
public void moveToDown() {
int width=appdriver.manage().window().getSize().width;
int height=appdriver.manage().window().getSize().height;
TouchAction tAction = new TouchAction(appdriver);
int y1 = height*2/5; //上滑的开始点,从y1开始也就是屏幕的四分之三处
int y2 = height*4/5; //上滑的结束点,到y2结束也就是屏幕的四分之一处
tAction.press(width/2,y1).waitAction(200).moveTo(width/2,y2).release().perform();
tAction.press(width/2,y1).waitAction(200).moveTo(width/2,y2).release().perform();
}
/**
* 输入 用户名操作
*/
/**
* 按返回键
*/
public void pressReturnKey() {
appdriver.pressKeyCode(4);
}
/**
* 行测估分
*
* @throws InterruptedException
* @throws IOException
*/
@SuppressWarnings("unchecked")
@Test
public void xcestimate(HashMap<String, Object> data) throws InterruptedException, IOException {
Log.logInfo("行测估分 action");
appdriver.manage().timeouts().implicitlyWait(15,TimeUnit.SECONDS);
dbset();
intofirstpage();
intoEstimate();
Thread.sleep(3000);
startEstimate();
startAnswer();
inputUsercore();
Thread.sleep(1000);
moveToleft();//左滑
Thread.sleep(500);
submitandjiexi();
hand_ok();
Thread.sleep(500);
clickAllAnalysis();
}
/**
* 申论估分
*
* @throws InterruptedException
* @throws IOException
*/
@SuppressWarnings("unchecked")
@Test
public void slestimate(HashMap<String, Object> data) throws InterruptedException, IOException {
Log.logInfo("申论做试卷 action");
appdriver.manage().timeouts().implicitlyWait(15,TimeUnit.SECONDS);
dbset();
intofirstpage();
intoEstimate();
Thread.sleep(3000);
startSLEstimate();
startAnswer();
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 3; j++) {
moveToUp_down();//向上滑动3次
}
inputUsercore();
Thread.sleep(1000);
moveToleft();//左滑
}
Thread.sleep(500);
submitandjiexi();
hand_ok();
Thread.sleep(500);
clickAllAnalysis();
}
/**
* 行测估分校验
* @throws InterruptedException
*/
public boolean Verificationxcestimate(HashMap<String, Object> data) throws InterruptedException {
String ExpectName = MapUtil.getValue("Expect", data);
WebElement reference = appdriver
.findElement(Estimate.reference);
System.out.println("reference.getText======="
+ reference.getText()); //验证解析页面是否存在参考答案
if (reference.getText().contains(ExpectName))
{
for (int i = 0; i < 3; i++) {//从解析页面返回到首页
pressReturnKey();
Thread.sleep(1000);
}
return true;
}
else {
return false;
}
}
/**
* 申论估分校验
* @throws InterruptedException
*/
public boolean Verificationslestimate(HashMap<String, Object> data) throws InterruptedException {
String ExpectName = MapUtil.getValue("Expect", data);
WebElement reference = appdriver
.findElement(Estimate.reference);
System.out.println("reference.getText======="
+ reference.getText()); //验证解析页面是否存在正确答案
if (reference.getText().contains(ExpectName))
{
for (int i = 0; i < 3; i++) {//从解析页面返回到首页
pressReturnKey();
Thread.sleep(1000);
}
return true;
}
else {
return false;
}
}
}
...@@ -22,7 +22,7 @@ import com.offcn.ys.appWebAuto.frame.tools.MapUtil; ...@@ -22,7 +22,7 @@ import com.offcn.ys.appWebAuto.frame.tools.MapUtil;
import com.offcn.ys.appWebAuto.web.tiku.pages.*;; import com.offcn.ys.appWebAuto.web.tiku.pages.*;;
public class exerciseBookAction { public class exerciseBookAction {
private AndroidDriver appdriver; private AndroidDriver<WebElement> appdriver;
public exerciseBookAction(AndroidDriver appdriver) { public exerciseBookAction(AndroidDriver appdriver) {
...@@ -30,6 +30,15 @@ public class exerciseBookAction { ...@@ -30,6 +30,15 @@ public class exerciseBookAction {
this.appdriver = appdriver; this.appdriver = appdriver;
} }
/** /**
* 进入首页
*/
public void intofirstpage() {
WebElement radio_home = appdriver.findElement(firstPage.radio_home);
radio_home.click();
}
/**
* 进入书架 * 进入书架
*/ */
public void intoBookshelf() { public void intoBookshelf() {
...@@ -40,8 +49,11 @@ public class exerciseBookAction { ...@@ -40,8 +49,11 @@ public class exerciseBookAction {
/** /**
* 进入练习册+ * 进入练习册+
* @throws InterruptedException
*/ */
public void clickinexercisebook() { public void clickinexercisebook() throws InterruptedException {
appdriver.manage().timeouts().implicitlyWait(15,TimeUnit.SECONDS);
Thread.sleep(3000);
WebElement exercisebook = appdriver.findElement(exerciseBook.inexercisebook); WebElement exercisebook = appdriver.findElement(exerciseBook.inexercisebook);
exercisebook.click(); exercisebook.click();
...@@ -58,29 +70,38 @@ public class exerciseBookAction { ...@@ -58,29 +70,38 @@ public class exerciseBookAction {
Restudy_ok.click(); Restudy_ok.click();
} }
/** /**
* 选择 二级目录 * 选择 目录及练习册
* @throws InterruptedException
*/ */
public void choosesecond_view() { public void choose_view() throws InterruptedException {
WebElement clicksecond_view = appdriver.findElement(exerciseBook.second_view); WebElement clicksecond_view = appdriver.findElement(exerciseBook.second_view);
Thread.sleep(1000);
clicksecond_view.click(); clicksecond_view.click();
WebElement clickthird_view = appdriver.findElement(exerciseBook.third_view);
Thread.sleep(1000);
clickthird_view.click();
Thread.sleep(1000);
WebElement clickfour_view = appdriver.findElement(exerciseBook.fourth_view);
Thread.sleep(1000);
clickfour_view.click();
} }
/** /**
* 选择 三级目录 * 选择 三级目录
*/ */
public void choosethird_view() { /*public void choosethird_view() {
WebElement clickthird_view = appdriver.findElement(exerciseBook.third_view); List<WebElement> clickthree_view = appdriver.findElements(exerciseBook.view);
clickthird_view.click(); clickthree_view.get(1).click();;
} }
/** *//**
* 进入做题 * 进入做题
*/ *//*
public void choosefourth_view() { public void choosefourth_view() {
WebElement clickfourth_view = appdriver.findElement(exerciseBook.fourth_view); List<WebElement> clickfourth_view = appdriver.findElements(exerciseBook.view);
clickfourth_view.click(); clickfourth_view.get(2).click();;
} }*/
/** /**
* 选择答案 * 选择答案
*/ */
...@@ -108,13 +129,16 @@ public class exerciseBookAction { ...@@ -108,13 +129,16 @@ public class exerciseBookAction {
} }
/** /**
* 错题解析返回首页 * 错题解析返回首页
* @throws InterruptedException
*/ */
public void clickbackfirstpage() { public void clickbackfirstpage() throws InterruptedException {
WebElement back = appdriver.findElement(exerciseBook.back); WebElement back = appdriver.findElement(exerciseBook.back);
back.click(); for (int i = 0; i < 3; i++) {
back.click(); back.click();
back.click(); Thread.sleep(1000);
}
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
/** /**
...@@ -236,47 +260,44 @@ public class exerciseBookAction { ...@@ -236,47 +260,44 @@ public class exerciseBookAction {
Log.logInfo("做练习册 action"); Log.logInfo("做练习册 action");
appdriver.manage().timeouts().implicitlyWait(15,TimeUnit.SECONDS); appdriver.manage().timeouts().implicitlyWait(15,TimeUnit.SECONDS);
intofirstpage();
intoBookshelf();//进入书架 intoBookshelf();//进入书架
//Thread.sleep(1000); Thread.sleep(1000);
clickinexercisebook();//进入练习册
WebElement Restudy = appdriver.findElement(exerciseBook.Restudy);
clickinexercisebook();//进入练习册
if (Restudy.getText().contains("重新学习")) {
clickRestudy();
Thread.sleep(1000);
choosesecond_view();
Thread.sleep(1000);
choosethird_view();
Thread.sleep(1000);
choosefourth_view();
chooseAnswer();
Thread.sleep(1000); Thread.sleep(1000);
chooseAnswer(); choose_view();
for (int i = 0; i < 2; i++) {
chooseAnswer();
Thread.sleep(1000);
}
submitpaper(); submitpaper();
Thread.sleep(1000); Thread.sleep(1000);
erroranalysis(); erroranalysis();
//返回重做页面,重做一次
WebElement back = appdriver.findElement(exerciseBook.back);
}else { back.click();
choosesecond_view();
Thread.sleep(1000);
choosethird_view();
Thread.sleep(1000); Thread.sleep(1000);
choosefourth_view(); back.click();
chooseAnswer(); clickRestudy();
Thread.sleep(1000); Thread.sleep(1000);
chooseAnswer(); choose_view();
for (int i = 0; i < 2; i++) {
chooseAnswer();
Thread.sleep(1000);
}
submitpaper(); submitpaper();
Thread.sleep(1000); Thread.sleep(1000);
erroranalysis(); erroranalysis();
}
} }
/** /**
...@@ -287,19 +308,20 @@ public class exerciseBookAction { ...@@ -287,19 +308,20 @@ public class exerciseBookAction {
String ExpectName = MapUtil.getValue("Expect", data); String ExpectName = MapUtil.getValue("Expect", data);
swipeToUp(1000); for (int i = 0; i < 4; i++) {
Thread.sleep(1000); swipeToUp(1000);
swipeToUp(1000); Thread.sleep(1000);
Thread.sleep(1000);
swipeToUp(1000); }
Thread.sleep(1000);
swipeToUp(1000);
WebElement tv_analysis_des = appdriver WebElement tv_analysis_des = appdriver
.findElement(exerciseBook.tv_analysis_des); .findElement(exerciseBook.tv_analysis_des);
System.out.println("tv_analysis_des.getText=======" System.out.println("tv_analysis_des.getText======="
+ tv_analysis_des.getText()); + tv_analysis_des.getText());
if (tv_analysis_des.getText().contains(ExpectName)) if (tv_analysis_des.getText().contains(ExpectName))
return true; return true;
else { else {
......
...@@ -99,7 +99,7 @@ public class firstPageAction { ...@@ -99,7 +99,7 @@ public class firstPageAction {
} }
/** /**
* 验证添加联系人 * 验证返回首页
*/ */
public boolean Verificationexercisebackfirstpage(HashMap<String, Object> data) { public boolean Verificationexercisebackfirstpage(HashMap<String, Object> data) {
......
package com.offcn.ys.appWebAuto.app.tiku.pagesAction; package com.offcn.ys.appWebAuto.app.tiku.pagesAction;
import com.offcn.ys.appWebAuto.app.tiku.TK_DB; import com.offcn.ys.appWebAuto.app.tiku.TK_DB;
import io.appium.java_client.android.AndroidDriver; import io.appium.java_client.android.AndroidDriver;
import java.io.File;
import java.io.IOException;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Random; import java.util.Random;
...@@ -17,19 +22,12 @@ import org.openqa.selenium.WebElement; ...@@ -17,19 +22,12 @@ import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.Sleeper; import org.openqa.selenium.support.ui.Sleeper;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import com.offcn.ys.appWebAuto.frame.pub.CutImage;
import com.offcn.ys.appWebAuto.frame.tools.Log; import com.offcn.ys.appWebAuto.frame.tools.Log;
import com.offcn.ys.appWebAuto.frame.tools.MapUtil; import com.offcn.ys.appWebAuto.frame.tools.MapUtil;
import com.offcn.ys.appWebAuto.web.tiku.pages.loginPage; import com.offcn.ys.appWebAuto.web.tiku.pages.loginPage;
public class loginAction extends TK_DB{ public class loginAction extends TK_DB {
String phone = ""; String phone = "";
private AndroidDriver appdriver; private AndroidDriver appdriver;
...@@ -39,11 +37,13 @@ public class loginAction extends TK_DB{ ...@@ -39,11 +37,13 @@ public class loginAction extends TK_DB{
} }
String code = ""; String code = "";
/** /**
* 删除用户名操作 * 删除用户名操作
*/ */
public void username_delete() { public void username_delete() {
WebElement username_delete = appdriver.findElement(login.username_delete); WebElement username_delete = appdriver
.findElement(login.username_delete);
username_delete.click(); username_delete.click();
} }
...@@ -79,6 +79,7 @@ public class loginAction extends TK_DB{ ...@@ -79,6 +79,7 @@ public class loginAction extends TK_DB{
WebElement loginbutton = appdriver.findElement(login.loginbutton); WebElement loginbutton = appdriver.findElement(login.loginbutton);
loginbutton.click(); loginbutton.click();
} }
/** /**
* 注册按钮 * 注册按钮
*/ */
...@@ -86,6 +87,7 @@ public class loginAction extends TK_DB{ ...@@ -86,6 +87,7 @@ public class loginAction extends TK_DB{
WebElement register = appdriver.findElement(login.register); WebElement register = appdriver.findElement(login.register);
register.click(); register.click();
} }
/** /**
* 注册输入手机号 * 注册输入手机号
*/ */
...@@ -93,7 +95,7 @@ public class loginAction extends TK_DB{ ...@@ -93,7 +95,7 @@ public class loginAction extends TK_DB{
WebElement inputphone = appdriver.findElement(login.inputphone); WebElement inputphone = appdriver.findElement(login.inputphone);
inputphone.sendKeys(phonenum); inputphone.sendKeys(phonenum);
} }
/** /**
* 点击注册 * 点击注册
*/ */
...@@ -107,54 +109,55 @@ public class loginAction extends TK_DB{ ...@@ -107,54 +109,55 @@ public class loginAction extends TK_DB{
e.printStackTrace(); e.printStackTrace();
} }
} }
/** /**
* 注册输入验证码 * 注册输入验证码
* @throws InterruptedException *
* @throws InterruptedException
*/ */
public void inputcheckcode() throws InterruptedException { public void inputcheckcode() throws InterruptedException {
try { try {
String sql="SELECT code FROM t_code where phone = "+phone+" ORDER BY create_time DESC LIMIT 1"; String sql = "SELECT code FROM t_code where phone = " + phone
//SELECT id FROM n_template ORDER BY id DESC LIMIT 1 + " ORDER BY create_time DESC LIMIT 1";
// SELECT id FROM n_template ORDER BY id DESC LIMIT 1
ResultSet rs_bankcard = this.sqlFromDB(sql); ResultSet rs_bankcard = this.sqlFromDB(sql);
rs_bankcard.last(); rs_bankcard.last();
code = rs_bankcard.getString("code"); code = rs_bankcard.getString("code");
System.out.println("code===" + code); System.out.println("code===" + code);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
WebElement checkcode = appdriver.findElement(login.checkcode); WebElement checkcode = appdriver.findElement(login.checkcode);
checkcode.sendKeys(code); checkcode.sendKeys(code);
/*String code1 =code.substring(0,1); /*
String code2 = code.substring(1,2); * String code1 =code.substring(0,1); String code2 =
String code3 = code.substring(2,3); * code.substring(1,2); String code3 = code.substring(2,3); String code4
String code4 = code.substring(3,4); * = code.substring(3,4);
*
WebElement checkcode1 = appdriver.findElement(login.checkcode1); * WebElement checkcode1 = appdriver.findElement(login.checkcode1);
checkcode1.sendKeys(code1); * checkcode1.sendKeys(code1);
*
WebElement checkcode2 = appdriver.findElement(login.checkcode2); * WebElement checkcode2 = appdriver.findElement(login.checkcode2);
checkcode2.click(); * checkcode2.click(); checkcode2.sendKeys(code2); WebElement checkcode3
checkcode2.sendKeys(code2); * = appdriver.findElement(login.checkcode3); checkcode3.click();
WebElement checkcode3 = appdriver.findElement(login.checkcode3); * checkcode3.sendKeys(code3); WebElement checkcode4 =
checkcode3.click(); * appdriver.findElement(login.checkcode4); checkcode4.click();
checkcode3.sendKeys(code3); * checkcode4.sendKeys(code4);
WebElement checkcode4 = appdriver.findElement(login.checkcode4); */
checkcode4.click();
checkcode4.sendKeys(code4);*/
} }
/** /**
* 注册输入密码 * 注册输入密码
*/ */
public void inputpassword(String password) { public void inputpassword(String password) {
WebElement inputpassword = appdriver.findElement(login.password); WebElement inputpassword = appdriver.findElement(login.password);
inputpassword.sendKeys(password);; inputpassword.sendKeys(password);
;
} }
/** /**
* 注册完成按钮 * 注册完成按钮
*/ */
...@@ -162,49 +165,59 @@ public class loginAction extends TK_DB{ ...@@ -162,49 +165,59 @@ public class loginAction extends TK_DB{
WebElement finishbutton = appdriver.findElement(login.finishbutton); WebElement finishbutton = appdriver.findElement(login.finishbutton);
finishbutton.click(); finishbutton.click();
} }
/** /**
* 注册完成添加考试 * 注册完成添加考试
* @throws InterruptedException *
* @throws InterruptedException
*/ */
public void chooseexam() throws InterruptedException { public void chooseexam() throws InterruptedException {
WebElement chooseexam = appdriver.findElement(login.exam); WebElement chooseexam = appdriver.findElement(login.exam);
chooseexam.click(); chooseexam.click();
Thread.sleep(2000); Thread.sleep(2000);
} }
/** /**
* 登录 * 登录
* *
* @throws InterruptedException * @throws InterruptedException
* @throws IOException
*/ */
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Test @Test
public void login(HashMap<String, Object> data) throws InterruptedException { public void login(HashMap<String, Object> data)
throws InterruptedException, IOException {
Log.logInfo("登录action"); Log.logInfo("登录action");
appdriver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS); appdriver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
// Thread.sleep(10000); // Thread.sleep(10000);
username_delete(); username_delete();
username_input(); username_input();
//Thread.sleep(1000); // Thread.sleep(1000);
pwd_input(); pwd_input();
//Thread.sleep(1000); // Thread.sleep(1000);
pressReturnKey(); pressReturnKey();
//Thread.sleep(1000); // Thread.sleep(1000);
clickLoginButton(); clickLoginButton();
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
@Test @Test
public void register(HashMap<String, Object> data) throws InterruptedException { public void register(HashMap<String, Object> data)
throws InterruptedException, IOException {
Log.logInfo("注册action"); Log.logInfo("注册action");
String parameter = MapUtil.getValue("parameter", data); String parameter = MapUtil.getValue("parameter", data);
//phone = MapUtil.getParameter(parameter, "username").trim(); // phone = MapUtil.getParameter(parameter, "username").trim();
phone = "1391"+(new Random().nextInt(9000000)+ 1000000); phone = "1498" + (new Random().nextInt(9000000) + 1000000);
String password = MapUtil.getParameter(parameter, "password").trim(); String password = MapUtil.getParameter(parameter, "password").trim();
appdriver.manage().timeouts().implicitlyWait(30,TimeUnit.SECONDS); appdriver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
// Thread.sleep(10000); // Thread.sleep(10000);
intoRegister(); intoRegister();
inputphone(phone); inputphone(phone);
clickregister(); clickregister();
...@@ -212,7 +225,9 @@ public class loginAction extends TK_DB{ ...@@ -212,7 +225,9 @@ public class loginAction extends TK_DB{
inputpassword(password); inputpassword(password);
clickfinishbutton(); clickfinishbutton();
chooseexam(); chooseexam();
} }
/** /**
* 验证登陆 * 验证登陆
*/ */
...@@ -227,6 +242,7 @@ public class loginAction extends TK_DB{ ...@@ -227,6 +242,7 @@ public class loginAction extends TK_DB{
} }
} }
/** /**
* 验证注册 * 验证注册
*/ */
......
...@@ -352,21 +352,20 @@ public class mockAction { ...@@ -352,21 +352,20 @@ public class mockAction {
choose_sx_exam(); choose_sx_exam();
chooseStart_exam(); chooseStart_exam();
choosetitle(); choosetitle();
chooseAnswerCheck(); for (int i = 0; i < 2; i++) { //2为复选题数量
moveToleft(); Thread.sleep(1000);
chooseAnswerCheck(); chooseAnswerCheck();
moveToleft(); Thread.sleep(1000);
moveToleft();
chooseAnswerRadio(); // chooseAnswerCheck();
Thread.sleep(1000); // moveToleft();
chooseAnswerRadio(); }
Thread.sleep(100);
chooseAnswerRadio();
Thread.sleep(100);
chooseAnswerRadio();
Thread.sleep(100);
chooseAnswerRadio();
for (int i = 0; i < 5; i++) { //单选题数量
chooseAnswerRadio();
Thread.sleep(1000);
}
jiexisl(); jiexisl();
hand_ok(); hand_ok();
choose_sl_exam(); choose_sl_exam();
...@@ -380,9 +379,10 @@ public class mockAction { ...@@ -380,9 +379,10 @@ public class mockAction {
pressReturnKey(); pressReturnKey();
Thread.sleep(1000); Thread.sleep(1000);
pressReturnKey(); pressReturnKey();
backtofirst();
Thread.sleep(1000); Thread.sleep(1000);
//clickJoinmoke(); pressReturnKey();
Thread.sleep(1000);
} }
/** /**
...@@ -415,7 +415,7 @@ public class mockAction { ...@@ -415,7 +415,7 @@ public class mockAction {
} }
/** /**
* 申论模考检验 * 专业课模考检验
*/ */
public boolean VerificationmockzykExam(HashMap<String, Object> data) { public boolean VerificationmockzykExam(HashMap<String, Object> data) {
......
package com.offcn.ys.appWebAuto.app.tiku.pagesAction;
import com.offcn.ys.appWebAuto.app.tiku.TK_DB;
import io.appium.java_client.android.AndroidDriver;
import java.io.File;
import java.io.IOException;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.concurrent.TimeUnit;
import com.offcn.ys.appWebAuto.app.tiku.pagse.*;
import org.apache.commons.codec.language.bm.Rule.Phoneme;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.Sleeper;
import org.testng.annotations.Test;
import com.offcn.ys.appWebAuto.frame.Database.db_cases;
import com.offcn.ys.appWebAuto.frame.pub.CutImage;
import com.offcn.ys.appWebAuto.frame.tools.Log;
import com.offcn.ys.appWebAuto.frame.tools.MapUtil;
import com.offcn.ys.appWebAuto.web.tiku.pages.loginPage;
public class packageAction extends TK_DB {
String phone = "";
private AndroidDriver appdriver;
public packageAction(AndroidDriver appdriver) {
super();
this.appdriver = appdriver;
}
/**
* 数据库设置
* @throws InterruptedException
*/
public void dbset() throws InterruptedException {
String sql1 = "UPDATE t_recommend_object SET is_delete = 1 WHERE exam_id = 311 AND object_id = 2826";
db_cases.updatedb(sql1);
String sql2 = "UPDATE t_recommend_object SET is_delete = 0 WHERE exam_id = 311 AND object_id = 2828";
db_cases.updatedb(sql2);
}
/**
* 进入首页
*/
public void intofirstpage() {
WebElement radio_home = appdriver.findElement(Estimate.radio_home);
radio_home.click();
}
/**
* 从banner进入学习包
* @throws IOException
*/
public void intoEstimate() throws IOException {
touchScreen();
}
/**
* 点击屏幕上半部分中间
*/
public void touchScreen(){
@SuppressWarnings("rawtypes")
int width=appdriver.manage().window().getSize().width;
int height=appdriver.manage().window().getSize().height;
int x = width*1/2; //
int y = height*1/4; //
Map tap = new HashMap();
tap.put("tapCount", new Double(2));
tap.put("touchCount", new Double(1));
tap.put("duration", new Double(0.5));
tap.put("x", x);
tap.put("y", y);
appdriver.executeScript("mobile: tap", tap);
}
/**
* 进入我的
*/
public void intomepage() {
WebElement radio_me = appdriver.findElement(firstPage.radio_me);
radio_me.click();
}
/**
* 点击[学习口袋]
*/
public void click_study() {
WebElement study = appdriver.findElement(studypackage.study);
study.click();
}
/**
* 点击 学习包的名称
*/
public void click_studyname() {
WebElement studylist = appdriver.findElement(studypackage.studylist);
studylist.click();
}
/**
* 按返回键
*/
public void pressReturnKey() {
appdriver.pressKeyCode(4);
}
/**
* 登录按钮
*/
public void clickLoginButton() {
WebElement loginbutton = appdriver.findElement(login.loginbutton);
loginbutton.click();
}
/**
* 学习包
*
* @throws InterruptedException
* @throws IOException
*/
@SuppressWarnings("unchecked")
@Test
public void studyPackage(HashMap<String, Object> data)
throws InterruptedException, IOException {
Log.logInfo("学习包action");
appdriver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
// Thread.sleep(10000);
dbset();
intofirstpage();
intoEstimate();
pressReturnKey();
intomepage();
click_study();
click_studyname();
}
/**
* 验证登陆
*/
public boolean VerificationstudyPackage(HashMap<String, Object> data) {
String ExpectName = MapUtil.getValue("Expect", data);
WebElement home = appdriver.findElement(firstPage.radio_home);
if (home.getText().contains(ExpectName)) {
return true;
} else {
return false;
}
}
}
package com.offcn.ys.appWebAuto.app.tiku.pagesAction;
import io.appium.java_client.MobileElement;
import io.appium.java_client.TouchAction;
import io.appium.java_client.android.AndroidDriver;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
import com.offcn.ys.appWebAuto.app.tiku.pagse.*;
import org.apache.poi.ss.formula.functions.Sumif;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.Sleeper;
import org.testng.AssertJUnit;
import org.testng.annotations.Test;
import com.offcn.ys.appWebAuto.frame.tools.Log;
import com.offcn.ys.appWebAuto.frame.tools.MapUtil;
import com.offcn.ys.appWebAuto.web.tiku.pages.*;;
public class paperAction {
private AndroidDriver<WebElement> appdriver;
public static int Number;
public paperAction(AndroidDriver appdriver) {
super();
this.appdriver = appdriver;
}
/**
* 进入试卷页
*/
public void intofirstpage() {
WebElement radio_exam = appdriver.findElement(paper.radio_exam);
radio_exam.click();
}
/**
* 选择行测
*/
public void chooseXince() {
WebElement xince = appdriver.findElement(paper.xince);
xince.click();
}
/**
* 进入行测多选题
* @throws InterruptedException
*/
public void clickduoxuan() throws InterruptedException {
List<WebElement> duoxuan = appdriver.findElements(paper.duoxuan);
duoxuan.get(0).click();
}
/**
* 进入行测单选题
* @throws InterruptedException
*/
public void clickradio() throws InterruptedException {
List<WebElement> duoxuan = appdriver.findElements(paper.duoxuan);
duoxuan.get(1).click();
}
/**
* 选择题复选答案
*/
public void chooseAnswerCheck() {
WebElement answerA = appdriver.findElement(paper.chooseanswerA);
answerA.click();
WebElement answerB = appdriver.findElement(paper.chooseanswerB);
answerB.click();
}
/**
* 选择题单选答案
*/
public void chooseAnswerRadio() {
WebElement answer = appdriver.findElement(paper.chooseanswerA);
answer.click();
}
/**
* 交卷
*/
public void submitpage() {
WebElement submit = appdriver.findElement(paper.submitpage);
submit.click();
}
/**
* 确认
*/
public void hand_ok() {
WebElement handok = appdriver.findElement(paper.exam_ok);
handok.click();
}
/**
* 全部解析
* @throws InterruptedException
*/
public void clickAllAnalysis() throws InterruptedException {
WebElement clickall_analysis = appdriver.findElement(paper.all_analysis);
clickall_analysis.click();
}
/**
* 申论选择
* @throws InterruptedException
*/
public void clickSL() throws InterruptedException {
WebElement clicksl = appdriver.findElement(paper.sl);
clicksl.click();
}
/**
* 申论选择试卷
* @throws InterruptedException
*/
public void chooseSLSJ() throws InterruptedException {
List<WebElement> chooseslsj = appdriver.findElements(paper.slsj);
chooseslsj.get(0).click();
}
/**
* 申论开始答题
* @throws InterruptedException
*/
public void startSL() throws InterruptedException {
WebElement start = appdriver.findElement(paper.start);
start.click();
}
/**
* 输入答案
* @throws InterruptedException
*/
public void inputAnswer() throws InterruptedException {
WebElement clickAnswer = appdriver.findElement(paper.clickanswer);
clickAnswer.click();//点击输入答案按钮
WebElement inputanswer = appdriver.findElement(paper.inputanswer);
inputanswer.sendKeys("test");//输入答案
for (int i = 0; i < 2; i++) {
pressReturnKey();//点击返回
}
clickAnswer.click();//点击修改答案按钮
inputanswer.clear();
inputanswer.sendKeys("testNEW");//输入答案
for (int i = 0; i < 2; i++) {
pressReturnKey();//点击返回
}
WebElement answercontent = appdriver.findElement(paper.answercontent);
if (answercontent.getText().contains("testNEW")) {
AssertJUnit.assertTrue(true);
}else {
AssertJUnit.assertTrue(false);
}
}
/**
* 完成作答
* @throws InterruptedException
*/
public void finishanswer() throws InterruptedException {
WebElement submitsl = appdriver.findElement(paper.submitsl);
submitsl.click();
WebElement huafenjiegou = appdriver.findElement(paper.sure_ok);//划分结构确定
huafenjiegou.click();
}
/**
* 点击答题卡
* @throws InterruptedException
*/
public void clickAnswerCard() throws InterruptedException {
WebElement answerCard = appdriver.findElement(paper.answerCard);
answerCard.click();
}
/**
* 申论交卷并查看解析
* @throws InterruptedException
*/
public void submitandjiexisl() throws InterruptedException {
WebElement jiexisl = appdriver.findElement(paper.jiexisl);
jiexisl.click();
}
/**
* 申论交卷并查看解析
* @throws InterruptedException
*/
public void backPaperList() throws InterruptedException {
WebElement backpaperlist = appdriver.findElement(paper.backpaperlist);
backpaperlist.click();
}
/**
* 底端向左滑动
*/
public void downmoveToleft() {
int width=appdriver.manage().window().getSize().width;
int height=appdriver.manage().window().getSize().height;
TouchAction tAction = new TouchAction(appdriver);
tAction.press(width - 100, height *5/ 6).waitAction(200).moveTo(100, height *5/ 6).release().perform();
}
/**
* 向左滑动
*/
public void moveToleft() {
int width=appdriver.manage().window().getSize().width;
int height=appdriver.manage().window().getSize().height;
TouchAction tAction = new TouchAction(appdriver);
tAction.press(width - 100, height *2/ 3).waitAction(200).moveTo(100, height *2/ 3).release().perform();
}
/**
* 重新学习
*/
public void clickRestudy() {
WebElement Restudy = appdriver.findElement(exerciseBook.Restudy);
Restudy.click();
WebElement Restudy_ok = appdriver.findElement(exerciseBook.Restudy_ok);
Restudy_ok.click();
}
/**
/**
* 错题解析
*/
public void erroranalysis() {
WebElement error_analysis = appdriver.findElement(exerciseBook.error_analysis);
error_analysis.click();
}
/**
* 错题解析返回首页
*/
public void clickbackfirstpage() {
WebElement back = appdriver.findElement(paper.back);
back.click();
back.click();
}
@SuppressWarnings("unchecked")
/**
* 点击屏幕中间
*/
public void touchScreen(){
@SuppressWarnings("rawtypes")
int width=appdriver.manage().window().getSize().width;
int height=appdriver.manage().window().getSize().height;
int x = width*1/2; //
int y = height*1/2; //
Map tap = new HashMap();
tap.put("tapCount", new Double(2));
tap.put("touchCount", new Double(1));
tap.put("duration", new Double(0.5));
tap.put("x", x);
tap.put("y", y);
appdriver.executeScript("mobile: tap", tap);
}
/**
* 向上滑动
*/
public void moveToUp() {
int width=appdriver.manage().window().getSize().width;
int height=appdriver.manage().window().getSize().height;
TouchAction tAction = new TouchAction(appdriver);
int y1 = height*4/5; //上滑的开始点,从y1开始也就是屏幕的四分之三处
int y2 = height*1/5; //上滑的结束点,到y2结束也就是屏幕的四分之一处
tAction.press(width/2,y1).waitAction(200).moveTo(width/2,y2).release().perform();
tAction.press(width/2,y1).waitAction(200).moveTo(width/2,y2).release().perform();
}
/**
* 滑动到元素或滑动到页面底部
*/
// 获取应用占屏幕大小
public int[] appScreen() {
int width = appdriver.manage().window().getSize().getWidth();
int height = appdriver.manage().window().getSize().getHeight();
int[] appSize = { width, height };
return appSize;
}
// 向上滑动
public void swipeToUp(int duration) {
int starty = appScreen()[1] * 4 / 5;
int endy = appScreen()[1] * 3 / 5;
int x = appScreen()[0] * 2 / 3;
try {
appdriver.swipe(x, starty, x, endy, duration);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 向下滑动
*/
public void moveToDown() {
int width=appdriver.manage().window().getSize().width;
int height=appdriver.manage().window().getSize().height;
TouchAction tAction = new TouchAction(appdriver);
int y1 = height*2/5; //上滑的开始点,从y1开始也就是屏幕的四分之三处
int y2 = height*4/5; //上滑的结束点,到y2结束也就是屏幕的四分之一处
tAction.press(width/2,y1).waitAction(200).moveTo(width/2,y2).release().perform();
tAction.press(width/2,y1).waitAction(200).moveTo(width/2,y2).release().perform();
}
/**
* 输入 用户名操作
*/
/**
* 按返回键
*/
public void pressReturnKey() {
appdriver.pressKeyCode(4);
}
/**
* 行测做试卷
*
* @throws InterruptedException
*/
@SuppressWarnings("unchecked")
@Test
public void xcdoExam(HashMap<String, Object> data) throws InterruptedException {
Log.logInfo("做试卷 action");
appdriver.manage().timeouts().implicitlyWait(15,TimeUnit.SECONDS);
intofirstpage();
Thread.sleep(3000);
chooseXince();
Thread.sleep(1000);
clickduoxuan();
for (int i = 0; i < 5; i++) {//5为单选题数量
chooseAnswerCheck();
Thread.sleep(1000);
moveToleft();
}
for (int i = 0; i < 5; i++) { //5为单选题数量
chooseAnswerRadio();
Thread.sleep(1000);
}
submitpage();
hand_ok();
clickAllAnalysis();
}
/**
* 申论做试卷
*
* @throws InterruptedException
*/
@SuppressWarnings("unchecked")
@Test
public void sldoExam(HashMap<String, Object> data) throws InterruptedException {
Log.logInfo("申论做试卷 action");
appdriver.manage().timeouts().implicitlyWait(15,TimeUnit.SECONDS);
intofirstpage();
Thread.sleep(3000);
clickSL();
chooseSLSJ();
Thread.sleep(1000);
startSL();
inputAnswer();
downmoveToleft();
finishanswer();
clickAnswerCard();
submitandjiexisl();
hand_ok();
backPaperList();
List<WebElement> viewnum = appdriver.findElements(paper.viewnum);
Number = viewnum.size();
Number=(Number-1);
}
/**
* 行测做试卷校验
* @throws InterruptedException
*/
public boolean VerificationxcdoExam(HashMap<String, Object> data) throws InterruptedException {
String ExpectName = MapUtil.getValue("Expect", data);
for (int i = 0; i < 4; i++) {
swipeToUp(1000);
Thread.sleep(1000);
}
WebElement tv_analysis_des = appdriver
.findElement(paper.tv_analysis_des);
System.out.println("tv_analysis_des.getText======="
+ tv_analysis_des.getText()); //验证是否存在解析
if (tv_analysis_des.getText().contains(ExpectName))
{
for (int i = 0; i < 2; i++) {
pressReturnKey();
Thread.sleep(1000);
}
return true;
}
else {
return false;
}
}
/**
* 申论做试卷校验
* @throws InterruptedException
*/
public boolean VerificationsldoExam(HashMap<String, Object> data) throws InterruptedException {
for (int i = 0; i < 5; i++) {
moveToDown();
Thread.sleep(20000);
}
List<WebElement> viewnum = appdriver.findElements(paper.viewnum);
if(viewnum.size()==(Number)){ //listview [批改中]消失了
return true;
}else {
return false;
}
}
}
package com.offcn.ys.appWebAuto.app.tiku.pagesFunction;
import io.appium.java_client.android.AndroidDriver;
import java.util.HashMap;
import org.openqa.selenium.NoSuchFrameException;
import org.openqa.selenium.WebDriver.Navigation;
import org.openqa.selenium.support.events.EventFiringWebDriver;
import com.offcn.ys.appWebAuto.app.tiku.pagesAction.addContacterAction;
import com.offcn.ys.appWebAuto.app.tiku.pagesAction.addExamAction;
import com.offcn.ys.appWebAuto.app.tiku.pagesAction.addPhoneAction;
import com.offcn.ys.appWebAuto.app.tiku.pagesAction.estimateAction;
import com.offcn.ys.appWebAuto.app.tiku.pagesAction.exerciseBookAction;
import com.offcn.ys.appWebAuto.app.tiku.pagesAction.loginAction;
import com.offcn.ys.appWebAuto.app.tiku.pagesAction.paperAction;
import com.offcn.ys.appWebAuto.frame.Base.BaseProcessInformation;
import com.offcn.ys.appWebAuto.frame.Base.DefinedException;
import com.offcn.ys.appWebAuto.frame.Base.PrpcessInterface;
import com.offcn.ys.appWebAuto.frame.tools.Log;
import com.offcn.ys.appWebAuto.frame.tools.MapUtil;
import com.offcn.ys.appWebAuto.frame.tools.Reflect_api;
import com.offcn.ys.appWebAuto.frame.tools.WebUtil;
import com.offcn.ys.appWebAuto.web.tiku.pagesAction.homePageAction;
public class estimateFunction extends BaseProcessInformation implements PrpcessInterface {
public AndroidDriver appdriver;
public estimateFunction(AndroidDriver appdriver) {
super();
this.appdriver = appdriver;
}
/**
* 主页面
*/
@Override
public void Process(HashMap<String, Object> data) {
String ProcessName = MapUtil.getValue("process", data);
estimateAction hpa=new estimateAction(appdriver);
Reflect_api.Process(ProcessName, hpa,data);
}
@Override
public boolean VerificationProcess(HashMap<String, Object> data) {
Log.logInfo("估分校验");
String ProcessName = MapUtil.getValue("process", data);
estimateAction hpa = new estimateAction(appdriver);
boolean result = (boolean)Reflect_api.Process("Verification"+ProcessName, hpa,data);
return result;
}
}
package com.offcn.ys.appWebAuto.app.tiku.pagesFunction;
import io.appium.java_client.android.AndroidDriver;
import java.util.HashMap;
import org.openqa.selenium.NoSuchFrameException;
import org.openqa.selenium.WebDriver.Navigation;
import org.openqa.selenium.support.events.EventFiringWebDriver;
import com.offcn.ys.appWebAuto.app.tiku.pagesAction.addContacterAction;
import com.offcn.ys.appWebAuto.app.tiku.pagesAction.addPhoneAction;
import com.offcn.ys.appWebAuto.app.tiku.pagesAction.loginAction;
import com.offcn.ys.appWebAuto.app.tiku.pagesAction.packageAction;
import com.offcn.ys.appWebAuto.frame.Base.BaseProcessInformation;
import com.offcn.ys.appWebAuto.frame.Base.DefinedException;
import com.offcn.ys.appWebAuto.frame.Base.PrpcessInterface;
import com.offcn.ys.appWebAuto.frame.tools.Log;
import com.offcn.ys.appWebAuto.frame.tools.MapUtil;
import com.offcn.ys.appWebAuto.frame.tools.Reflect_api;
import com.offcn.ys.appWebAuto.frame.tools.WebUtil;
import com.offcn.ys.appWebAuto.web.tiku.pagesAction.homePageAction;
public class packageFunction extends BaseProcessInformation implements PrpcessInterface {
public AndroidDriver appdriver;
public packageFunction(AndroidDriver appdriver) {
super();
this.appdriver = appdriver;
}
/**
* 主页面
*/
@Override
public void Process(HashMap<String, Object> data) {
String ProcessName = MapUtil.getValue("process", data);
packageAction hpa=new packageAction(appdriver);
Reflect_api.Process(ProcessName, hpa,data);
}
@Override
public boolean VerificationProcess(HashMap<String, Object> data) {
Log.logInfo("学习包验证 ");
String ProcessName = MapUtil.getValue("process", data);
packageAction hpa = new packageAction(appdriver);
boolean result = (boolean)Reflect_api.Process("Verification"+ProcessName, hpa,data);
return result;
}
}
package com.offcn.ys.appWebAuto.app.tiku.pagesFunction;
import io.appium.java_client.android.AndroidDriver;
import java.util.HashMap;
import org.openqa.selenium.NoSuchFrameException;
import org.openqa.selenium.WebDriver.Navigation;
import org.openqa.selenium.support.events.EventFiringWebDriver;
import com.offcn.ys.appWebAuto.app.tiku.pagesAction.addContacterAction;
import com.offcn.ys.appWebAuto.app.tiku.pagesAction.addExamAction;
import com.offcn.ys.appWebAuto.app.tiku.pagesAction.addPhoneAction;
import com.offcn.ys.appWebAuto.app.tiku.pagesAction.estimateAction;
import com.offcn.ys.appWebAuto.app.tiku.pagesAction.exerciseBookAction;
import com.offcn.ys.appWebAuto.app.tiku.pagesAction.loginAction;
import com.offcn.ys.appWebAuto.app.tiku.pagesAction.paperAction;
import com.offcn.ys.appWebAuto.frame.Base.BaseProcessInformation;
import com.offcn.ys.appWebAuto.frame.Base.DefinedException;
import com.offcn.ys.appWebAuto.frame.Base.PrpcessInterface;
import com.offcn.ys.appWebAuto.frame.tools.Log;
import com.offcn.ys.appWebAuto.frame.tools.MapUtil;
import com.offcn.ys.appWebAuto.frame.tools.Reflect_api;
import com.offcn.ys.appWebAuto.frame.tools.WebUtil;
import com.offcn.ys.appWebAuto.web.tiku.pagesAction.homePageAction;
public class paperFunction extends BaseProcessInformation implements PrpcessInterface {
public AndroidDriver appdriver;
public paperFunction(AndroidDriver appdriver) {
super();
this.appdriver = appdriver;
}
/**
* 主页面
*/
@Override
public void Process(HashMap<String, Object> data) {
String ProcessName = MapUtil.getValue("process", data);
paperAction hpa=new paperAction(appdriver);
Reflect_api.Process(ProcessName, hpa,data);
}
@Override
public boolean VerificationProcess(HashMap<String, Object> data) {
Log.logInfo("做试卷校验");
String ProcessName = MapUtil.getValue("process", data);
paperAction hpa = new paperAction(appdriver);
boolean result = (boolean)Reflect_api.Process("Verification"+ProcessName, hpa,data);
return result;
}
}
package com.offcn.ys.appWebAuto.app.tiku.pagse;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import io.appium.java_client.android.AndroidDriver;
/**试卷*/
public class Estimate {
/** [首页]菜单 */
public static final By radio_home =By.id("radio_home");
/** 轮播图片 */
public static final By ImageView =By.className("android.widget.ImageView");
//开始估分
public static final By begin = By.id("begin_evaluate");//classname: android.widget.LinearLayout
//继续估分
public static final By continu = By.id("continue_evaluate");//classname: android.widget.LinearLayout
//开始答题
public static final By xcstartanswer =By.id("rl_start_answer");
//输入分数
public static final By inputscore =By.id("user_score");
//交卷并查看解析
public static final By submit =By.id("rl_at_once_paper");
/** 全部解析 */
public static final By all_analysis =By.id("tv_all_analysis"); //
public static final By exam_ok =By.id("tv_ok"); //
//解析页参考答案
public static final By reference =By.id("tv_reference_version");
//申论开始估分
public static final By slbegin = By.name("开始估分");//classname: android.widget.LinearLayout
/** 选择答案 */
public static final By chooseanswerB =By.name("B");//
public static final By chooseanswerA =By.name("A");//
/** 交卷 */
public static final By submitpage =By.id("submit_pager");//
/** 确认 */
//选择形测
public static final By sl = By.name("申论");//
//行测多项选择题
public static final By slsj =By.id("content_layout");
//开始答题
public static final By start =By.id("begin_do_exercise");
//点击输入答案
public static final By clickanswer =By.id("edit");
//输入答案
public static final By inputanswer =By.id("input_answer");
//答案内容
public static final By answercontent =By.id("input_content");
/** 申论交卷 */
public static final By submitsl =By.name("完成作答");//
// 确定
public static final By sure_ok =By.id("tv_ok");
/** 答题卡 */
public static final By answerCard =By.id("answerCardRl"); //
/** 申论交卷查看解析 */
public static final By jiexisl =By.name("交卷并查看解析");//
/** 返回试卷列表 */
public static final By backpaperlist =By.id("go_back_to_paper_list");
/** 试卷列表检查 */
public static final By viewnum =By.className("android.widget.TextView");
//总题数
public static final By total =By.id("total");
//错题解析
public static final By error_analysis =By.id("error_analysis");
//错题解析内容
public static final By tv_analysis_des =By.id("tv_analysis_des");
//返回
public static final By back =By.id("back");
//回
public static final By lt_left =By.id("lt_left");
}
...@@ -4,11 +4,11 @@ package com.offcn.ys.appWebAuto.app.tiku.pagse; ...@@ -4,11 +4,11 @@ package com.offcn.ys.appWebAuto.app.tiku.pagse;
import org.openqa.selenium.By; import org.openqa.selenium.By;
import org.openqa.selenium.WebElement; import org.openqa.selenium.WebElement;
import io.appium.java_client.android.AndroidDriver; import io.appium.java_client.android.AndroidDriver;
/**添加考试*/ /**练习册*/
public class exerciseBook { public class exerciseBook {
//进入练习册 //进入练习册tv_exercise_title
public static final By inexercisebook = By.id("tv_exercise_title");//classname: android.widget.LinearLayout public static final By inexercisebook = By.id("tv_exercise_title");//classname: android.widget.LinearLayout
//重新学习 //重新学习
public static final By Restudy =By.id("tv_book_list_select"); public static final By Restudy =By.id("tv_book_list_select");
...@@ -16,11 +16,12 @@ public class exerciseBook { ...@@ -16,11 +16,12 @@ public class exerciseBook {
public static final By Restudy_ok =By.id("tv_ok"); public static final By Restudy_ok =By.id("tv_ok");
//比重目录 //比重目录
public static final By second_view =By.id("rl_second_view"); // public static final By view = By.className("android.widget.RelativeLayout");
public static final By second_view =By.id("tv_second_floor_title");
// //比重基本公式 // //比重基本公式
public static final By third_view =By.id("rl_thrid_view"); public static final By third_view =By.id("tv_three_floor_title");
//题 //题
public static final By fourth_view =By.id("rl_fourth_view"); public static final By fourth_view =By.id("tv_fourth_floor_title");
//答案选择 //答案选择
public static final By chooseanswer =By.name("B"); public static final By chooseanswer =By.name("B");
//交卷 //交卷
......
package com.offcn.ys.appWebAuto.app.tiku.pagse;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import io.appium.java_client.android.AndroidDriver;
/**试卷*/
public class paper {
/** 试卷菜单 */
public static final By radio_exam =By.id("radio_old_exam");
//选择形测
public static final By xince = By.id("content_layout");//classname: android.widget.LinearLayout
//行测多项选择题
public static final By duoxuan =By.id("ll_root");
/** 选择答案 */
public static final By chooseanswerB =By.name("B");//
public static final By chooseanswerA =By.name("A");//
/** 交卷 */
public static final By submitpage =By.id("submit_pager");//
/** 确认 */
/** 全部解析 */
public static final By all_analysis =By.id("tv_all_analysis"); //
public static final By exam_ok =By.id("tv_ok"); //
//选择形测
public static final By sl = By.name("申论");//
//行测多项选择题
public static final By slsj =By.id("content_layout");
//开始答题
public static final By start =By.id("begin_do_exercise");
//点击输入答案
public static final By clickanswer =By.id("edit");
//输入答案
public static final By inputanswer =By.id("input_answer");
//答案内容
public static final By answercontent =By.id("input_content");
/** 申论交卷 */
public static final By submitsl =By.name("完成作答");//
// 确定
public static final By sure_ok =By.id("tv_ok");
/** 答题卡 */
public static final By answerCard =By.id("answerCardRl"); //
/** 申论交卷查看解析 */
public static final By jiexisl =By.name("交卷并查看解析");//
/** 返回试卷列表 */
public static final By backpaperlist =By.id("go_back_to_paper_list");
/** 试卷列表检查 */
public static final By viewnum =By.className("android.widget.TextView");
//总题数
public static final By total =By.id("total");
//错题解析
public static final By error_analysis =By.id("error_analysis");
//错题解析内容
public static final By tv_analysis_des =By.id("tv_analysis_des");
//返回
public static final By back =By.id("back");
//回
public static final By lt_left =By.id("lt_left");
}
package com.offcn.ys.appWebAuto.app.tiku.pagse;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import io.appium.java_client.android.AndroidDriver;
/**主页面左侧导航栏*/
public class studypackage {
/** 设置 */
public static final By set =By.name("设置");
/** 退出登录 */
public static final By logoutbutton =By.name("退出登录");
/** 学习口袋 */
public static final By study =By.id("rl_me_learn_package");
/** 学习包列表页 */
public static final By studylist =By.id("tv_learn_package_name");
}
package com.offcn.ys.appWebAuto.frame.Database;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.apache.http.util.Args;
import org.testng.annotations.Test;
import com.offcn.ys.appWebAuto.app.tiku.TK_DB;
import com.offcn.ys.appWebAuto.frame.tools.Log;
public class db_cases extends TK_DB{
@Test
public static void updatedb(String sql){
Integer result=null;
try {
// "UPDATE t_recommend_object SET is_delete = 0 WHERE exam_id = 311 AND object_id = 2826" 轮播图
result = stmt.executeUpdate(sql);//
if (result == -1) {
Log.logInfo("update failed! ");
}else{
Log.logInfo("update OK! " );
}
} catch (SQLException e) {
Log.logError("update failed! ");
}
}
}
...@@ -32,7 +32,7 @@ import com.offcn.ys.appWebAuto.frame.tools.Log; ...@@ -32,7 +32,7 @@ import com.offcn.ys.appWebAuto.frame.tools.Log;
*/ */
public class CutImage { public class CutImage {
public static void main(String[] args) { public static void main(String[] args) {
cutImage("d:\\pwd.png","d:\\pwd1.png",0,0,1080,1920); cutImage("d:\\3.png","d:\\copy.png",0,200,1080,800);
} }
/** /**
...@@ -50,12 +50,12 @@ public class CutImage { ...@@ -50,12 +50,12 @@ public class CutImage {
try{ try{
File directory = new File("."); File directory = new File(".");
String sourceFile = directory.getCanonicalPath(); String sourceFile = directory.getCanonicalPath();
File screenShot = new File(sourceFile+File.separator+"img"+File.separator+dateString+casename+ ".png"); File screenShot = new File(sourceFile+File.separator+"img"+File.separator+casename+ ".png");
FileUtils.copyFile(srcFile, screenShot); FileUtils.copyFile(srcFile, screenShot);
}catch(Exception e){ }catch(Exception e){
e.printStackTrace(); e.printStackTrace();
} }
Log.logInfo("截图保存在: "+"img"+File.separator+dateString+ casename+ ".png"); Log.logInfo("截图保存在: "+"img"+File.separator+ casename+ ".png");
} }
/** /**
* web拍照 * web拍照
......
package com.offcn.ys.appWebAuto.frame.pub;
import io.appium.java_client.android.AndroidDriver;
import java.awt.Rectangle;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Iterator;
import javax.imageio.ImageIO;
import javax.imageio.ImageReadParam;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import org.apache.commons.io.FileUtils;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.support.events.EventFiringWebDriver;
import com.offcn.ys.appWebAuto.frame.Base.BaseProcessInformation;
import com.offcn.ys.appWebAuto.frame.tools.Log;
/**
* 图片裁剪
* @param srcImageFile 图片裁剪地址
* @param result 图片输出文件夹
* @param destWidth 图片裁剪宽度
* @param destHeight 图片裁剪高度
*/
public class CutImagenew {
public static void main(String[] args) {
//cutImage("d:\\3.png","d:\\copy.png",0,200,1080,800);
//文件与BufferedImage间的转换
BufferedImage bi=file2img("d:\\3.png"); //读取图片
BufferedImage bii=img_tailor(bi,0,200,1080,800);
img2file(bii,"jpg","d:\\copy1.png"); //生成图片
}
public static BufferedImage img_tailor(BufferedImage src,int x,int y,int width,int height) {
BufferedImage back=src.getSubimage(x,y,width,height);
return back;
}
//读取图片
public static BufferedImage file2img(String imgpath) {
try {
BufferedImage bufferedImage=ImageIO.read(new File(imgpath));
return bufferedImage;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
//保存图片,extent为格式,"jpg"、"png"等
public static void img2file(BufferedImage img,String extent,String newfile) {
try {
ImageIO.write(img, extent, new File(newfile));
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* android拍照
*/
public static void paizhao(AndroidDriver driver,String casename){
Log.logInfo("开始拍照。。。");
SimpleDateFormat format = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss");
String dateString = format.format(new Date());
dateString=dateString+BaseProcessInformation.TestName;
File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
try{
File directory = new File(".");
String sourceFile = directory.getCanonicalPath();
File screenShot = new File(sourceFile+File.separator+"img"+File.separator+dateString+casename+ ".png");
FileUtils.copyFile(srcFile, screenShot);
}catch(Exception e){
e.printStackTrace();
}
Log.logInfo("截图保存在: "+"img"+File.separator+dateString+ casename+ ".png");
}
/**
* web拍照
*/
public static void paizhao(EventFiringWebDriver driver,String casename){
Log.logInfo("开始拍照。。。");
SimpleDateFormat format = new SimpleDateFormat("yyyy_MM_dd_HH_mm_ss");
String dateString = format.format(new Date());
dateString=dateString+BaseProcessInformation.TestName;
File srcFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
try{
File directory = new File(".");
String sourceFile = directory.getCanonicalPath();
File screenShot = new File(sourceFile+File.separator+"img"+File.separator+dateString+casename+".png");
FileUtils.copyFile(srcFile, screenShot);
}catch(Exception e){
e.printStackTrace();
}
Log.logInfo("截图保存在: "+"img"+File.separator+dateString+casename+".png");
}
public final static void cutImage(String srcImageFile, String result, int x,int y, int destWidth, int destHeight) {
try {
Thread.sleep(1000);
Iterator iterator = ImageIO.getImageReadersByFormatName("PNG");/*PNG,BMP*/
ImageReader reader = (ImageReader)iterator.next();/*获取图片尺寸*/
InputStream inputStream = new FileInputStream(srcImageFile);
ImageInputStream iis = ImageIO.createImageInputStream(inputStream);
reader.setInput(iis, true);
ImageReadParam param = reader.getDefaultReadParam();
Rectangle rectangle = new Rectangle(x,y, destWidth, destHeight);/*指定截取范围*/
param.setSourceRegion(rectangle);
BufferedImage bi = reader.read(0,param);
ImageIO.write(bi, "JPEG", new File(result));
} catch (Exception e) {
e.printStackTrace();
System.out.println(("图片裁剪出现异常:"+e));
}
}
}
package com.offcn.ys.appWebAuto.frame.tools; package com.offcn.ys.appWebAuto.frame.pub;
import java.io.File; import java.io.File;
import net.sourceforge.tess4j.ITesseract; import net.sourceforge.tess4j.ITesseract;
......
package com.offcn.ys.appWebAuto.frame.pub;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.imageio.ImageIO;
/**
* 比较两张图片的相似度
* @author Guihua
*
*/
public class xiangsidu {
// 改变成二进制码
public static String[][] getPX(String args) {
int[] rgb = new int[3];
File file = new File(args);
BufferedImage bi = null;
try {
bi = ImageIO.read(file);
} catch (Exception e) {
e.printStackTrace();
}
int width = bi.getWidth();
int height = bi.getHeight();
int minx = bi.getMinX();
int miny = bi.getMinY();
String[][] list = new String[width][height];
for (int i = minx; i < width; i++) {
for (int j = miny; j < height; j++) {
int pixel = bi.getRGB(i, j);
rgb[0] = (pixel & 0xff0000) >> 16;
rgb[1] = (pixel & 0xff00) >> 8;
rgb[2] = (pixel & 0xff);
list[i][j] = rgb[0] + "," + rgb[1] + "," + rgb[2];
}
}
return list;
}
public static int compareImage(String imgPath1, String imgPath2){
String[] images = {imgPath1, imgPath2};
if (images.length == 0) {
System.out.println("Usage >java BMPLoader ImageFile.bmp");
System.exit(0);
}
// 分析图片相似度 begin
String[][] list1 = getPX(images[0]);
String[][] list2 = getPX(images[1]);
int xiangsi = 0;
int busi = 0;
int i = 0, j = 0;
for (String[] strings : list1) {
if ((i + 1) == list1.length) {
continue;
}
for (int m=0; m<strings.length; m++) {
try {
String[] value1 = list1[i][j].toString().split(",");
String[] value2 = list2[i][j].toString().split(",");
int k = 0;
for (int n=0; n<value2.length; n++) {
if (Math.abs(Integer.parseInt(value1[k]) - Integer.parseInt(value2[k])) < 5) {
xiangsi++;
} else {
busi++;
}
}
} catch (RuntimeException e) {
continue;
}
j++;
}
i++;
}
list1 = getPX(images[1]);
list2 = getPX(images[0]);
i = 0;
j = 0;
// for (String[] strings : list1) {
for (int x=0; x<list1.length; x++) {
if ((i + 1) == list1.length) {
continue;
}
for (int m=0; m<list1[i].length; m++) {
try {
String[] value1 = list1[i][j].toString().split(",");
String[] value2 = list2[i][j].toString().split(",");
int k = 0;
for (int n=0; n<value2.length; n++) {
if (Math.abs(Integer.parseInt(value1[k]) - Integer.parseInt(value2[k])) < 5) {
xiangsi++;
} else {
busi++;
}
}
} catch (RuntimeException e) {
continue;
}
j++;
}
i++;
}
String baifen = "";
try {
baifen = ((Double.parseDouble(xiangsi + "") / Double.parseDouble((busi + xiangsi) + "")) + "");
baifen = baifen.substring(baifen.indexOf(".") + 1, baifen.indexOf(".") + 3);
} catch (Exception e) {
baifen = "0";
}
if (baifen.length() <= 0) {
baifen = "0";
}
if(busi == 0){
baifen="100";
}
System.out.println("相似像素数量:" + xiangsi + " 不相似像素数量:" + busi + " 相似率:" + Integer.parseInt(baifen) + "%");
return Integer.parseInt(baifen);
}
public static void main(String[] args) throws IOException{
// xiangsidu.compareImage("D:\\1.png", "D:\\1.png");
File directory = new File(".");
String sourceFile = directory.getCanonicalPath();
SimpleDateFormat st = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式
System.out.println(st.format(new Date()));// new Date()为获取当前系统时间
compareImage("D:\\1.png", "D:\\2.jpg");
SimpleDateFormat end = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 设置日期格式
System.out.println(end.format(new Date()));// new Date()为获取当前系统时间
// compareImage("D:\\1.png", "D:\\1.png");
//System.out.println("fenshu==" + fenshu);
}
}
\ No newline at end of file
...@@ -61,12 +61,18 @@ import com.offcn.ys.appWebAuto.testdata.WebAndAppData; ...@@ -61,12 +61,18 @@ import com.offcn.ys.appWebAuto.testdata.WebAndAppData;
public void setUp() throws Exception { public void setUp() throws Exception {
// set up appium // set up appium
// AndroidDriver appdriver; // AndroidDriver appdriver;
} }
@AfterMethod(alwaysRun=true) @AfterMethod(alwaysRun=true)
public void tearDown() throws Exception { public void tearDown() throws Exception {
//appdriver.quit(); //appdriver.quit();
if (driver!=null) {
driver.quit();
}
if (appdriver!=null) {
appdriver.quit();
}
} }
@AfterClass @AfterClass
...@@ -97,6 +103,5 @@ import com.offcn.ys.appWebAuto.testdata.WebAndAppData; ...@@ -97,6 +103,5 @@ import com.offcn.ys.appWebAuto.testdata.WebAndAppData;
//appdriver.quit(); //appdriver.quit();
} }
} }
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by org.testng.reporters.JUnitReportReporter -->
<testsuite hostname="IBM-PC" name="com.offcn.ys.appWebAuto.app.tiku.pagesAction.paperAction" tests="2" failures="0" timestamp="3 Jul 2019 03:47:51 GMT" time="0.000" errors="2">
<testcase name="sldoExam" time="0.000" classname="com.offcn.ys.appWebAuto.app.tiku.pagesAction.paperAction">
<error type="org.testng.TestNGException" message="
Method sldoExam requires 1 parameters but 0 were supplied in the @Test annotation.">
<![CDATA[org.testng.TestNGException:
Method sldoExam requires 1 parameters but 0 were supplied in the @Test annotation.
at org.testng.internal.Parameters.checkParameterTypes(Parameters.java:191)
at org.testng.internal.Parameters.createParameters(Parameters.java:127)
at org.testng.internal.Parameters.createParameters(Parameters.java:376)
at org.testng.internal.Parameters.handleParameters(Parameters.java:451)
at org.testng.internal.Invoker.handleParameters(Invoker.java:1270)
at org.testng.internal.Invoker.createParameters(Invoker.java:985)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1075)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108)
at org.testng.TestRunner.privateRun(TestRunner.java:774)
at org.testng.TestRunner.run(TestRunner.java:624)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:359)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:354)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:312)
at org.testng.SuiteRunner.run(SuiteRunner.java:261)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1191)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1116)
at org.testng.TestNG.run(TestNG.java:1024)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:112)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:205)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:176)
]]>
</error>
</testcase> <!-- sldoExam -->
<testcase name="xcdoExam" time="0.000" classname="com.offcn.ys.appWebAuto.app.tiku.pagesAction.paperAction">
<error type="org.testng.TestNGException" message="
Method xcdoExam requires 1 parameters but 0 were supplied in the @Test annotation.">
<![CDATA[org.testng.TestNGException:
Method xcdoExam requires 1 parameters but 0 were supplied in the @Test annotation.
at org.testng.internal.Parameters.checkParameterTypes(Parameters.java:191)
at org.testng.internal.Parameters.createParameters(Parameters.java:127)
at org.testng.internal.Parameters.createParameters(Parameters.java:376)
at org.testng.internal.Parameters.handleParameters(Parameters.java:451)
at org.testng.internal.Invoker.handleParameters(Invoker.java:1270)
at org.testng.internal.Invoker.createParameters(Invoker.java:985)
at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1075)
at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:108)
at org.testng.TestRunner.privateRun(TestRunner.java:774)
at org.testng.TestRunner.run(TestRunner.java:624)
at org.testng.SuiteRunner.runTest(SuiteRunner.java:359)
at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:354)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:312)
at org.testng.SuiteRunner.run(SuiteRunner.java:261)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1191)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1116)
at org.testng.TestNG.run(TestNG.java:1024)
at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:112)
at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:205)
at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:176)
]]>
</error>
</testcase> <!-- xcdoExam -->
</testsuite> <!-- com.offcn.ys.appWebAuto.app.tiku.pagesAction.paperAction -->
<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated by org.testng.reporters.JUnitReportReporter -->
<testsuite hostname="IBM-PC" name="com.offcn.ys.appWebAuto.frame.Database.db_cases" tests="1" failures="0" timestamp="5 Jul 2019 06:49:14 GMT" time="0.078" errors="0">
<testcase name="test" time="0.078" classname="com.offcn.ys.appWebAuto.frame.Database.db_cases"/>
</testsuite> <!-- com.offcn.ys.appWebAuto.frame.Database.db_cases -->
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment