Commit 1b34d9afb8c9e0cd51ac0e5b1f53f5ce7dcc5e1b

Authored by huangyuanbo
2 parents 0b640e79 06fc8ada

Merge branch 'yb' into 'dev_test'

Yb

See merge request !1
essa.iml 0 → 100644
... ... @@ -0,0 +1,59 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
  3 + <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
  4 + <output url="file://$MODULE_DIR$/target/classes" />
  5 + <output-test url="file://$MODULE_DIR$/target/test-classes" />
  6 + <content url="file://$MODULE_DIR$">
  7 + <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
  8 + <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
  9 + <excludeFolder url="file://$MODULE_DIR$/target" />
  10 + </content>
  11 + <orderEntry type="inheritedJdk" />
  12 + <orderEntry type="sourceFolder" forTests="false" />
  13 + <orderEntry type="library" name="Maven: org.testng:testng:6.14.3" level="project" />
  14 + <orderEntry type="library" name="Maven: com.beust:jcommander:1.72" level="project" />
  15 + <orderEntry type="library" name="Maven: org.apache-extras.beanshell:bsh:2.0b6" level="project" />
  16 + <orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-java:3.11.0" level="project" />
  17 + <orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-api:3.11.0" level="project" />
  18 + <orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-edge-driver:3.11.0" level="project" />
  19 + <orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-opera-driver:3.11.0" level="project" />
  20 + <orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-remote-driver:3.11.0" level="project" />
  21 + <orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.7.9" level="project" />
  22 + <orderEntry type="library" name="Maven: org.apache.commons:commons-exec:1.3" level="project" />
  23 + <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.10" level="project" />
  24 + <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
  25 + <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.2" level="project" />
  26 + <orderEntry type="library" name="Maven: com.google.guava:guava:23.6-jre" level="project" />
  27 + <orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:1.3.9" level="project" />
  28 + <orderEntry type="library" name="Maven: org.checkerframework:checker-compat-qual:2.0.0" level="project" />
  29 + <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.1.3" level="project" />
  30 + <orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.1" level="project" />
  31 + <orderEntry type="library" name="Maven: org.codehaus.mojo:animal-sniffer-annotations:1.14" level="project" />
  32 + <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.3" level="project" />
  33 + <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.6" level="project" />
  34 + <orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:3.9.1" level="project" />
  35 + <orderEntry type="library" name="Maven: com.squareup.okio:okio:1.13.0" level="project" />
  36 + <orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-firefox-driver:3.11.0" level="project" />
  37 + <orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-chrome-driver:3.11.0" level="project" />
  38 + <orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-safari-driver:3.11.0" level="project" />
  39 + <orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-ie-driver:3.11.0" level="project" />
  40 + <orderEntry type="library" name="Maven: org.seleniumhq.selenium:selenium-support:2.46.0" level="project" />
  41 + <orderEntry type="library" name="Maven: javax.mail:mail:1.4" level="project" />
  42 + <orderEntry type="library" name="Maven: javax.activation:activation:1.1" level="project" />
  43 + <orderEntry type="library" name="Maven: org.apache.commons:commons-collections4:4.1" level="project" />
  44 + <orderEntry type="library" name="Maven: org.apache.poi:poi:3.14" level="project" />
  45 + <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml:3.14" level="project" />
  46 + <orderEntry type="library" name="Maven: com.github.virtuald:curvesapi:1.03" level="project" />
  47 + <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:3.14" level="project" />
  48 + <orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:2.6.0" level="project" />
  49 + <orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" />
  50 + <orderEntry type="library" name="Maven: commons-io:commons-io:1.3.2" level="project" />
  51 + <orderEntry type="library" name="Maven: mysql:mysql-connector-java:6.0.6" level="project" />
  52 + <orderEntry type="library" name="Maven: org.dbunit:dbunit:2.5.4" level="project" />
  53 + <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.21" level="project" />
  54 + <orderEntry type="library" name="Maven: junit:junit:4.12" level="project" />
  55 + <orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
  56 + <orderEntry type="library" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
  57 + <orderEntry type="library" name="Maven: jdom:jdom:1.0" level="project" />
  58 + </component>
  59 +</module>
