Commit 1b34d9afb8c9e0cd51ac0e5b1f53f5ce7dcc5e1b
Merge branch 'yb' into 'dev_test'
Yb See merge request !1
Showing
5 changed files
with
362 additions
and
1 deletions
Show diff stats
... | ... | @@ -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 | ... | ... |
... | ... | @@ -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 | +} | ... | ... |