diff --git a/.settings/org.testng.eclipse.maven.prefs b/.settings/org.testng.eclipse.maven.prefs new file mode 100644 index 0000000..3a6c4f3 --- /dev/null +++ b/.settings/org.testng.eclipse.maven.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +userprojectsettings=false diff --git a/Resource/BrowersDriver/Ie/IEDriverServer.exe b/Resource/BrowersDriver/Ie/IEDriverServer.exe new file mode 100644 index 0000000..60fea68 Binary files /dev/null and b/Resource/BrowersDriver/Ie/IEDriverServer.exe differ diff --git a/Resource/BrowersDriver/chromedriver.exe b/Resource/BrowersDriver/chromedriver.exe deleted file mode 100644 index d419a51..0000000 Binary files a/Resource/BrowersDriver/chromedriver.exe and /dev/null differ diff --git a/Resource/BrowersDriver/geckodriver.exe b/Resource/BrowersDriver/geckodriver.exe deleted file mode 100644 index 2e97a4c..0000000 Binary files a/Resource/BrowersDriver/geckodriver.exe and /dev/null differ diff --git a/src/main/java/pres/auxiliary/work/selenium/brower/AbstractBrower.java b/src/main/java/pres/auxiliary/work/selenium/brower/AbstractBrower.java index 12e354f..9aefbab 100644 --- a/src/main/java/pres/auxiliary/work/selenium/brower/AbstractBrower.java +++ b/src/main/java/pres/auxiliary/work/selenium/brower/AbstractBrower.java @@ -38,6 +38,9 @@ public abstract class AbstractBrower { */ HashMap pageMap = new HashMap(16); + /** + * 存储浏览器打开的窗口handle值 + */ HashSet windowHandleSet = new HashSet<>(); /** @@ -180,9 +183,11 @@ public abstract class AbstractBrower { public WebDriver getDriver() { // 若driver对象未生成,则进行开启浏览器的操作 if (driver == null) { + // 添加驱动的存储位置 + System.setProperty(getBrowerDriverSetName(), driverFile.getAbsolutePath()); // 打开浏览器 openBrower(); - + // 若存在需要打开的页面,则打开第一个页面 if (nowPage != null) { openUrl(nowPage, false); @@ -196,6 +201,11 @@ public abstract class AbstractBrower { * 用于打开浏览器 */ abstract void openBrower(); + /** + * 用于返回浏览器驱动设置的名称,由于每个浏览器不同,导致启动驱动名称也不同 + * @return 驱动设置名称 + */ + abstract String getBrowerDriverSetName(); public String getAllInformation() { // 遍历所有标签页,存储标签页信息 diff --git a/src/main/java/pres/auxiliary/work/selenium/brower/ChromeBrower.java b/src/main/java/pres/auxiliary/work/selenium/brower/ChromeBrower.java index 7b5dc49..1d16704 100644 --- a/src/main/java/pres/auxiliary/work/selenium/brower/ChromeBrower.java +++ b/src/main/java/pres/auxiliary/work/selenium/brower/ChromeBrower.java @@ -13,20 +13,20 @@ import com.alibaba.fastjson.JSONArray; /** *

文件名:ChromeBrower.java

*

用途:用于启动谷歌浏览器,并加载相应的待测页面,支持对浏览器进行部分个性化的配置, - * 以达到相应的测试效果。使用方法时,必须指定谷歌浏览器驱动所在位置,以保证浏览器能正常启动

+ * 以达到相应的测试效果。

*

启动浏览器需要调用{@link #getDriver()}方法启动浏览器,若在构造方法中定义了{@link Page}类,则 * 启动浏览器时会自动对页面进行加载,若未定义,则只打开浏览器,如:

*

* 若调用方法:
- * ChromeBrower chrome = new {@link #ChromeBrower(File)}
- * chrome.{@link #getDriver()}
+ * ChromeBrower brower = new {@link #ChromeBrower(File)}
+ * brower.{@link #getDriver()}
* 后将只全屏打开浏览器,不会加载页面 *

*

* 若调用方法:
- * ChromeBrower chrome = new {@link #ChromeBrower(File, Page)}
- * 或ChromeBrower chrome = new {@link #ChromeBrower(File, String, String)}
- * chrome.{@link #getDriver()}
+ * ChromeBrower brower = new {@link #ChromeBrower(File, Page)}
+ * 或ChromeBrower brower = new {@link #ChromeBrower(File, String, String)}
+ * brower.{@link #getDriver()}
* 后将全屏打开浏览器,并加载相应的页面 *

*

对于个性化配置,在调用{@link #getDriver()}方法前调用{@link #addConfig(ChromeOptionType)} @@ -35,7 +35,7 @@ import com.alibaba.fastjson.JSONArray; *

若添加配置在调用{@link #getDriver()}方法之后,则设置的配置不会生效。

*

编码时间:2020年4月17日下午2:56:08

*

修改时间:2020年11月7日下午7:12:48

- * @author + * @author 彭宇琦 * @version Ver1.0 * @since Selenium 3.14.0 * @since JDK 1.8 @@ -46,6 +46,10 @@ public class ChromeBrower extends AbstractBrower { * 用于存储需要对浏览器进行配置的参数 */ HashSet chromeConfigSet = new HashSet(); + /** + * 用于对谷歌浏览器的配置 + */ + ChromeOptions chromeOption = new ChromeOptions(); /** * 存储谷歌可执行文件路径 @@ -95,6 +99,15 @@ public class ChromeBrower extends AbstractBrower { chromeConfigSet.add(chromeOptionType); } + /** + * 用于添加浏览器无需带参数的配置 + * + * @param chromeOptionType 浏览器配置枚举({@link ChromeOptionType}枚举类) + */ + public void addConfig(ChromeOptionType chromeOptionType) { + chromeConfigSet.add(chromeOptionType); + } + /** *

* 用于设置谷歌浏览器可执行文件路径,在启动浏览器时,将打开该路径下的浏览器。 @@ -111,15 +124,6 @@ public class ChromeBrower extends AbstractBrower { driver = null; } - /** - * 用于添加浏览器无需带参数的配置 - * - * @param chromeOptionType 浏览器配置枚举({@link ChromeOptionType}枚举类) - */ - public void addConfig(ChromeOptionType chromeOptionType) { - chromeConfigSet.add(chromeOptionType); - } - /** * 用于移除相应的浏览器配置 * @@ -138,39 +142,38 @@ public class ChromeBrower extends AbstractBrower { @Override void openBrower() { - // 添加谷歌浏览器驱动的存储位置 - System.setProperty("webdriver.chrome.driver", driverFile.getAbsolutePath()); - - ChromeOptions co = new ChromeOptions(); //判断是否存在浏览器启动路径 if (binaryFile != null) { - co.setBinary(binaryFile); + chromeOption.setBinary(binaryFile); } //判断是否存在配置 if (chromeConfigSet.size() != 0) { - co = browerConfig(); + browerConfig(); } - driver = new ChromeDriver(co); + driver = new ChromeDriver(chromeOption); // 添加操作信息 informationJson.put("浏览器名称", ((ChromeDriver) driver).getCapabilities().getBrowserName()); informationJson.put("浏览器版本", ((ChromeDriver) driver).getCapabilities().getVersion()); informationJson.put("操作系统版本", System.getProperties().getProperty("os.name")); } + + @Override + String getBrowerDriverSetName() { + return "webdriver.chrome.driver"; + } /** * 用于将配置添加至浏览器中 */ - ChromeOptions browerConfig() { + void browerConfig() { // 用于存储浏览器的配置信息 JSONArray configJsonArray = new JSONArray(); - // 用于添加配置 - ChromeOptions chromeOption = new ChromeOptions(); //若配置中存在控制已打开的浏览器,则直接添加相应的配置,并结束方法,否则会报错 if (chromeConfigSet.contains(ChromeOptionType.CONTRAL_OPEN_BROWER)) { chromeOption.setExperimentalOption(ChromeOptionType.CONTRAL_OPEN_BROWER.getKey(), String.valueOf(ChromeOptionType.CONTRAL_OPEN_BROWER.getValue())); - return chromeOption; + return; } // 用于存储谷歌浏览器个性化配置 @@ -216,7 +219,7 @@ public class ChromeBrower extends AbstractBrower { // 添加配置信息 informationJson.put("浏览器配置", configJsonArray); - return chromeOption; + return; } /** diff --git a/src/main/java/pres/auxiliary/work/selenium/brower/IeBrower.java b/src/main/java/pres/auxiliary/work/selenium/brower/IeBrower.java new file mode 100644 index 0000000..49ac360 --- /dev/null +++ b/src/main/java/pres/auxiliary/work/selenium/brower/IeBrower.java @@ -0,0 +1,90 @@ +package pres.auxiliary.work.selenium.brower; + +import java.io.File; + +import org.openqa.selenium.ie.InternetExplorerDriver; +import org.openqa.selenium.ie.InternetExplorerOptions; + +/** + *

文件名:IeBrower.java

+ *

用途:用于启动IE浏览器,并加载相应的待测页面。

+ *

启动浏览器需要调用{@link #getDriver()}方法启动浏览器,若在构造方法中定义了{@link Page}类,则 + * 启动浏览器时会自动对页面进行加载,若未定义,则只打开浏览器,如:

+ *

+ * 若调用方法:
+ * IeBrower brower = new {@link #IeBrower(File)}
+ * brower.{@link #getDriver()}
+ * 后将只全屏打开浏览器,不会加载页面 + *

+ *

+ * 若调用方法:
+ * IeBrower brower = new {@link #IeBrower(File, Page)}
+ * 或IeBrower brower = new {@link #IeBrower(File, String, String)}
+ * brower.{@link #getDriver()}
+ * 后将全屏打开浏览器,并加载相应的页面 + *

+ *

编码时间:2020年11月8日 下午3:52:31

+ *

修改时间:2020年11月8日 下午3:52:31

+ * @author 彭宇琦 + * @version Ver1.0 + * @since JDK 1.8 + */ +public class IeBrower extends AbstractBrower { + /** + * TODO 用于存储对IE的设置,目前未开发在类中设置IE的方法,此处保留 + */ + private InternetExplorerOptions ieOption = new InternetExplorerOptions(); + + /** + * 指定驱动文件路径并添加一个待测站点 + * + * @param driverFile 驱动文件对象 + * @param page {@link Page}类对象 + */ + public IeBrower(File driverFile, Page page) { + super(driverFile, page); + } + + /** + * 指定驱动文件路径并添加一个待测站点 + * + * @param driberFile 驱动文件对象 + * @param url 待测站点 + * @param pageName 待测站点名称,用于切换页面 + */ + public IeBrower(File driverFile, String url, String pageName) { + super(driverFile, url, pageName); + } + + /** + * 指定驱动文件所在路径 + * + * @param driberFile 驱动文件对象 + */ + public IeBrower(File driverFile) { + super(driverFile); + } + + /** + * 用于对IE浏览器的个性化设置 + * @param ieOption IE设置类对象({@link InternetExplorerOptions}) + */ + public void setIeOption(InternetExplorerOptions ieOption) { + this.ieOption = ieOption; + } + + @Override + void openBrower() { + //构造浏览器 + driver = new InternetExplorerDriver(ieOption); + //添加浏览器信息 + informationJson.put("浏览器名称", ((InternetExplorerDriver) driver).getCapabilities().getBrowserName()); + informationJson.put("浏览器版本", ((InternetExplorerDriver) driver).getCapabilities().getVersion()); + informationJson.put("操作系统版本", System.getProperties().getProperty("os.name")); + } + + @Override + String getBrowerDriverSetName() { + return "webdriver.ie.driver"; + } +} diff --git a/src/test/java/pres/auxiliary/selenium/operatecontrol/TestTextControl.java b/src/test/java/pres/auxiliary/selenium/operatecontrol/TestTextControl.java deleted file mode 100644 index 1f55b9a..0000000 --- a/src/test/java/pres/auxiliary/selenium/operatecontrol/TestTextControl.java +++ /dev/null @@ -1,85 +0,0 @@ -package pres.auxiliary.selenium.operatecontrol; - -import java.io.File; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; -import org.openqa.selenium.WebDriver; - -public class TestTextControl { - TextEvent tc; - WebDriver d; - - @Before - public void openBrowers() { - d = new FirefoxBrower("", "pyqone", "http://www.hao123.com").getDriver(); - tc = new TextEvent(d); - tc.setXmlFile(new File("src/test/java/pres/auxiliary/selenium/event/测试.xml")); - } - - @After - public void closeBrowers() { - //d.close(); - } - - @Test - public void test1() { - tc.input("呵呵呵", "哈哈哈"); - try { - Thread.sleep(5000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - - @Test - public void test2() { - tc.input("//*[@id=\"search-input\"]", "哈哈哈"); - try { - Thread.sleep(5000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - - @Test - public void test3() { - tc.input("/html/body/div[2]/div[2]/div/div[1]/div[2]/div/div/div[1]/div[3]/form/div[1]/div/input", "哈哈哈"); - try { - Thread.sleep(5000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - - @Test - public void test4() { - tc.input("html body div#skinroot.sk_skin-color-green div.layout-container.s-sbg1 div.layout-container-inner.s-sbg2 div div.hao123-search-panel-box div#hao123-search-panel.g-wd.page-width.hao123-search-panel div.hao123-search.hao123-indexsearchlist1 div#search.search div.right.form-wrapper form#search-form.form-hook div.input-wrapper.wrapper-hook.g-ib div.input-shadow.shadow-hook.g-ib input#search-input.input.input-hook", "哈哈哈"); - try { - Thread.sleep(5000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - - @Test - public void test5() { - tc.input("嘻嘻嘻", "哈哈哈"); - try { - Thread.sleep(5000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } - - @Test - public void test6() { - tc.input("嘎嘎嘎", "哈哈哈"); - try { - Thread.sleep(5000); - } catch (InterruptedException e) { - e.printStackTrace(); - } - } -} diff --git a/src/test/java/pres/auxiliary/selenium/tool/RecordToolTest.java b/src/test/java/pres/auxiliary/selenium/tool/RecordToolTest.java deleted file mode 100644 index d1bfb79..0000000 --- a/src/test/java/pres/auxiliary/selenium/tool/RecordToolTest.java +++ /dev/null @@ -1,197 +0,0 @@ -package pres.auxiliary.selenium.tool; - -import java.io.IOException; -import java.lang.reflect.Method; - -import org.testng.annotations.AfterClass; -import org.testng.annotations.AfterMethod; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; - -import pres.auxiliary.work.selenium.tool.RecordTool; -import pres.auxiliary.work.selenium.tool.RecordType; - -public class RecordToolTest { - /** - * 文件名 - */ - private final String FILE_NAME = "test"; - - private ChromeBrower chrome = new ChromeBrower("Resource/BrowersDriver/chromedriver.exe", 9222); - - /** - * 初始化数据,并用于测试setSaveFolder、setFileName和setModule方法 - */ - @BeforeClass - public void testSetFunction() { - RecordTool.getLog().setFileName(FILE_NAME); - - RecordTool.getRecord().setFileName(FILE_NAME); - - RecordTool.getScreenshot().setDriver(chrome.getDriver()); - - RecordTool.setModule("第一模块", true); - } - - /** - * 关闭谷歌driver - * @throws IOException - */ - @AfterClass - public void closeDriver() throws IOException { - chrome.getDriver().quit(); - RecordTool.createXmindReport("测试报告"); - } - - /** - * 输出测试方法及分隔符 - */ - @BeforeMethod - public void testSetFile(Method method) { - System.out.println("-".repeat(20)); - System.out.println("当前执行方法:" + method.getName()); - System.out.println("=".repeat(10)); - } - - @AfterMethod - public void endRecord(Method method) { - System.out.println(RecordTool.getModuleInformation()); - System.out.println(RecordTool.getModuleJsonInformation()); - } - - /** - * 测试RecordStep.getRecordType()方法 - */ - @Test - public void testSetRecordType() { - RecordTool.setModule("SetRecordType", true); - RecordTool.startRecord(this.getClass().getName(), "testSetRecordType"); - RecordTool.setRecordType(RecordType.LOG); - RecordTool.recordStep("这是testIsRecordStep()方法添加的第1步骤"); - RecordTool.setRecordType(RecordType.RECORD); - RecordTool.recordStep("这是testIsRecordStep()方法添加的第2步骤"); - RecordTool.setRecordType(RecordType.SCREENSHOT); - RecordTool.recordStep("这是testIsRecordStep()方法添加的第3步骤"); - RecordTool.setRecordType(RecordType.SYSTEM); - RecordTool.recordStep("这是testIsRecordStep()方法添加的第4步骤"); - RecordTool.endRecord(); - } - - /** - * 测试RecordStep.setModule(方法) - */ - @Test - public void testSetAndGetModule() { - RecordTool.setModule("第二模块", false); - RecordTool.startRecord(this.getClass().getName(), "testSetAndGetModule"); - RecordTool.endRecord(); - RecordTool.setModule("第二模块", false); - RecordTool.startRecord(this.getClass().getName(), "testSetAndGetModule"); - RecordTool.endRecord(); - RecordTool.setModule("第三模块", false); - RecordTool.startRecord(this.getClass().getName(), "testSetAndGetModule"); - RecordTool.endRecord(); - - System.out.println(RecordTool.getModuleInformation()); - System.out.println(RecordTool.getModuleJsonInformation()); - System.out.println(RecordTool.getModuleInformation("第一模块")); - System.out.println(RecordTool.getModuleJsonInformation("第一模块")); - System.out.println(RecordTool.getModuleInformation("第四模块")); - System.out.println(RecordTool.getModuleJsonInformation("第四模块")); - } - - /** - * 测试RecordTool.recordStep()方法 - */ - @Test - public void testRecordStep() { - RecordTool.setModule("RecordStep", true); - RecordTool.startRecord(this.getClass().getName(), "testRecordStep"); - RecordTool.setRecordType(RecordType.values()); - RecordTool.recordStep("这是testRecordStep()方法添加的第1步骤"); - RecordTool.recordStep("这是testRecordStep()方法添加的第2步骤"); - RecordTool.recordStep("这是testRecordStep()方法添加的第3步骤"); - RecordTool.endRecord(); - } - - /** - * 测试isRecordStep()方法 - */ - @Test - public void testIsRecordStep() { - RecordTool.setModule("IsRecordStep", true); - RecordTool.startRecord(this.getClass().getName(), "testIsRecordStep"); - RecordTool.setRecordType(RecordType.values()); - RecordTool.recordStep("这是testIsRecordStep()方法添加的第1步骤"); - RecordTool.setRecordStep(false); - RecordTool.recordStep("这是testIsRecordStep()方法添加的第2步骤"); - RecordTool.setRecordStep(true); - RecordTool.recordStep("这是testIsRecordStep()方法添加的第3步骤"); - RecordTool.endRecord(); - } - - /** - * 测试recordResult()方法 - */ - @Test - public void testRecordResult() { - RecordTool.setModule("RecordResult", true); - RecordTool.startRecord(this.getClass().getName(), "testRecordResult"); - RecordTool.setRecordType(RecordType.values()); - RecordTool.recordResult(true, "成功", "失败"); - RecordTool.recordResult(false, "成功", "失败"); - RecordTool.recordResult(false, "成功"); - RecordTool.recordResult(true, "失败"); - RecordTool.endRecord(); - } - - /** - * 测试recordMark()方法 - */ - @Test - public void testRecordMark() { - RecordTool.setModule("RecordMark", true); - RecordTool.startRecord(this.getClass().getName(), "testRecordMark"); - RecordTool.setRecordType(RecordType.values()); - RecordTool.recordMark("第1个备注"); - RecordTool.recordMark("第2个备注"); - RecordTool.recordMark("第3个备注"); - RecordTool.endRecord(); - } - - /** - * 测试recordException()方法 - */ - @Test - public void testRecordException() { - RecordTool.setModule("RecordException", true); - RecordTool.startRecord(this.getClass().getName(), "testRecordException"); - RecordTool.setRecordType(RecordType.values()); - RecordTool.recordException(new NullPointerException("这是空指针异常")); - RecordTool.endRecord(); - } - - /** - * 记录综合测试 - */ - @Test - public void testRecordAll() { - RecordTool.setModule("RecordException", true); - RecordTool.startRecord(this.getClass().getName(), "testRecordAll"); - RecordTool.setRecordType(RecordType.values()); - RecordTool.recordStep("第一步"); - RecordTool.recordStep("第二步"); - RecordTool.recordResult(true, "这是bug"); - RecordTool.recordMark("记录一下备注"); - RecordTool.recordException(new NullPointerException("这是空指针异常")); - RecordTool.endRecord(); - } - - @Test(priority = 1) - public void testGetAllModuleInformation() { - RecordTool.startRecord(this.getClass().getName(), "testGetAllModuleInformation"); - RecordTool.endRecord(); - System.out.println(RecordTool.getAllModuleInformation()); - } -} diff --git a/src/test/java/pres/auxiliary/selenium/tool/TestRecord.java b/src/test/java/pres/auxiliary/selenium/tool/TestRecord.java deleted file mode 100644 index a48e133..0000000 --- a/src/test/java/pres/auxiliary/selenium/tool/TestRecord.java +++ /dev/null @@ -1,150 +0,0 @@ -package pres.auxiliary.selenium.tool; - -import java.io.File; - -import org.junit.After; -import org.junit.AfterClass; -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Ignore; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TestName; -import org.openqa.selenium.TimeoutException; - -import pres.auxiliary.work.selenium.tool.RecordTool; -import pres.auxiliary.work.selenium.tool.Screenshot; - -public class TestRecord { - @Rule - public TestName name = new TestName(); - static ExcelRecord_Old r; - static FirefoxBrower fb; - static Event event; - static Screenshot sc; - - @BeforeClass - public static void open() { - fb = new FirefoxBrower("", "", "http://116.10.187.227:88/zentao/user-login.html"); - fb.getDriver(); - r.setBrower(fb); - r.setActionName("彭宇琦"); - sc = new Screenshot(fb.getDriver()); - sc.setSavePath("C:\\AutoTest\\Screenshot\\"); - sc.setTime(1000); - event = Event.newInstance(fb.getDriver()); - event.setXmlFile(new File("src/test/java/pres/auxiliary/selenium/operation/登录界面.xml")); - r = RecordTool.getRecord(); - } - - @AfterClass - public static void close() { - fb.close(); - } - - @Before - public void startRecord() { - r.startRecord(this.getClass().getName(), name.getMethodName()); - - r.caseID("Test_01_01"); - r.caseModule("登录"); - r.caseTitle("测试非正常登录系统"); - r.caseCondition("进入登录页面"); - } - - @After - public void endRecord() { - r.endRecord(); - } - -// @Ignore - @Test - public void test1() throws Exception { - try { - r.caseStep("通过正确的用户名和密码登录"); - r.caseExpect("能正常登录系统"); - r.caseFlow("主线流"); - - event.getTextEvent().input("禅道用户名", "pengyuqi"); - event.getTextEvent().input("禅道密码", "123456"); - event.getClickEvent().click("禅道登录"); - - File f = sc.creatImage("正常登录"); - - try { - event.getClickEvent().click("禅道退出"); - r.result("输入正确的用户名和密码后能正常登录,测试通过", true); - r.runScreenshot(f); - } catch (TimeoutException e) { - r.result("输入正确的用户名和密码后不能正常登录,测试不通过,详见截图:" + f.getAbsolutePath()); - r.runScreenshot(f); - } - } catch (Exception e) { - r.setException(e); - r.errorScreenshot(sc.creatImage("抛出异常")); - } - } - -// @Ignore - @Test - public void test2() throws Exception { - try { - r.caseStep("通过不正确的用户名和密码登录"); - r.caseExpect("不能正常登录系统"); - r.caseFlow("备选流1"); - - event.getTextEvent().input("禅道用户名", "pengyqi"); - event.getTextEvent().input("禅道密码", "123456"); - event.getClickEvent().click("禅道登录"); - fb.getDriver().switchTo().alert().accept(); - - File f = sc.creatImage("不正常登录"); - - try { - event.getClickEvent().click("禅道退出"); - r.result("输入不正确的用户名和密码后能正常登录,测试不通过", true); - r.runScreenshot(f); - } catch (TimeoutException e) { - r.result("输入不正确的用户名和密码后不能正常登录,测试通过"); - r.runScreenshot(f); - } - } catch (Exception e) { - r.setException(e); - r.errorScreenshot(sc.creatImage("抛出异常")); - } - } - -// @Ignore - @Test - public void test3() throws Exception { - try { - event.getTextEvent().input("禅道用户名", "pengyqi"); - event.getTextEvent().input("禅道密码2", "123456"); - event.getClickEvent().click("禅道登录"); - - File f = sc.creatImage("乱登录"); - - try { - event.getClickEvent().click("禅道退出"); - r.result("输入不正确的用户名和密码后能正常登录,测试不通过,详见截图:" + f.getAbsolutePath()); - r.runScreenshot(f); - } catch (TimeoutException e) { - r.result("输入不正确的用户名和密码后不能正常登录,测试通过,详见截图:" + f.getAbsolutePath()); - r.runScreenshot(f); - } - } catch (Exception e) { - r.setException(e); - r.errorScreenshot(sc.creatImage("抛出异常")); - } - } - - @Ignore - @Test - public void test4() { - r.result("呵呵呵",false); - r.result("哈哈哈", true); - r.result("嘻嘻嘻"); - r.result("嘎嘎嘎",true); - r.result("唧唧唧"); - } -} diff --git a/src/test/java/pres/auxiliary/selenium/tool/TestScreenshot.java b/src/test/java/pres/auxiliary/selenium/tool/TestScreenshot.java deleted file mode 100644 index 6575aea..0000000 --- a/src/test/java/pres/auxiliary/selenium/tool/TestScreenshot.java +++ /dev/null @@ -1,35 +0,0 @@ -package pres.auxiliary.selenium.tool; - -import java.io.IOException; - -import org.junit.AfterClass; -import org.junit.BeforeClass; -import org.junit.Test; -import org.openqa.selenium.WebDriverException; - -import pres.auxiliary.work.selenium.tool.Screenshot; - -public class TestScreenshot { - static ChromeBrower cb; - static Screenshot sc; - static Event event; - - @BeforeClass - public static void openBrowers() throws InterruptedException { - cb = new ChromeBrower("D:\\2.学习\\1.自动化测试\\1.自动化驱动\\chromedriver.exe", "http://116.10.187.227:88"); - sc = new Screenshot(cb.getDriver()); - event = Event.newInstance(cb.getDriver()); - } - - @AfterClass - public static void closeBrowers() { - cb.close(); - } - - @Test - public void testScreenshotToTime() throws InterruptedException, WebDriverException, IOException { - sc.screenshotToTime(); - Thread.sleep(6000); - - } -} diff --git a/src/test/java/pres/auxiliary/selenium/xml/io/TestCreateXML.java b/src/test/java/pres/auxiliary/selenium/xml/io/TestCreateXML.java deleted file mode 100644 index c7fc191..0000000 --- a/src/test/java/pres/auxiliary/selenium/xml/io/TestCreateXML.java +++ /dev/null @@ -1,23 +0,0 @@ -package pres.auxiliary.selenium.xml.io; - -import java.io.File; - -import org.junit.Test; - -/** - * FileName: TestCreateXML.java - * - * 用于测试创建xml文件的程序 - * - * @author 彭宇琦 - * @Deta 2019年1月10日 上午11:35:25 - * @version ver1.0 - */ -public class TestCreateXML { - @Test - public void test_01() throws XmlFileNameIsNullException { - CreateXml.setMode(CreateXml.XPATH, CreateXml.ID, CreateXml.NAME); - CreateXml.setXmlPath("src/test/java/pres/auxiliary/selenium/xml/io/resource/"); - CreateXml.create(new File("src/test/java/pres/auxiliary/selenium/xml/io/resource").listFiles()); - } -} diff --git a/src/test/java/pres/auxiliary/work/selenium/brower/TestChromeBrower.java b/src/test/java/pres/auxiliary/work/selenium/brower/ChromeBrowerTest.java similarity index 95% rename from src/test/java/pres/auxiliary/work/selenium/brower/TestChromeBrower.java rename to src/test/java/pres/auxiliary/work/selenium/brower/ChromeBrowerTest.java index 9bbae02..04e5b8b 100644 --- a/src/test/java/pres/auxiliary/work/selenium/brower/TestChromeBrower.java +++ b/src/test/java/pres/auxiliary/work/selenium/brower/ChromeBrowerTest.java @@ -22,7 +22,7 @@ import pres.auxiliary.work.selenium.brower.ChromeBrower.ChromeOptionType; * @since JDK 1.8 * */ -public class TestChromeBrower { +public class ChromeBrowerTest { /** * 指向driver文件 */ @@ -36,7 +36,7 @@ public class TestChromeBrower { /** * 关闭浏览器 */ - @AfterClass + @AfterClass(alwaysRun = true) public void quit() { System.out.println(cb.getAllInformation()); Scanner sc = new Scanner(System.in); diff --git a/src/test/java/pres/auxiliary/work/selenium/brower/IeBrowerTest.java b/src/test/java/pres/auxiliary/work/selenium/brower/IeBrowerTest.java new file mode 100644 index 0000000..ad6420c --- /dev/null +++ b/src/test/java/pres/auxiliary/work/selenium/brower/IeBrowerTest.java @@ -0,0 +1,49 @@ +package pres.auxiliary.work.selenium.brower; + +import java.io.File; +import java.util.Scanner; + +import org.testng.annotations.AfterClass; +import org.testng.annotations.Test; + +/** + *

文件名:IeBrowerTest.java

+ *

用途:用于对{@link IeBrower}类进行测试

+ *

编码时间:2020年11月8日 下午4:54:29

+ *

修改时间:2020年11月8日 下午4:54:29

+ * @author 彭宇琦 + * @version Ver1.0 + * @since JDK 1.8 + */ +public class IeBrowerTest { + /** + * 指向driver文件 + */ + private final File driverFile = new File("Resource/BrowersDriver/Ie/IEDriverServer.exe"); + + /** + * 指向浏览器对象 + */ + IeBrower ib; + + /** + * 关闭浏览器 + */ + @AfterClass(alwaysRun = true) + public void quit() { + System.out.println(ib.getAllInformation()); + Scanner sc = new Scanner(System.in); + sc.next(); + ib.closeBrower(); + sc.close(); + } + + /** + * 测试打开浏览器后加载预设界面 + */ + @Test + public void chromeBrowerTest_FilePage() { + ib = new IeBrower(driverFile, new Page("https://www.baidu.com", "百度")); + ib.getDriver(); + } +} diff --git a/src/test/java/test/javase/image/TestGetImageInformation.java b/src/test/java/test/javase/image/TestGetImageInformation.java deleted file mode 100644 index ea3306f..0000000 --- a/src/test/java/test/javase/image/TestGetImageInformation.java +++ /dev/null @@ -1,28 +0,0 @@ -package test.javase.image; - -import java.awt.image.BufferedImage; -import java.io.File; -import java.io.IOException; - -import javax.imageio.ImageIO; - -import org.junit.BeforeClass; -import org.junit.Test; - -public class TestGetImageInformation { - static BufferedImage i; - - @BeforeClass - public static void newImage() { - try { - i = ImageIO.read(new File("E:\\测试\\Tsee4j测试\\1.png")); - } catch (IOException e) { - e.printStackTrace(); - } - } - - @Test - public void test_01_GetWidthAndHight() throws Exception { - System.out.println("图片的像素为:" + i.getHeight() + " × " + i.getWidth()); - } -} diff --git a/src/test/java/test/javase/resource/test.csv b/src/test/java/test/javase/resource/test.csv deleted file mode 100644 index c35a171..0000000 --- a/src/test/java/test/javase/resource/test.csv +++ /dev/null @@ -1,19 +0,0 @@ -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 diff --git a/src/test/java/test/selenium/brower/TestOpenBrower.java b/src/test/java/test/selenium/brower/TestOpenBrower.java new file mode 100644 index 0000000..4a46853 --- /dev/null +++ b/src/test/java/test/selenium/brower/TestOpenBrower.java @@ -0,0 +1,38 @@ +package test.selenium.brower; + +import org.openqa.selenium.WebDriver; +import org.openqa.selenium.ie.InternetExplorerDriver; +import org.openqa.selenium.ie.InternetExplorerOptions; +import org.testng.annotations.AfterClass; +import org.testng.annotations.Test; + +/** + *

文件名:TestOpenBrower.java

+ *

用途:用于实验打开各类浏览器

+ *

编码时间:2020年11月8日 下午2:49:54

+ *

修改时间:2020年11月8日 下午2:49:54

+ * @author 彭宇琦 + * @version Ver1.0 + * @since JDK 12 + */ +public class TestOpenBrower { + WebDriver driver; + + @AfterClass + public void quit() { + driver.quit(); + } + + @Test + public void openIeBrower() { +// File ieDriverFile = new File("Resource/BrowersDriver/Ie/IEDriverServer.exe"); + // 指定IE driver的存放路径 + System.setProperty("webdriver.ie.driver", "Resource/BrowersDriver/Ie/IEDriverServer.exe"); + InternetExplorerOptions ieo = new InternetExplorerOptions(); + + //实例化webdriver对象,启动IE浏览器 + driver = new InternetExplorerDriver(); + //通过对象driver调用具体的get方法来打开网页 + driver.get("http://www.baidu.com/"); + } +}