0 60 \ No newline at end of file
... ...
src/main/java/com/essa/framework/LinkSQL.java 0 → 100644
... ... @@ -0,0 +1,60 @@
  1 +package com.essa.framework;
  2 +import java.sql.*;
  3 +
  4 +public class LinkSQL {
  5 +
  6 + public static void main(String[] args) {
  7 + LinkSQL dao = new LinkSQL();
  8 + dao.SQLQuery();
  9 +
  10 + }
  11 +
  12 + public static String SQLQuery() {
  13 +
  14 + String Code = null;
  15 + Connection conn = null;
  16 + Statement stmt = null;
  17 + ResultSet rs = null;
  18 +
  19 + try {
  20 + Class.forName("com.mysql.jdbc.Driver");
  21 +// 连接SIT环境的数据库
  22 + conn = DriverManager.getConnection("jdbc:mysql://192.168.1.247:3307/bpms","root","redhat");
  23 +
  24 + stmt = conn.createStatement();
  25 +
  26 +// 查询FO单在制单中的PO单号
  27 + rs =stmt.executeQuery("SELECT p.code FROM fact_fo as f INNER JOIN sale_po as p ON f.from_id=p.id WHERE send_order_status=2 AND from_type=1 ORDER BY f.id DESC LIMIT 1");
  28 +
  29 + while (rs.next()) {
  30 + Code = rs.getString("code");
  31 + }
  32 + return Code;
  33 +
  34 + } catch (ClassNotFoundException e) {
  35 + System.out.println("驱动类无法找到!");
  36 + throw new RuntimeException(e);
  37 +
  38 + } catch (SQLException e) {
  39 + System.out.println("数据库访问异常!");
  40 + throw new RuntimeException(e);
  41 + }finally {
  42 + //关闭链接资源
  43 + try {
  44 + if (rs !=null) {
  45 + rs.close();
  46 + }
  47 + if (stmt !=null) {
  48 + stmt.cancel();
  49 + }
  50 + if (conn !=null) {
  51 + conn.close();
  52 + }
  53 +
  54 + } catch (SQLException e) {
  55 + System.out.println("关闭连接时发生异常");
  56 + e.printStackTrace();
  57 + }
  58 + }
  59 + }
  60 +}
... ...
src/main/java/com/essa/pageObject/HomePage.java
1 1 package com.essa.pageObject;
2 2  
3   -import org.openqa.selenium.WebDriver;
  3 +import com.essa.pageObject.ReceiptCore.ReceiptCorePage;
  4 +import org.openqa.selenium.WebDriver;
4 5 import org.openqa.selenium.WebElement;
5 6 import org.openqa.selenium.support.FindBy;
6 7 import com.essa.framework.BasePage;
... ... @@ -157,6 +158,10 @@ public class HomePage extends BasePage{
157 158 //PO跟单
158 159 @FindBy (xpath ="//*[text()='PO跟单']")
159 160 WebElement PODocumentary;
  161 +
  162 + //前台发单中心
  163 + @FindBy (xpath ="//*[text()='前台发单中心']")
  164 + WebElement Receipt_core ;
160 165  
161 166 //仓储管理
162 167 @FindBy (xpath = "//span[contains(text(),'仓储管理')]")
... ... @@ -426,4 +431,13 @@ public class HomePage extends BasePage{
426 431 switchMoreWindow();
427 432 return new NeedDealtApplyPage(driver);
428 433 }
  434 +
  435 + /*
  436 + * 进入前台发单中心页面
  437 + * */
  438 + public ReceiptCorePage toReceiptCore() {
  439 + click(DocumentaryManage);
  440 + click(Receipt_core);
  441 + return new ReceiptCorePage(driver);
  442 + }
429 443 }
430 444 \ No newline at end of file
... ...
src/main/java/com/essa/pageObject/ReceiptCore/ReceiptCorePage.java 0 → 100644
... ... @@ -0,0 +1,177 @@
  1 +package com.essa.pageObject.ReceiptCore;
  2 +import com.essa.framework.BasePage;
  3 +import org.openqa.selenium.By;
  4 +import org.openqa.selenium.WebDriver;
  5 +import org.openqa.selenium.WebElement;
  6 +import org.openqa.selenium.support.FindBy;
  7 +
  8 +
  9 +/*
  10 + * 前台发单中心页面
  11 + * */
  12 +
  13 +
  14 +public class ReceiptCorePage extends BasePage {
  15 +
  16 + public ReceiptCorePage(WebDriver driver) { super(driver);}
  17 +
  18 + /*
  19 + * 页面元素定位
  20 + * */
  21 +
  22 + @FindBy (xpath = "//i[@class='iconfont icon-double-arrow-right']")
  23 +// @FindBy (xpath = "//*[contains(text(),'高级查询')]")
  24 + WebElement advancedQuery; //高级查询
  25 +
  26 + @FindBy (xpath = "/html[1]/body[1]/div[2]/div[2]/div[1]/div[1]/div[1]/div[1]/form[2]/div[5]/div[1]/input[1]")
  27 +// @FindBy (xpath = "//input[@type='text' and @ng-model='query.params.poCode']")
  28 +
  29 + WebElement PO_numbers; //PO单号
  30 +
  31 + @FindBy (xpath = "//*[text()='查询']")
  32 +// @FindBy (xpath = "//*/button[@type='submit']")
  33 +
  34 + WebElement Query ; //查询
  35 +
  36 + @FindBy (xpath = "//tbody//tr[1]")
  37 +// @FindBy (xpath = "//*[@id=\"frontSendListCtrlView\"]/div/div/table/tbody/tr[1]")
  38 +
  39 + WebElement list_1; //列表第一条数据
  40 +
  41 + @FindBy (xpath = "/html[1]/body[1]/div[2]/div[2]/div[1]/div[1]/div[1]/div[1]/div[1]/table[1]/tbody[1]")
  42 +
  43 + WebElement list; //列表
  44 +
  45 + @FindBy (xpath = "/html[1]/body[1]/div[2]/div[2]/div[1]/div[1]/div[1]/div[1]/div[1]/table[1]/tbody[1]/tr[1]/td[1]")
  46 +
  47 + WebElement document_code; //单据编号
  48 +
  49 + @FindBy (xpath = "//*[text()='开始发单']")
  50 +// @FindBy (xpath = "/html[1]/body[1]/div[2]/div[2]/div[1]/div[1]/div[1]/div[1]/div[1]/div[1]/button[1]")
  51 +
  52 + WebElement start_billing; // 开始发单
  53 +
  54 + @FindBy (xpath = "//button[@class='btn btn-danger ng-scope']")
  55 +
  56 + WebElement start_billing_1 ; //前台发单扫码平台的开始发单
  57 +
  58 + @FindBy (xpath = "//div[@class='input-group ng-isolate-scope ng-pristine ng-valid']//input[@type='text']")
  59 +
  60 + WebElement input_document_code;//单据编号输入框
  61 +
  62 + @FindBy (xpath = "//button[@type='button' and @ng-click='clickBtn()']")
  63 +// @FindBy (xpath = "//*[contains(@ng-click,'clickBtn')]")
  64 +
  65 + WebElement search ;// 搜索按钮
  66 +
  67 + @FindBy (xpath = "//a[contains(text(),'扫码确认接单')]")
  68 +
  69 + WebElement Confirm_billing ; // 扫码确认接单
  70 +
  71 + @FindBy (xpath = "//*[text()='接单完成']")
  72 +
  73 + WebElement finish_billing; //接单完成
  74 +
  75 + @FindBy (xpath = "//*[contains(text(),'所选的工厂订单状态必须为“制单中”或“重新发单”')]")
  76 +
  77 + WebElement Fail_billing; //发单失败
  78 +
  79 + @FindBy (xpath = "//*[contains(text(),'所选的工厂订单状态必须为“发单中”')]")
  80 +
  81 + //*[coantains(text(),'所选的工厂订单状态必须为']
  82 + // *[@data-notify='message']
  83 + //*[@data-notify='message'] and text()='所选的工厂订单状态必须为“发单中”'
  84 + //*[(text()=' 所选的工厂订单状态必须为“发单中”']
  85 +
  86 + WebElement Fail_order; //接单失败
  87 +
  88 + @FindBy (xpath = "//*[contains(text(),'操作成功')]")
  89 +
  90 + WebElement Succeed_billing; //发单成功
  91 +
  92 +
  93 +
  94 +
  95 +
  96 + /*
  97 + * 页面方法
  98 + * */
  99 +
  100 + public void BillOrder(String PO_Code) {
  101 + click(advancedQuery);
  102 + forceWait(1000);
  103 +
  104 + sendKeys(PO_numbers,PO_Code);
  105 + forceWait(1000);
  106 +
  107 + click(Query);
  108 +// forceWait(3000);
  109 +
  110 + dynamicWait(By.xpath("/html[1]/body[1]/div[2]/div[2]/div[1]/div[1]/div[1]/div[1]/div[1]/table[1]/tbody[1]"));
  111 +
  112 +// actionDoubleClick(document_code); // 双击元素
  113 +// forceWait(1000);
  114 + String Fo = document_code.getText();
  115 + forceWait(1000);
  116 +
  117 + click(start_billing);
  118 + forceWait(1000);
  119 + sendKeys(input_document_code,Fo);
  120 + forceWait(1000);
  121 +
  122 + click(search);
  123 + forceWait(1000);
  124 +
  125 + click(start_billing_1);
  126 + forceWait(1000);
  127 +// isVisibility(By.xpath("//*[contains(text(),'所选的工厂订单状态必须为“发单中”')]"));
  128 +
  129 + click(start_billing);
  130 + forceWait(1000);
  131 +
  132 + click(Confirm_billing);
  133 + forceWait(1000);
  134 +
  135 + sendKeys(input_document_code,Fo);
  136 + forceWait(1000);
  137 +
  138 + click(search);
  139 + forceWait(1000);
  140 +
  141 + click(finish_billing);
  142 + forceWait(3000);
  143 +
  144 +
  145 +
  146 + }
  147 +
  148 +
  149 + /*
  150 + *用于断言发单接单是否成功
  151 + * @return boolean
  152 + */
  153 +
  154 + public boolean isSucceed() {return isElementExist(Succeed_billing);}
  155 +
  156 + /*
  157 + *用于断言发单是否成功
  158 + * @return boolean
  159 + */
  160 +
  161 + public boolean FailBilling() {return isElementExist(Fail_billing);}
  162 +
  163 + /*
  164 + *用于断言接单是否成功
  165 + * @return boolean
  166 + */
  167 +
  168 +
  169 + public boolean FailOrder() {return isElementExist(Fail_order);}
  170 +
  171 +
  172 +
  173 +
  174 +
  175 +
  176 +
  177 +}
... ...
src/main/java/com/essa/testSuite/TestReceiptCore.java 0 → 100644
... ... @@ -0,0 +1,51 @@
  1 +package com.essa.testSuite;
  2 +import com.essa.framework.LinkSQL;
  3 +import com.essa.pageObject.BaseTest;
  4 +import com.essa.pageObject.HomePage;
  5 +import com.essa.pageObject.ReceiptCore.ReceiptCorePage;
  6 +import org.openqa.selenium.WebDriver;
  7 +import org.openqa.selenium.support.PageFactory;
  8 +import org.testng.annotations.AfterClass;
  9 +import org.testng.annotations.BeforeClass;
  10 +import org.testng.annotations.Test;
  11 +import org.testng.asserts.SoftAssert;
  12 +
  13 +
  14 +public class TestReceiptCore extends BaseTest {
  15 + WebDriver driver ;
  16 +
  17 + @BeforeClass
  18 + public void setUp() {
  19 + initsetUp();
  20 + loginValid("zhidanbu");
  21 + }
  22 +
  23 + @AfterClass
  24 + public void tearDown() {driver.quit();}
  25 +
  26 + /*
  27 + * PO发单接单
  28 + * */
  29 + @Test( )
  30 + public void receiptcore () {
  31 + this.driver = getDriver();
  32 + HomePage homePage = PageFactory.initElements(driver,HomePage.class);
  33 + homePage.toReceiptCore();
  34 + ReceiptCorePage receiptCorePage = PageFactory.initElements(driver,ReceiptCorePage.class);
  35 + String PO = LinkSQL.SQLQuery();
  36 +
  37 + receiptCorePage.BillOrder(PO);
  38 +
  39 + SoftAssert softAssert = new SoftAssert();
  40 + boolean SucceedElement = receiptCorePage.isSucceed();
  41 +// boolean FailElement = receiptCorePage.FailBilling();
  42 +// boolean FailElement1 = receiptCorePage.FailOrder();
  43 + System.out.println(SucceedElement);
  44 +
  45 + softAssert.assertEquals(SucceedElement,true,"发单接单失败");
  46 + softAssert.assertAll();
  47 +
  48 +
  49 + }
  50 +
  51 +}
... ...