Commit 60b8852fbf90e0311cf42f1a44c6c655fd86bd3c
1 parent
09fdf50f
test
Showing
23 changed files
with
411 additions
and
198 deletions
Show diff stats
pom.xml
... | ... | @@ -96,6 +96,17 @@ |
96 | 96 | <artifactId>commons-io</artifactId> |
97 | 97 | <version>1.3.2</version> |
98 | 98 | </dependency> |
99 | + | |
100 | + <dependency> | |
101 | + <groupId>mysql</groupId> | |
102 | + <artifactId>mysql-connector-java</artifactId> | |
103 | + <version>6.0.6</version> | |
104 | + </dependency> | |
105 | + <dependency> | |
106 | + <groupId>org.dbunit</groupId> | |
107 | + <artifactId>dbunit</artifactId> | |
108 | + <version>2.5.4</version> | |
109 | + </dependency> | |
99 | 110 | </dependencies> |
100 | 111 | |
101 | 112 | <build> |
... | ... | @@ -107,7 +118,7 @@ |
107 | 118 | <configuration> |
108 | 119 | <!--<testFailureIgnore>true</testFailureIgnore>--> |
109 | 120 | <suiteXmlFiles> |
110 | - <suiteXmlFile>suites/testng.xml</suiteXmlFile> | |
121 | + <suiteXmlFile>resources/suites/testng.xml</suiteXmlFile> | |
111 | 122 | <!--此处testng.xml即为要运行的testng.xml文件--> |
112 | 123 | </suiteXmlFiles> |
113 | 124 | </configuration> | ... | ... |
src/main/resources/chromedriver.exe renamed to resources/chromedriver.exe
No preview for this file type
src/main/resources/TestConfig/config.properties renamed to resources/config.properties
suites/addOriginalGoods.xml renamed to resources/suites/addOriginalGoods.xml
src/test/java/com/essa/framework/BasePage.java
... | ... | @@ -7,6 +7,8 @@ import java.awt.event.KeyEvent; |
7 | 7 | import java.io.File; |
8 | 8 | import java.io.FileInputStream; |
9 | 9 | import java.io.IOException; |
10 | +import java.sql.Connection; | |
11 | +import java.sql.ResultSet; | |
10 | 12 | import java.text.SimpleDateFormat; |
11 | 13 | import java.util.ArrayList; |
12 | 14 | import java.util.Date; |
... | ... | @@ -38,6 +40,7 @@ import org.openqa.selenium.support.ui.WebDriverWait; |
38 | 40 | import com.essa.framework.BasePage; |
39 | 41 | import com.essa.framework.LogType; |
40 | 42 | import com.essa.framework.Logger; |
43 | +import com.mysql.cj.jdbc.PreparedStatement; | |
41 | 44 | |
42 | 45 | public class BasePage { |
43 | 46 | |
... | ... | @@ -229,21 +232,21 @@ public class BasePage { |
229 | 232 | } |
230 | 233 | |
231 | 234 | /** |
232 | - * 元素在页面上是否可见 | |
235 | + * 元素在页面上是否可见,不建议用此方法,有时会报错,找不出原因 | |
233 | 236 | * @param element |
234 | 237 | * @return boolean |
235 | 238 | */ |
236 | 239 | protected boolean isVisibility(WebElement element) { |
237 | 240 | try { |
238 | 241 | if(ExpectedConditions.visibilityOf(element) != null) { |
239 | - Logger.Output(LogType.LogTypeName.INFO, "元素在页面上可见:" +partialStr(element.toString(), "xpath:")); | |
242 | + Logger.Output(LogType.LogTypeName.INFO, "元素在页面上可见"); | |
240 | 243 | return true; |
241 | 244 | } |
242 | 245 | } catch (NoSuchElementException e) { |
243 | - Logger.Output(LogType.LogTypeName.ERROR, "无法页面上是否有此元素:"+partialStr(element.toString(), "xpath:")+ e.getMessage()); | |
246 | + Logger.Output(LogType.LogTypeName.ERROR, "无法页面上是否有此元素"); | |
244 | 247 | return false; |
245 | 248 | } |
246 | - Logger.Output(LogType.LogTypeName.INFO, "元素在页面不可见:" +partialStr(element.toString(), "xpath:")); | |
249 | + Logger.Output(LogType.LogTypeName.INFO, "元素在页面不可见"); | |
247 | 250 | return false; |
248 | 251 | } |
249 | 252 | |
... | ... | @@ -270,16 +273,17 @@ public class BasePage { |
270 | 273 | * 获取元素的文本值 |
271 | 274 | * @param element |
272 | 275 | */ |
273 | - protected void getText(WebElement element) { | |
276 | + protected String getText(WebElement element) { | |
274 | 277 | |
275 | 278 | try { |
276 | 279 | if (element.isEnabled()) { |
277 | - element.getText(); | |
278 | 280 | Logger.Output(LogType.LogTypeName.INFO, "获取当前元素的文本值:" + element.getText()); |
281 | + return element.getText(); | |
279 | 282 | } |
280 | 283 | } catch (Exception e) { |
281 | 284 | Logger.Output(LogType.LogTypeName.ERROR, e.getMessage() + "."); |
282 | 285 | } |
286 | + return null; | |
283 | 287 | } |
284 | 288 | |
285 | 289 | /** |
... | ... | @@ -291,7 +295,7 @@ public class BasePage { |
291 | 295 | mywait(element); |
292 | 296 | JavascriptExecutor jsExecutor = (JavascriptExecutor) driver; |
293 | 297 | jsExecutor.executeScript("arguments[0].click();", element); |
294 | - Logger.Output(LogType.LogTypeName.INFO, "调用JavaScript点击元素:" + element.getText()); | |
298 | + Logger.Output(LogType.LogTypeName.INFO, "调用JavaScript点击元素:" + partialStr(element.toString(), "xpath:")); | |
295 | 299 | } catch (Exception e) { |
296 | 300 | Logger.Output(LogType.LogTypeName.ERROR, e.getMessage() + "."); |
297 | 301 | } |
... | ... | @@ -625,6 +629,35 @@ public class BasePage { |
625 | 629 | Logger.Output(LogType.LogTypeName.ERROR, "强行等待失败"); |
626 | 630 | } |
627 | 631 | } |
632 | + /** | |
633 | + * 动态等待,如果元素不存在,等待一秒直到元素出现 | |
634 | + * @param by | |
635 | + */ | |
636 | + protected void dynamicWait(By by) { | |
637 | + while (!(isVisibility(by))) { | |
638 | + forceWait(1000); | |
639 | + } | |
640 | + } | |
641 | + /** | |
642 | + * 连接数据库查询数据 | |
643 | + * @param sql 查询sql | |
644 | + * @param field 需要的字段,这个方法只支持一个字段查询 | |
645 | + * @return 返回字段值 | |
646 | + */ | |
647 | + protected String DBSqlSearch(String sql,String field) { | |
648 | + try { | |
649 | + Connection conn = DButil.getCon(); | |
650 | + PreparedStatement pstmt = (PreparedStatement) conn.prepareStatement(sql); | |
651 | + ResultSet rs = pstmt.executeQuery(); | |
652 | + while (rs.next()) { | |
653 | + return rs.getString(field); | |
654 | + } | |
655 | + DButil.close(rs, pstmt, conn); | |
656 | + } catch (Exception e) { | |
657 | + e.printStackTrace(); | |
658 | + } | |
659 | + return null; | |
660 | + } | |
628 | 661 | |
629 | 662 | /** |
630 | 663 | * 获取当前系统时间,得到格式化时间字符串 | ... | ... |
src/test/java/com/essa/framework/BrowserEngine.java
... | ... | @@ -9,7 +9,6 @@ import java.util.concurrent.TimeUnit; |
9 | 9 | import org.openqa.selenium.WebDriver; |
10 | 10 | import org.openqa.selenium.chrome.ChromeDriver; |
11 | 11 | import org.openqa.selenium.firefox.FirefoxDriver; |
12 | -import org.openqa.selenium.firefox.FirefoxProfile; | |
13 | 12 | import org.openqa.selenium.ie.InternetExplorerDriver; |
14 | 13 | import org.openqa.selenium.remote.CapabilityType; |
15 | 14 | import org.openqa.selenium.remote.DesiredCapabilities; |
... | ... | @@ -20,33 +19,31 @@ public class BrowserEngine { |
20 | 19 | private String serverURL; |
21 | 20 | private String buyerURL; |
22 | 21 | private static WebDriver driver; |
23 | - private static String env; | |
22 | + private static String env1; | |
24 | 23 | |
25 | 24 | public void initConfigData() throws IOException{ |
26 | - | |
27 | 25 | Properties p = new Properties(); |
28 | 26 | // 加载配置文件 |
29 | -// InputStream ips = new FileInputStream(".\\src\\main\\resources\\TestConfig\\config.properties"); | |
30 | - InputStream ips = new FileInputStream(".\\config.properties"); | |
27 | + InputStream ips = new FileInputStream(".\\resources\\config.properties"); | |
31 | 28 | p.load(ips); |
32 | - | |
33 | 29 | Logger.Output(LogType.LogTypeName.INFO, "开始从配置文件中选择浏览器"); |
34 | -// browserName=p.getProperty("browserName");//使用jframe要注释 | |
30 | + browserName=p.getProperty("browserName");//使用jframe要注释 | |
35 | 31 | Logger.Output(LogType.LogTypeName.INFO, "所选择的浏览器类型为: "+ browserName); |
36 | - if (env=="DIT") { | |
32 | + if (env1=="DIT") { | |
37 | 33 | serverURL = p.getProperty("DIT"); |
38 | 34 | buyerURL = p.getProperty("BDIT"); |
39 | - }else if (env =="HOTFIX") { | |
35 | + }else if (env1 =="HOTFIX") { | |
40 | 36 | serverURL = p.getProperty("HOTFIX"); |
41 | 37 | buyerURL = p.getProperty("BHOTFIX"); |
42 | - }else if (env == "UAT") { | |
38 | + }else if (env1 == "UAT") { | |
43 | 39 | serverURL = p.getProperty("UAT"); |
44 | 40 | buyerURL = p.getProperty("BUAT"); |
45 | 41 | }else { |
46 | 42 | serverURL = p.getProperty("SIT"); |
47 | 43 | buyerURL = p.getProperty("BSIT"); |
48 | 44 | } |
49 | - Logger.Output(LogType.LogTypeName.INFO, "所测试的环境为:"+ env); | |
45 | + Logger.Output(LogType.LogTypeName.INFO, "所测试的环境为:"+ env1); | |
46 | + Model.setEnv(env1);//我也不知道为什么执行完上面的代码后,env会变为sit | |
50 | 47 | ips.close(); |
51 | 48 | } |
52 | 49 | /** |
... | ... | @@ -56,7 +53,7 @@ public class BrowserEngine { |
56 | 53 | */ |
57 | 54 | public static void setInit(String environment,String browser) { |
58 | 55 | browserName = browser; |
59 | - env = environment; | |
56 | + env1 = environment; | |
60 | 57 | } |
61 | 58 | |
62 | 59 | /** |
... | ... | @@ -66,20 +63,15 @@ public class BrowserEngine { |
66 | 63 | public WebDriver getBrowser(){ |
67 | 64 | |
68 | 65 | if(browserName.equalsIgnoreCase("Firefox")){ |
69 | - | |
70 | - System.setProperty("webdriver.gecko.driver", ".\\src\\main\\resources\\geckodriver.exe"); | |
71 | - driver = createFireFoxDriver(); | |
66 | + System.setProperty("webdriver.gecko.driver", ".\\resources\\geckodriver.exe"); | |
67 | + driver = new FirefoxDriver(); | |
72 | 68 | Logger.Output(LogType.LogTypeName.INFO, "正在启动FireFox浏览器"); |
73 | - | |
74 | 69 | } |
75 | 70 | else if(browserName.equals("Chrome")){ |
76 | -// System.setProperty("webdriver.chrome.driver", ".\\src\\main\\resources\\chromedriver.exe"); | |
77 | - System.setProperty("webdriver.chrome.driver", ".\\chromedriver.exe"); | |
71 | + System.setProperty("webdriver.chrome.driver", ".\\resources\\chromedriver.exe"); //图形界面 | |
78 | 72 | driver= new ChromeDriver(); |
79 | 73 | Logger.Output(LogType.LogTypeName.INFO, "正在启动Chrome浏览器"); |
80 | - | |
81 | 74 | }else if(browserName.equalsIgnoreCase("IE")){ |
82 | - | |
83 | 75 | System.setProperty("webdriver.ie.driver", ".\\src\\main\resources\\IEDriverServer.exe"); |
84 | 76 | driver= new InternetExplorerDriver(); |
85 | 77 | Logger.Output(LogType.LogTypeName.INFO, "正在启动IE浏览器"); |
... | ... | @@ -98,10 +90,13 @@ public class BrowserEngine { |
98 | 90 | */ |
99 | 91 | public WebDriver buyerGetBrowser() { |
100 | 92 | if (browserName.equals("Chrome")) { |
101 | -// System.setProperty("webdriver.chrome.driver", ".\\src\\main\\resources\\chromedriver.exe"); | |
102 | - System.setProperty("webdriver.chrome.driver", ".\\chromedriver.exe"); | |
93 | + System.setProperty("webdriver.chrome.driver", ".\\resources\\chromedriver.exe"); //图形界面 | |
103 | 94 | driver= new ChromeDriver(); |
104 | 95 | Logger.Output(LogType.LogTypeName.INFO, "正在启动Chrome浏览器"); |
96 | + }else if (browserName.equals("Firefox")) { | |
97 | + System.setProperty("webdriver.gecko.driver", ".\\resources\\geckodriver.exe"); | |
98 | + driver = new FirefoxDriver(); | |
99 | + Logger.Output(LogType.LogTypeName.INFO, "正在启动FireFox浏览器"); | |
105 | 100 | } |
106 | 101 | driver.manage().window().maximize(); |
107 | 102 | Logger.Output(LogType.LogTypeName.INFO, "窗口最大化"); |
... | ... | @@ -111,51 +106,29 @@ public class BrowserEngine { |
111 | 106 | return driver; |
112 | 107 | } |
113 | 108 | |
114 | - /* | |
115 | - * 关闭浏览器并退出方法 | |
116 | - */ | |
117 | 109 | |
110 | + /** | |
111 | + * 退出驱动 | |
112 | + * @throws InterruptedException | |
113 | + */ | |
118 | 114 | public void tearDown() throws InterruptedException{ |
119 | - | |
120 | 115 | Logger.Output(LogType.LogTypeName.INFO, "关闭浏览器"); |
121 | 116 | driver.quit(); |
122 | 117 | Thread.sleep(3000); |
123 | 118 | } |
124 | 119 | |
125 | - /* | |
120 | + /** | |
126 | 121 | * 隐式时间等待方法 |
127 | - */ | |
122 | + * @param time | |
123 | + */ | |
128 | 124 | public void callWait(int time){ |
129 | 125 | |
130 | 126 | driver.manage().timeouts().implicitlyWait(time, TimeUnit.SECONDS); |
131 | 127 | Logger.Output(LogType.LogTypeName.INFO, "设置隐性等待"+time+" 秒"); |
132 | 128 | } |
133 | - | |
134 | - | |
135 | - /* | |
136 | - * createFireFox Driver | |
137 | - * @Param: null | |
138 | - * @return: WebDriver | |
139 | - */ | |
140 | - | |
141 | - private WebDriver createFireFoxDriver() { | |
142 | - | |
143 | - WebDriver driver = null; | |
144 | - FirefoxProfile firefoxProfile = new FirefoxProfile(); | |
145 | - | |
146 | - firefoxProfile.setPreference("prefs.converted-to-utf8", true); | |
147 | - //set download folder to default folder: TestDownload | |
148 | - firefoxProfile.setPreference("browser.download.folderList", 2); | |
149 | - firefoxProfile.setPreference("browser.download.dir", ".\\TestDownload"); | |
150 | - | |
151 | - try { | |
152 | - driver = new FirefoxDriver(); | |
153 | - } catch (Exception e) { | |
154 | - Logger.Output(LogType.LogTypeName.ERROR, e.getMessage()); | |
155 | - Logger.Output(LogType.LogTypeName.ERROR, "Failed to initilize the Firefox driver"); | |
156 | - } | |
157 | - return driver; | |
158 | - } | |
129 | + /** | |
130 | + *跳过安全链接 | |
131 | + */ | |
159 | 132 | public void anQuan() { |
160 | 133 | // 创建DesiredCapabilities类的一个对象实例 |
161 | 134 | DesiredCapabilities cap=DesiredCapabilities.chrome(); | ... | ... |
src/test/java/com/essa/framework/Logger.java
... | ... | @@ -8,8 +8,6 @@ import java.util.Date; |
8 | 8 | |
9 | 9 | import com.essa.framework.LogType; |
10 | 10 | |
11 | -import demo.firstDemo; | |
12 | - | |
13 | 11 | public class Logger { |
14 | 12 | |
15 | 13 | public static String OutputFileName = getDateTimeByFormat(new Date(), "yyyyMMdd"); |
... | ... | @@ -58,8 +56,7 @@ public class Logger { |
58 | 56 | } |
59 | 57 | |
60 | 58 | public static void Output(LogType.LogTypeName logTypeName, String logMessage) { |
61 | - firstDemo aa = new firstDemo(); | |
62 | - Date date = new Date(); | |
59 | + Date date = new Date(); | |
63 | 60 | String logTime = getDateTimeByFormat(date, "yyyy-MM-dd HH:mm:ss.SSS"); |
64 | 61 | String logEntry = logTime + " " + logTypeName.name() + ": " + logMessage + "\r\n"; |
65 | 62 | System.out.print(logEntry); | ... | ... |
src/test/java/com/essa/pageObject/BaseTest.java
... | ... | @@ -4,9 +4,16 @@ import java.io.IOException; |
4 | 4 | |
5 | 5 | import org.openqa.selenium.WebDriver; |
6 | 6 | import org.openqa.selenium.support.PageFactory; |
7 | + | |
8 | +import com.buyer.pageObject.BuyerLoginPage; | |
9 | +import com.buyer.pageObject.IndexPage; | |
7 | 10 | import com.essa.framework.BrowserEngine; |
8 | 11 | import com.essa.pageObject.LoginPage; |
9 | 12 | |
13 | +/** | |
14 | + * @author Administrator | |
15 | + *测试用例的基类,主要是有登录和调用浏览器的方法 | |
16 | + */ | |
10 | 17 | public class BaseTest { |
11 | 18 | public WebDriver driver; |
12 | 19 | |
... | ... | @@ -48,5 +55,15 @@ public class BaseTest { |
48 | 55 | LoginPage loginPage = PageFactory.initElements(driver, LoginPage.class); |
49 | 56 | loginPage.login(account, "essa123"); |
50 | 57 | } |
58 | + /** | |
59 | + * buyer初始化登录 | |
60 | + * @param account | |
61 | + */ | |
62 | + public void loginBuyerValid(String account,String password) { | |
63 | + IndexPage indexPage = PageFactory.initElements(driver, IndexPage.class); | |
64 | + indexPage.toLoginPage(); | |
65 | + BuyerLoginPage loginPage = PageFactory.initElements(driver, BuyerLoginPage.class); | |
66 | + loginPage.login(account, password); | |
67 | + } | |
51 | 68 | } |
52 | 69 | ... | ... |
src/test/java/com/essa/pageObject/HomePage.java
... | ... | @@ -11,9 +11,15 @@ import com.essa.pageObject.GoodsManage.GoodsBankPage; |
11 | 11 | import com.essa.pageObject.GoodsManage.GoodsRelesePage; |
12 | 12 | import com.essa.pageObject.GoodsManage.MarketGoodsRelesePage; |
13 | 13 | import com.essa.pageObject.buyPlaneManage.SkuCategoryManagerCongfigPage; |
14 | +import com.essa.pageObject.buyerManage.InvateCodePage; | |
15 | +import com.essa.pageObject.inquiryManage.ProductInquiryTask; | |
14 | 16 | import com.essa.pageObject.marketingManage.GroupControlPage; |
15 | 17 | import com.essa.pageObject.marketingManage.GroupSettingPage; |
16 | 18 | |
19 | +/** | |
20 | + * @author Administrator | |
21 | + *bpms后台首页 | |
22 | + */ | |
17 | 23 | public class HomePage extends BasePage{ |
18 | 24 | public HomePage(WebDriver driver) { |
19 | 25 | super(driver); |
... | ... | @@ -91,13 +97,43 @@ public class HomePage extends BasePage{ |
91 | 97 | @FindBy (xpath="//*[text()='团购控制']/..") |
92 | 98 | WebElement groupControl; |
93 | 99 | |
100 | + //采购商管理 | |
101 | + @FindBy (xpath="//*[text()='采购商管理']") | |
102 | + WebElement buyerManage; | |
103 | + | |
104 | + //生成邀请码 | |
105 | + @FindBy (xpath="//*[text()='生成邀请码']" ) | |
106 | + WebElement inviteCode; | |
107 | + | |
108 | + //询价管理 | |
109 | + @FindBy (xpath ="//span[text()='询价管理']") | |
110 | + WebElement inquiryManage; | |
111 | + | |
112 | + //成品询价任务列表 | |
113 | + @FindBy (xpath = "//*[text()='成品询价任务列表']") | |
114 | + WebElement productInquiryTask; | |
115 | + | |
116 | + //产品开发 | |
117 | + @FindBy (xpath ="//*[text()='产品开发']") | |
118 | + WebElement productDev; | |
119 | + | |
120 | + //项目立项书新增 | |
121 | + @FindBy (xpath ="//*[text()='项目立项书新增']") | |
122 | + WebElement addProject; | |
123 | + | |
124 | + //项目立项书查询 | |
125 | + @FindBy (xpath ="//*[text()='项目立项书查询']") | |
126 | + WebElement quiryProject; | |
127 | + | |
128 | + | |
129 | + | |
94 | 130 | /* |
95 | 131 | * 方法 |
96 | 132 | */ |
97 | 133 | |
98 | 134 | /** |
99 | 135 | * 进入运营跟进管理页面 |
100 | - * @return | |
136 | + * @return SupplierOperationsTrackPage | |
101 | 137 | */ |
102 | 138 | public SupplierOperationsTrackPage goToSupplierOperationsTrack() { |
103 | 139 | |
... | ... | @@ -114,7 +150,7 @@ public class HomePage extends BasePage{ |
114 | 150 | |
115 | 151 | /** |
116 | 152 | * 进入原厂商品发布 |
117 | - * @return | |
153 | + * @return AddOriginalGoodsPage | |
118 | 154 | */ |
119 | 155 | public AddOriginalGoodsPage tOriginalGoodsPage() { |
120 | 156 | click(goodsManage); |
... | ... | @@ -125,7 +161,7 @@ public class HomePage extends BasePage{ |
125 | 161 | |
126 | 162 | /** |
127 | 163 | * 进入商品发布管理 |
128 | - * @return | |
164 | + * @return GoodsRelesePage | |
129 | 165 | */ |
130 | 166 | public GoodsRelesePage tGoodsRelesePage() { |
131 | 167 | click(goodsManage); |
... | ... | @@ -135,7 +171,7 @@ public class HomePage extends BasePage{ |
135 | 171 | |
136 | 172 | /** |
137 | 173 | * 进入原厂商品发布审核 |
138 | - * @return | |
174 | + * @return AuditOriginalGoodsPage | |
139 | 175 | */ |
140 | 176 | public AuditOriginalGoodsPage toAuditOriginalGoodsPage() { |
141 | 177 | mywait(logout); |
... | ... | @@ -146,7 +182,7 @@ public class HomePage extends BasePage{ |
146 | 182 | |
147 | 183 | /** |
148 | 184 | * 进入商品库 |
149 | - * @return | |
185 | + * @return GoodsBankPage | |
150 | 186 | */ |
151 | 187 | public GoodsBankPage toGoodsBankPage() { |
152 | 188 | click(goodsManage); |
... | ... | @@ -156,7 +192,7 @@ public class HomePage extends BasePage{ |
156 | 192 | |
157 | 193 | /** |
158 | 194 | * 进入市场商品发布 |
159 | - * @return | |
195 | + * @return MarketGoodsRelesePage | |
160 | 196 | */ |
161 | 197 | public MarketGoodsRelesePage toMarketGoodsRelesePage() { |
162 | 198 | click(goodsManage); |
... | ... | @@ -164,8 +200,8 @@ public class HomePage extends BasePage{ |
164 | 200 | return new MarketGoodsRelesePage(driver); |
165 | 201 | } |
166 | 202 | /** |
167 | - * 进入市场商品发布审核 | |
168 | - * @return | |
203 | + * 进入市场商品发布审核 | |
204 | + * @return AuditMarketGoodsPage | |
169 | 205 | */ |
170 | 206 | public AuditMarketGoodsPage toAuditMarketGoodsPage() { |
171 | 207 | click(goodsManage); |
... | ... | @@ -174,7 +210,7 @@ public class HomePage extends BasePage{ |
174 | 210 | } |
175 | 211 | /** |
176 | 212 | * 进入商品类目经理分配配置 |
177 | - * @return | |
213 | + * @return SkuCategoryManagerCongfigPage | |
178 | 214 | */ |
179 | 215 | public SkuCategoryManagerCongfigPage toSkuCategoryManagerCongfig() { |
180 | 216 | mywait(logout); |
... | ... | @@ -184,7 +220,7 @@ public class HomePage extends BasePage{ |
184 | 220 | } |
185 | 221 | /** |
186 | 222 | * 进入团购设置 |
187 | - * @return | |
223 | + * @return GroupSettingPage | |
188 | 224 | */ |
189 | 225 | public GroupSettingPage toGroupSettingPage() { |
190 | 226 | getHome(); |
... | ... | @@ -194,27 +230,50 @@ public class HomePage extends BasePage{ |
194 | 230 | } |
195 | 231 | /** |
196 | 232 | * 进入团购控制 |
197 | - * @return | |
233 | + * @return GroupControlPage | |
198 | 234 | */ |
199 | 235 | public GroupControlPage toGroupControlPage() { |
200 | 236 | // getHome(); |
237 | + jsExecutorClick(essaIcon); | |
201 | 238 | click(marketingManage); |
202 | 239 | click(groupControl); |
203 | 240 | return new GroupControlPage(driver); |
204 | 241 | } |
205 | - //判断是否存在退出按钮 | |
242 | + /** | |
243 | + * 进入生成邀请码 | |
244 | + * @return InvateCodePage | |
245 | + */ | |
246 | + public InvateCodePage toInvateCodePage() { | |
247 | + click(buyerManage); | |
248 | + moveHeightScroll("100"); | |
249 | + click(inviteCode); | |
250 | + return new InvateCodePage(driver); | |
251 | + } | |
252 | + /** | |
253 | + * 进入成品询价任务列表 | |
254 | + * @return ProductInquiryTask | |
255 | + */ | |
256 | + public ProductInquiryTask toProductInquiryTask() { | |
257 | + click(inquiryManage); | |
258 | + click(productInquiryTask); | |
259 | + return new ProductInquiryTask(driver); | |
260 | + } | |
261 | + | |
262 | + | |
263 | + /** | |
264 | + * 判断是否进入后台首页 | |
265 | + * @return boolean | |
266 | + */ | |
206 | 267 | public boolean isSucceed() { |
207 | - | |
208 | - //判断退出按钮是否存在,存在则表示成功进入首页 | |
209 | 268 | return isThisPage("退出", logout); |
210 | - | |
211 | 269 | } |
212 | 270 | |
213 | - //判断是否选中“供应商管理” | |
271 | + /** | |
272 | + * 判断是否选中“供应商管理” | |
273 | + * @return | |
274 | + */ | |
214 | 275 | public boolean isSearchSuppliers() { |
215 | - | |
216 | 276 | return isElementExist(searchSuppliers); |
217 | - | |
218 | 277 | } |
219 | 278 | |
220 | 279 | /** |
... | ... | @@ -225,10 +284,10 @@ public class HomePage extends BasePage{ |
225 | 284 | jsExecutorClick(essaIcon); |
226 | 285 | forceWait(1000); |
227 | 286 | } |
228 | - //退出登录 | |
287 | + /** | |
288 | + * 退出登录 | |
289 | + */ | |
229 | 290 | public void logout() { |
230 | - | |
231 | 291 | click(logout); |
232 | - | |
233 | 292 | } |
234 | 293 | } |
235 | 294 | \ No newline at end of file | ... | ... |
src/test/java/com/essa/pageObject/LoginPage.java
... | ... | @@ -6,11 +6,14 @@ import org.openqa.selenium.support.FindBy; |
6 | 6 | |
7 | 7 | import com.essa.framework.BasePage; |
8 | 8 | |
9 | +/** | |
10 | + * @author Administrator | |
11 | + *bpms登录页 | |
12 | + */ | |
9 | 13 | public class LoginPage extends BasePage{ |
10 | 14 | |
11 | 15 | public LoginPage(WebDriver driver) { |
12 | 16 | super(driver); |
13 | - // TODO Auto-generated constructor stub | |
14 | 17 | } |
15 | 18 | |
16 | 19 | /* |
... | ... | @@ -33,21 +36,19 @@ public class LoginPage extends BasePage{ |
33 | 36 | * 页面方法 |
34 | 37 | */ |
35 | 38 | |
36 | - /* | |
39 | + /** | |
37 | 40 | * 1.输入帐号 |
38 | 41 | * 2.输入密码 |
39 | 42 | * 3.点击登录 |
40 | 43 | * 4.将driver返回 |
44 | + * @param account | |
45 | + * @param password | |
46 | + * @return HomePage | |
41 | 47 | */ |
42 | 48 | public HomePage login(String account,String password) { |
43 | - | |
44 | 49 | sendKeys(login_account, account); |
45 | - | |
46 | 50 | sendKeys(login_password, password); |
47 | - | |
48 | 51 | click(login_submit); |
49 | - | |
50 | 52 | return new HomePage(driver); |
51 | - | |
52 | 53 | } |
53 | 54 | } | ... | ... |
src/test/java/com/essa/testSuite/TestLogin.java
target/classes/META-INF/maven/com.essatest/essa/pom.properties
target/classes/META-INF/maven/com.essatest/essa/pom.xml
... | ... | @@ -96,6 +96,17 @@ |
96 | 96 | <artifactId>commons-io</artifactId> |
97 | 97 | <version>1.3.2</version> |
98 | 98 | </dependency> |
99 | + | |
100 | + <dependency> | |
101 | + <groupId>mysql</groupId> | |
102 | + <artifactId>mysql-connector-java</artifactId> | |
103 | + <version>6.0.6</version> | |
104 | + </dependency> | |
105 | + <dependency> | |
106 | + <groupId>org.dbunit</groupId> | |
107 | + <artifactId>dbunit</artifactId> | |
108 | + <version>2.5.4</version> | |
109 | + </dependency> | |
99 | 110 | </dependencies> |
100 | 111 | |
101 | 112 | <build> |
... | ... | @@ -107,7 +118,7 @@ |
107 | 118 | <configuration> |
108 | 119 | <!--<testFailureIgnore>true</testFailureIgnore>--> |
109 | 120 | <suiteXmlFiles> |
110 | - <suiteXmlFile>suites/testng.xml</suiteXmlFile> | |
121 | + <suiteXmlFile>resources/suites/testng.xml</suiteXmlFile> | |
111 | 122 | <!--此处testng.xml即为要运行的testng.xml文件--> |
112 | 123 | </suiteXmlFiles> |
113 | 124 | </configuration> | ... | ... |
target/test-classes/com/essa/framework/BasePage.class
No preview for this file type
target/test-classes/com/essa/framework/BrowserEngine.class
No preview for this file type
target/test-classes/com/essa/framework/Logger.class
No preview for this file type
target/test-classes/com/essa/pageObject/BaseTest.class
No preview for this file type
target/test-classes/com/essa/pageObject/HomePage.class
No preview for this file type
target/test-classes/com/essa/pageObject/LoginPage.class
No preview for this file type
test-output/emailable-report.html
... | ... | @@ -8,13 +8,14 @@ |
8 | 8 | <body> |
9 | 9 | <table> |
10 | 10 | <tr><th>Test</th><th># Passed</th><th># Skipped</th><th># Failed</th><th>Time (ms)</th><th>Included Groups</th><th>Excluded Groups</th></tr> |
11 | -<tr><th colspan="7">新增市场商品</th></tr> | |
12 | -<tr><td><a href="#t0">addMarketGoods</a></td><td class="num">3</td><td class="num">0</td><td class="num">0</td><td class="num">71,013</td><td></td><td></td></tr> | |
11 | +<tr><th colspan="7">提交PO</th></tr> | |
12 | +<tr><td><a href="#t0">sendPO</a></td><td class="num">4</td><td class="num">0</td><td class="num">0</td><td class="num">99,569</td><td></td><td></td></tr> | |
13 | 13 | </table> |
14 | -<table id='summary'><thead><tr><th>Class</th><th>Method</th><th>Start</th><th>Time (ms)</th></tr></thead><tbody><tr><th colspan="4">新增市场商品</th></tr></tbody><tbody id="t0"><tr><th colspan="4">addMarketGoods — passed</th></tr><tr class="passedeven"><td rowspan="3">com.essa.testSuite.TestAddMarketGoods</td><td><a href="#m0">addMarketGoods</a></td><td rowspan="1">1535079590155</td><td rowspan="1">37865</td></tr><tr class="passedeven"><td><a href="#m1">auditMarketGoods</a></td><td rowspan="1">1535079628021</td><td rowspan="1">16655</td></tr><tr class="passedeven"><td><a href="#m2">toMarketGoodsRelesePage</a></td><td rowspan="1">1535079583878</td><td rowspan="1">6275</td></tr></tbody> | |
14 | +<table id='summary'><thead><tr><th>Class</th><th>Method</th><th>Start</th><th>Time (ms)</th></tr></thead><tbody><tr><th colspan="4">提交PO</th></tr></tbody><tbody id="t0"><tr><th colspan="4">sendPO — passed</th></tr><tr class="passedeven"><td rowspan="1">com.buyer.testSuite.TestAddToCart</td><td><a href="#m0">addSku</a></td><td rowspan="1">1535963243569</td><td rowspan="1">12739</td></tr><tr class="passedodd"><td rowspan="2">com.buyer.testSuite.TestSendPO</td><td><a href="#m1">conslidation</a></td><td rowspan="1">1535963290476</td><td rowspan="1">29695</td></tr><tr class="passedodd"><td><a href="#m2">sendPO</a></td><td rowspan="1">1535963320172</td><td rowspan="1">12651</td></tr><tr class="passedeven"><td rowspan="1">com.essa.testSuite.TestProductInquiry</td><td><a href="#m3">productInquiry</a></td><td rowspan="1">1535963265590</td><td rowspan="1">15888</td></tr></tbody> | |
15 | 15 | </table> |
16 | -<h2>addMarketGoods</h2><h3 id="m0">com.essa.testSuite.TestAddMarketGoods#addMarketGoods</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p> | |
17 | -<h3 id="m1">com.essa.testSuite.TestAddMarketGoods#auditMarketGoods</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p> | |
18 | -<h3 id="m2">com.essa.testSuite.TestAddMarketGoods#toMarketGoodsRelesePage</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p> | |
16 | +<h2>sendPO</h2><h3 id="m0">com.buyer.testSuite.TestAddToCart#addSku</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p> | |
17 | +<h3 id="m1">com.buyer.testSuite.TestSendPO#conslidation</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p> | |
18 | +<h3 id="m2">com.buyer.testSuite.TestSendPO#sendPO</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p> | |
19 | +<h3 id="m3">com.essa.testSuite.TestProductInquiry#productInquiry</h3><table class="result"><tr><th class="invisible"/></tr></table><p class="totop"><a href="#summary">back to summary</a></p> | |
19 | 20 | </body> |
20 | 21 | </html> | ... | ... |
test-output/index.html
... | ... | @@ -37,8 +37,8 @@ |
37 | 37 | <div class="suite"> |
38 | 38 | <div class="rounded-window"> |
39 | 39 | <div class="suite-header light-rounded-window-top"> |
40 | - <a href="#" panel-name="suite-新增市场商品" class="navigator-link"> | |
41 | - <span class="suite-name border-passed">新增市场商品</span> | |
40 | + <a href="#" panel-name="suite-提交PO" class="navigator-link"> | |
41 | + <span class="suite-name border-passed">提交PO</span> | |
42 | 42 | </a> <!-- navigator-link --> |
43 | 43 | </div> <!-- suite-header light-rounded-window-top --> |
44 | 44 | <div class="navigator-suite-content"> |
... | ... | @@ -48,37 +48,37 @@ |
48 | 48 | <div class="suite-section-content"> |
49 | 49 | <ul> |
50 | 50 | <li> |
51 | - <a href="#" panel-name="test-xml-新增市场商品" class="navigator-link "> | |
52 | - <span>D:\workspace\demo\suites\addMarketGoods.xml</span> | |
51 | + <a href="#" panel-name="test-xml-提交PO" class="navigator-link "> | |
52 | + <span>D:\workspace\demo\resources\suites\sendPO.xml</span> | |
53 | 53 | </a> <!-- navigator-link --> |
54 | 54 | </li> |
55 | 55 | <li> |
56 | - <a href="#" panel-name="testlist-新增市场商品" class="navigator-link "> | |
56 | + <a href="#" panel-name="testlist-提交PO" class="navigator-link "> | |
57 | 57 | <span class="test-stats">1 test</span> |
58 | 58 | </a> <!-- navigator-link --> |
59 | 59 | </li> |
60 | 60 | <li> |
61 | - <a href="#" panel-name="group-新增市场商品" class="navigator-link "> | |
61 | + <a href="#" panel-name="group-提交PO" class="navigator-link "> | |
62 | 62 | <span>0 groups</span> |
63 | 63 | </a> <!-- navigator-link --> |
64 | 64 | </li> |
65 | 65 | <li> |
66 | - <a href="#" panel-name="times-新增市场商品" class="navigator-link "> | |
66 | + <a href="#" panel-name="times-提交PO" class="navigator-link "> | |
67 | 67 | <span>Times</span> |
68 | 68 | </a> <!-- navigator-link --> |
69 | 69 | </li> |
70 | 70 | <li> |
71 | - <a href="#" panel-name="reporter-新增市场商品" class="navigator-link "> | |
71 | + <a href="#" panel-name="reporter-提交PO" class="navigator-link "> | |
72 | 72 | <span>Reporter output</span> |
73 | 73 | </a> <!-- navigator-link --> |
74 | 74 | </li> |
75 | 75 | <li> |
76 | - <a href="#" panel-name="ignored-methods-新增市场商品" class="navigator-link "> | |
76 | + <a href="#" panel-name="ignored-methods-提交PO" class="navigator-link "> | |
77 | 77 | <span>Ignored methods</span> |
78 | 78 | </a> <!-- navigator-link --> |
79 | 79 | </li> |
80 | 80 | <li> |
81 | - <a href="#" panel-name="chronological-新增市场商品" class="navigator-link "> | |
81 | + <a href="#" panel-name="chronological-提交PO" class="navigator-link "> | |
82 | 82 | <span>Chronological view</span> |
83 | 83 | </a> <!-- navigator-link --> |
84 | 84 | </li> |
... | ... | @@ -91,31 +91,36 @@ |
91 | 91 | <div class="suite-section-content"> |
92 | 92 | <ul> |
93 | 93 | <li> |
94 | - <span class="method-stats">3 methods, 3 passed</span> | |
94 | + <span class="method-stats">4 methods, 4 passed</span> | |
95 | 95 | </li> |
96 | 96 | <li> |
97 | 97 | <span class="method-list-title passed">Passed methods</span> |
98 | 98 | <span class="show-or-hide-methods passed"> |
99 | - <a href="#" panel-name="suite-新增市场商品" class="hide-methods passed suite-新增市场商品"> (hide)</a> <!-- hide-methods passed suite-新增市场商品 --> | |
100 | - <a href="#" panel-name="suite-新增市场商品" class="show-methods passed suite-新增市场商品"> (show)</a> <!-- show-methods passed suite-新增市场商品 --> | |
99 | + <a href="#" panel-name="suite-提交PO" class="hide-methods passed suite-提交PO"> (hide)</a> <!-- hide-methods passed suite-提交PO --> | |
100 | + <a href="#" panel-name="suite-提交PO" class="show-methods passed suite-提交PO"> (show)</a> <!-- show-methods passed suite-提交PO --> | |
101 | 101 | </span> |
102 | - <div class="method-list-content passed suite-新增市场商品"> | |
102 | + <div class="method-list-content passed suite-提交PO"> | |
103 | 103 | <span> |
104 | 104 | <img src="passed.png" width="3%"/> |
105 | - <a href="#" panel-name="suite-新增市场商品" title="com.essa.testSuite.TestAddMarketGoods" class="method navigator-link" hash-for-method="addMarketGoods">addMarketGoods</a> <!-- method navigator-link --> | |
105 | + <a href="#" panel-name="suite-提交PO" title="com.buyer.testSuite.TestAddToCart" class="method navigator-link" hash-for-method="addSku">addSku</a> <!-- method navigator-link --> | |
106 | 106 | </span> |
107 | 107 | <br/> |
108 | 108 | <span> |
109 | 109 | <img src="passed.png" width="3%"/> |
110 | - <a href="#" panel-name="suite-新增市场商品" title="com.essa.testSuite.TestAddMarketGoods" class="method navigator-link" hash-for-method="auditMarketGoods">auditMarketGoods</a> <!-- method navigator-link --> | |
110 | + <a href="#" panel-name="suite-提交PO" title="com.buyer.testSuite.TestSendPO" class="method navigator-link" hash-for-method="conslidation">conslidation</a> <!-- method navigator-link --> | |
111 | 111 | </span> |
112 | 112 | <br/> |
113 | 113 | <span> |
114 | 114 | <img src="passed.png" width="3%"/> |
115 | - <a href="#" panel-name="suite-新增市场商品" title="com.essa.testSuite.TestAddMarketGoods" class="method navigator-link" hash-for-method="toMarketGoodsRelesePage">toMarketGoodsRelesePage</a> <!-- method navigator-link --> | |
115 | + <a href="#" panel-name="suite-提交PO" title="com.essa.testSuite.TestProductInquiry" class="method navigator-link" hash-for-method="productInquiry">productInquiry</a> <!-- method navigator-link --> | |
116 | 116 | </span> |
117 | 117 | <br/> |
118 | - </div> <!-- method-list-content passed suite-新增市场商品 --> | |
118 | + <span> | |
119 | + <img src="passed.png" width="3%"/> | |
120 | + <a href="#" panel-name="suite-提交PO" title="com.buyer.testSuite.TestSendPO" class="method navigator-link" hash-for-method="sendPO">sendPO</a> <!-- method navigator-link --> | |
121 | + </span> | |
122 | + <br/> | |
123 | + </div> <!-- method-list-content passed suite-提交PO --> | |
119 | 124 | </li> |
120 | 125 | </ul> |
121 | 126 | </div> <!-- suite-section-content --> |
... | ... | @@ -126,157 +131,234 @@ |
126 | 131 | </div> <!-- navigator-root --> |
127 | 132 | <div class="wrapper"> |
128 | 133 | <div class="main-panel-root"> |
129 | - <div panel-name="suite-新增市场商品" class="panel 新增市场商品"> | |
130 | - <div class="suite-新增市场商品-class-passed"> | |
134 | + <div panel-name="suite-提交PO" class="panel 提交PO"> | |
135 | + <div class="suite-提交PO-class-passed"> | |
131 | 136 | <div class="main-panel-header rounded-window-top"> |
132 | 137 | <img src="passed.png"/> |
133 | - <span class="class-name">com.essa.testSuite.TestAddMarketGoods</span> | |
138 | + <span class="class-name">com.buyer.testSuite.TestSendPO</span> | |
134 | 139 | </div> <!-- main-panel-header rounded-window-top --> |
135 | 140 | <div class="main-panel-content rounded-window-bottom"> |
136 | 141 | <div class="method"> |
137 | 142 | <div class="method-content"> |
138 | - <a name="addMarketGoods"> | |
139 | - </a> <!-- addMarketGoods --> | |
140 | - <span class="method-name">addMarketGoods</span> | |
143 | + <a name="conslidation"> | |
144 | + </a> <!-- conslidation --> | |
145 | + <span class="method-name">conslidation</span> | |
146 | + <em> | |
147 | +(开始拼柜) </em> | |
141 | 148 | </div> <!-- method-content --> |
142 | 149 | </div> <!-- method --> |
143 | 150 | <div class="method"> |
144 | 151 | <div class="method-content"> |
145 | - <a name="auditMarketGoods"> | |
146 | - </a> <!-- auditMarketGoods --> | |
147 | - <span class="method-name">auditMarketGoods</span> | |
152 | + <a name="sendPO"> | |
153 | + </a> <!-- sendPO --> | |
154 | + <span class="method-name">sendPO</span> | |
155 | + <em> | |
156 | +(设置贴纸唛头,提交PO) </em> | |
148 | 157 | </div> <!-- method-content --> |
149 | 158 | </div> <!-- method --> |
159 | + </div> <!-- main-panel-content rounded-window-bottom --> | |
160 | + </div> <!-- suite-提交PO-class-passed --> | |
161 | + <div class="suite-提交PO-class-passed"> | |
162 | + <div class="main-panel-header rounded-window-top"> | |
163 | + <img src="passed.png"/> | |
164 | + <span class="class-name">com.essa.testSuite.TestProductInquiry</span> | |
165 | + </div> <!-- main-panel-header rounded-window-top --> | |
166 | + <div class="main-panel-content rounded-window-bottom"> | |
150 | 167 | <div class="method"> |
151 | 168 | <div class="method-content"> |
152 | - <a name="toMarketGoodsRelesePage"> | |
153 | - </a> <!-- toMarketGoodsRelesePage --> | |
154 | - <span class="method-name">toMarketGoodsRelesePage</span> | |
169 | + <a name="productInquiry"> | |
170 | + </a> <!-- productInquiry --> | |
171 | + <span class="method-name">productInquiry</span> | |
172 | + <em> | |
173 | +(成品询价流程) </em> | |
155 | 174 | </div> <!-- method-content --> |
156 | 175 | </div> <!-- method --> |
157 | 176 | </div> <!-- main-panel-content rounded-window-bottom --> |
158 | - </div> <!-- suite-新增市场商品-class-passed --> | |
159 | - </div> <!-- panel 新增市场商品 --> | |
160 | - <div panel-name="test-xml-新增市场商品" class="panel"> | |
177 | + </div> <!-- suite-提交PO-class-passed --> | |
178 | + <div class="suite-提交PO-class-passed"> | |
179 | + <div class="main-panel-header rounded-window-top"> | |
180 | + <img src="passed.png"/> | |
181 | + <span class="class-name">com.buyer.testSuite.TestAddToCart</span> | |
182 | + </div> <!-- main-panel-header rounded-window-top --> | |
183 | + <div class="main-panel-content rounded-window-bottom"> | |
184 | + <div class="method"> | |
185 | + <div class="method-content"> | |
186 | + <a name="addSku"> | |
187 | + </a> <!-- addSku --> | |
188 | + <span class="method-name">addSku</span> | |
189 | + <em> | |
190 | +(将sku加入购物车) </em> | |
191 | + </div> <!-- method-content --> | |
192 | + </div> <!-- method --> | |
193 | + </div> <!-- main-panel-content rounded-window-bottom --> | |
194 | + </div> <!-- suite-提交PO-class-passed --> | |
195 | + </div> <!-- panel 提交PO --> | |
196 | + <div panel-name="test-xml-提交PO" class="panel"> | |
161 | 197 | <div class="main-panel-header rounded-window-top"> |
162 | - <span class="header-content">D:\workspace\demo\suites\addMarketGoods.xml</span> | |
198 | + <span class="header-content">D:\workspace\demo\resources\suites\sendPO.xml</span> | |
163 | 199 | </div> <!-- main-panel-header rounded-window-top --> |
164 | 200 | <div class="main-panel-content rounded-window-bottom"> |
165 | 201 | <pre> |
166 | 202 | <?xml version="1.0" encoding="UTF-8"?> |
167 | 203 | <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> |
168 | -<suite name="新增市场商品" guice-stage="DEVELOPMENT"> | |
169 | - <test thread-count="5" name="addMarketGoods"> | |
204 | +<suite name="提交PO" guice-stage="DEVELOPMENT"> | |
205 | + <test thread-count="5" name="sendPO"> | |
170 | 206 | <classes> |
171 | - <class name="com.essa.testSuite.TestAddMarketGoods"> | |
207 | + <class name="com.buyer.testSuite.TestAddToCart"> | |
208 | + <methods> | |
209 | + <include name="addSku"/> | |
210 | + </methods> | |
211 | + </class> <!-- com.buyer.testSuite.TestAddToCart --> | |
212 | + <class name="com.essa.testSuite.TestProductInquiry"> | |
213 | + <methods> | |
214 | + <include name="productInquiry"/> | |
215 | + </methods> | |
216 | + </class> <!-- com.essa.testSuite.TestProductInquiry --> | |
217 | + <class name="com.buyer.testSuite.TestSendPO"> | |
172 | 218 | <methods> |
173 | - <include name="toMarketGoodsRelesePage"/> | |
174 | - <include name="addMarketGoods"/> | |
175 | - <include name="auditMarketGoods"/> | |
219 | + <include name="conslidation"/> | |
220 | + <include name="sendPO"/> | |
176 | 221 | </methods> |
177 | - </class> <!-- com.essa.testSuite.TestAddMarketGoods --> | |
222 | + </class> <!-- com.buyer.testSuite.TestSendPO --> | |
178 | 223 | </classes> |
179 | - </test> <!-- addMarketGoods --> | |
180 | -</suite> <!-- 新增市场商品 --> | |
224 | + </test> <!-- sendPO --> | |
225 | +</suite> <!-- 提交PO --> | |
181 | 226 | </pre> |
182 | 227 | </div> <!-- main-panel-content rounded-window-bottom --> |
183 | 228 | </div> <!-- panel --> |
184 | - <div panel-name="testlist-新增市场商品" class="panel"> | |
229 | + <div panel-name="testlist-提交PO" class="panel"> | |
185 | 230 | <div class="main-panel-header rounded-window-top"> |
186 | - <span class="header-content">Tests for 新增市场商品</span> | |
231 | + <span class="header-content">Tests for 提交PO</span> | |
187 | 232 | </div> <!-- main-panel-header rounded-window-top --> |
188 | 233 | <div class="main-panel-content rounded-window-bottom"> |
189 | 234 | <ul> |
190 | 235 | <li> |
191 | - <span class="test-name">addMarketGoods (1 class)</span> | |
236 | + <span class="test-name">sendPO (3 classes)</span> | |
192 | 237 | </li> |
193 | 238 | </ul> |
194 | 239 | </div> <!-- main-panel-content rounded-window-bottom --> |
195 | 240 | </div> <!-- panel --> |
196 | - <div panel-name="group-新增市场商品" class="panel"> | |
241 | + <div panel-name="group-提交PO" class="panel"> | |
197 | 242 | <div class="main-panel-header rounded-window-top"> |
198 | - <span class="header-content">Groups for 新增市场商品</span> | |
243 | + <span class="header-content">Groups for 提交PO</span> | |
199 | 244 | </div> <!-- main-panel-header rounded-window-top --> |
200 | 245 | <div class="main-panel-content rounded-window-bottom"> |
201 | 246 | </div> <!-- main-panel-content rounded-window-bottom --> |
202 | 247 | </div> <!-- panel --> |
203 | - <div panel-name="times-新增市场商品" class="panel"> | |
248 | + <div panel-name="times-提交PO" class="panel"> | |
204 | 249 | <div class="main-panel-header rounded-window-top"> |
205 | - <span class="header-content">Times for 新增市场商品</span> | |
250 | + <span class="header-content">Times for 提交PO</span> | |
206 | 251 | </div> <!-- main-panel-header rounded-window-top --> |
207 | 252 | <div class="main-panel-content rounded-window-bottom"> |
208 | 253 | <div class="times-div"> |
209 | 254 | <script type="text/javascript"> |
210 | -suiteTableInitFunctions.push('tableData_新增市场商品'); | |
211 | -function tableData_新增市场商品() { | |
255 | +suiteTableInitFunctions.push('tableData_提交PO'); | |
256 | +function tableData_提交PO() { | |
212 | 257 | var data = new google.visualization.DataTable(); |
213 | 258 | data.addColumn('number', 'Number'); |
214 | 259 | data.addColumn('string', 'Method'); |
215 | 260 | data.addColumn('string', 'Class'); |
216 | 261 | data.addColumn('number', 'Time (ms)'); |
217 | -data.addRows(3); | |
262 | +data.addRows(4); | |
218 | 263 | data.setCell(0, 0, 0) |
219 | -data.setCell(0, 1, 'addMarketGoods') | |
220 | -data.setCell(0, 2, 'com.essa.testSuite.TestAddMarketGoods') | |
221 | -data.setCell(0, 3, 37865); | |
264 | +data.setCell(0, 1, 'conslidation') | |
265 | +data.setCell(0, 2, 'com.buyer.testSuite.TestSendPO') | |
266 | +data.setCell(0, 3, 29695); | |
222 | 267 | data.setCell(1, 0, 1) |
223 | -data.setCell(1, 1, 'auditMarketGoods') | |
224 | -data.setCell(1, 2, 'com.essa.testSuite.TestAddMarketGoods') | |
225 | -data.setCell(1, 3, 16655); | |
268 | +data.setCell(1, 1, 'productInquiry') | |
269 | +data.setCell(1, 2, 'com.essa.testSuite.TestProductInquiry') | |
270 | +data.setCell(1, 3, 15888); | |
226 | 271 | data.setCell(2, 0, 2) |
227 | -data.setCell(2, 1, 'toMarketGoodsRelesePage') | |
228 | -data.setCell(2, 2, 'com.essa.testSuite.TestAddMarketGoods') | |
229 | -data.setCell(2, 3, 6275); | |
230 | -window.suiteTableData['新增市场商品']= { tableData: data, tableDiv: 'times-div-新增市场商品'} | |
272 | +data.setCell(2, 1, 'addSku') | |
273 | +data.setCell(2, 2, 'com.buyer.testSuite.TestAddToCart') | |
274 | +data.setCell(2, 3, 12739); | |
275 | +data.setCell(3, 0, 3) | |
276 | +data.setCell(3, 1, 'sendPO') | |
277 | +data.setCell(3, 2, 'com.buyer.testSuite.TestSendPO') | |
278 | +data.setCell(3, 3, 12651); | |
279 | +window.suiteTableData['提交PO']= { tableData: data, tableDiv: 'times-div-提交PO'} | |
231 | 280 | return data; |
232 | 281 | } |
233 | 282 | </script> |
234 | 283 | <span class="suite-total-time">Total running time: 1 minutes</span> |
235 | - <div id="times-div-新增市场商品"> | |
236 | - </div> <!-- times-div-新增市场商品 --> | |
284 | + <div id="times-div-提交PO"> | |
285 | + </div> <!-- times-div-提交PO --> | |
237 | 286 | </div> <!-- times-div --> |
238 | 287 | </div> <!-- main-panel-content rounded-window-bottom --> |
239 | 288 | </div> <!-- panel --> |
240 | - <div panel-name="reporter-新增市场商品" class="panel"> | |
289 | + <div panel-name="reporter-提交PO" class="panel"> | |
241 | 290 | <div class="main-panel-header rounded-window-top"> |
242 | - <span class="header-content">Reporter output for 新增市场商品</span> | |
291 | + <span class="header-content">Reporter output for 提交PO</span> | |
243 | 292 | </div> <!-- main-panel-header rounded-window-top --> |
244 | 293 | <div class="main-panel-content rounded-window-bottom"> |
245 | 294 | </div> <!-- main-panel-content rounded-window-bottom --> |
246 | 295 | </div> <!-- panel --> |
247 | - <div panel-name="ignored-methods-新增市场商品" class="panel"> | |
296 | + <div panel-name="ignored-methods-提交PO" class="panel"> | |
248 | 297 | <div class="main-panel-header rounded-window-top"> |
249 | - <span class="header-content">0 ignored methods</span> | |
298 | + <span class="header-content">1 ignored method</span> | |
250 | 299 | </div> <!-- main-panel-header rounded-window-top --> |
251 | 300 | <div class="main-panel-content rounded-window-bottom"> |
301 | + <div class="ignored-class-div"> | |
302 | + <span class="ignored-class-name">com.buyer.testSuite.TestAddToCart</span> | |
303 | + <div class="ignored-methods-div"> | |
304 | + <span class="ignored-method-name">keywordToCart</span> | |
305 | + <br/> | |
306 | + </div> <!-- ignored-methods-div --> | |
307 | + </div> <!-- ignored-class-div --> | |
252 | 308 | </div> <!-- main-panel-content rounded-window-bottom --> |
253 | 309 | </div> <!-- panel --> |
254 | - <div panel-name="chronological-新增市场商品" class="panel"> | |
310 | + <div panel-name="chronological-提交PO" class="panel"> | |
255 | 311 | <div class="main-panel-header rounded-window-top"> |
256 | 312 | <span class="header-content">Methods in chronological order</span> |
257 | 313 | </div> <!-- main-panel-header rounded-window-top --> |
258 | 314 | <div class="main-panel-content rounded-window-bottom"> |
259 | 315 | <div class="chronological-class"> |
260 | - <div class="chronological-class-name">com.essa.testSuite.TestAddMarketGoods</div> <!-- chronological-class-name --> | |
316 | + <div class="chronological-class-name">com.buyer.testSuite.TestAddToCart</div> <!-- chronological-class-name --> | |
261 | 317 | <div class="configuration-class before"> |
262 | 318 | <span class="method-name">setUp</span> |
263 | 319 | <span class="method-start">0 ms</span> |
264 | 320 | </div> <!-- configuration-class before --> |
265 | 321 | <div class="test-method"> |
266 | - <span class="method-name">toMarketGoodsRelesePage</span> | |
267 | - <span class="method-start">9401 ms</span> | |
322 | + <span class="method-name">addSku</span> | |
323 | + <span class="method-start">9513 ms</span> | |
268 | 324 | </div> <!-- test-method --> |
325 | + <div class="configuration-class after"> | |
326 | + <span class="method-name">tearDown</span> | |
327 | + <span class="method-start">22254 ms</span> | |
328 | + </div> <!-- configuration-class after --> | |
329 | + </div> <!-- chronological-class --> | |
330 | + <div class="chronological-class"> | |
331 | + <div class="chronological-class-name">com.essa.testSuite.TestProductInquiry</div> <!-- chronological-class-name --> | |
332 | + <div class="configuration-class before"> | |
333 | + <span class="method-name">setUp</span> | |
334 | + <span class="method-start">23031 ms</span> | |
335 | + </div> <!-- configuration-class before --> | |
336 | + <div class="test-method"> | |
337 | + <span class="method-name">productInquiry</span> | |
338 | + <span class="method-start">31534 ms</span> | |
339 | + </div> <!-- test-method --> | |
340 | + <div class="configuration-class after"> | |
341 | + <span class="method-name">tearDown</span> | |
342 | + <span class="method-start">47422 ms</span> | |
343 | + </div> <!-- configuration-class after --> | |
344 | + </div> <!-- chronological-class --> | |
345 | + <div class="chronological-class"> | |
346 | + <div class="chronological-class-name">com.buyer.testSuite.TestSendPO</div> <!-- chronological-class-name --> | |
347 | + <div class="configuration-class before"> | |
348 | + <span class="method-name">setUp</span> | |
349 | + <span class="method-start">48238 ms</span> | |
350 | + </div> <!-- configuration-class before --> | |
269 | 351 | <div class="test-method"> |
270 | - <span class="method-name">addMarketGoods</span> | |
271 | - <span class="method-start">15678 ms</span> | |
352 | + <span class="method-name">conslidation</span> | |
353 | + <span class="method-start">56420 ms</span> | |
272 | 354 | </div> <!-- test-method --> |
273 | 355 | <div class="test-method"> |
274 | - <span class="method-name">auditMarketGoods</span> | |
275 | - <span class="method-start">53544 ms</span> | |
356 | + <span class="method-name">sendPO</span> | |
357 | + <span class="method-start">86116 ms</span> | |
276 | 358 | </div> <!-- test-method --> |
277 | 359 | <div class="configuration-class after"> |
278 | 360 | <span class="method-name">tearDown</span> |
279 | - <span class="method-start">70199 ms</span> | |
361 | + <span class="method-start">98767 ms</span> | |
280 | 362 | </div> <!-- configuration-class after --> |
281 | 363 | </div> <!-- main-panel-content rounded-window-bottom --> |
282 | 364 | </div> <!-- panel --> | ... | ... |
test-output/old/index.html
... | ... | @@ -4,6 +4,6 @@ |
4 | 4 | </head><body> |
5 | 5 | <h2><p align='center'>Test results</p></h2> |
6 | 6 | <table border='1' width='100%' class='main-page'><tr><th>Suite</th><th>Passed</th><th>Failed</th><th>Skipped</th><th>testng.xml</th></tr> |
7 | -<tr align='center' class='invocation-passed'><td><em>Total</em></td><td><em>3</em></td><td><em>0</em></td><td><em>0</em></td><td> </td></tr> | |
8 | -<tr align='center' class='invocation-passed'><td><a href='新增市场商品/index.html'>新增市场商品</a></td> | |
9 | -<td>3</td><td>0</td><td>0</td><td><a href='新增市场商品/testng.xml.html'>Link</a></td></tr></table></body></html> | |
7 | +<tr align='center' class='invocation-passed'><td><em>Total</em></td><td><em>4</em></td><td><em>0</em></td><td><em>0</em></td><td> </td></tr> | |
8 | +<tr align='center' class='invocation-passed'><td><a href='提交PO/index.html'>提交PO</a></td> | |
9 | +<td>4</td><td>0</td><td>0</td><td><a href='提交PO/testng.xml.html'>Link</a></td></tr></table></body></html> | ... | ... |
test-output/testng-results.xml
1 | 1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | -<testng-results ignored="0" total="3" passed="3" failed="0" skipped="0"> | |
2 | +<testng-results ignored="1" total="5" passed="4" failed="0" skipped="0"> | |
3 | 3 | <reporter-output> |
4 | 4 | </reporter-output> |
5 | - <suite started-at="2018-08-24T02:59:34Z" name="新增市场商品" finished-at="2018-08-24T03:00:45Z" duration-ms="71013"> | |
5 | + <suite started-at="2018-09-03T08:27:14Z" name="提交PO" finished-at="2018-09-03T08:28:53Z" duration-ms="99569"> | |
6 | 6 | <groups> |
7 | 7 | </groups> |
8 | - <test started-at="2018-08-24T02:59:34Z" name="addMarketGoods" finished-at="2018-08-24T03:00:45Z" duration-ms="71013"> | |
9 | - <class name="com.essa.testSuite.TestAddMarketGoods"> | |
10 | - <test-method is-config="true" signature="setUp()[pri:0, instance:com.essa.testSuite.TestAddMarketGoods@656d9a07]" started-at="2018-08-24T02:59:34Z" name="setUp" finished-at="2018-08-24T02:59:43Z" duration-ms="9388" status="PASS"> | |
8 | + <test started-at="2018-09-03T08:27:14Z" name="sendPO" finished-at="2018-09-03T08:28:53Z" duration-ms="99569"> | |
9 | + <class name="com.essa.testSuite.TestProductInquiry"> | |
10 | + <test-method is-config="true" signature="setUp()[pri:0, instance:com.essa.testSuite.TestProductInquiry@14485d7]" started-at="2018-09-03T08:27:37Z" name="setUp" finished-at="2018-09-03T08:27:45Z" duration-ms="8503" status="PASS"> | |
11 | 11 | <reporter-output> |
12 | 12 | </reporter-output> |
13 | 13 | </test-method> <!-- setUp --> |
14 | - <test-method signature="toMarketGoodsRelesePage()[pri:0, instance:com.essa.testSuite.TestAddMarketGoods@656d9a07]" started-at="2018-08-24T02:59:43Z" name="toMarketGoodsRelesePage" finished-at="2018-08-24T02:59:50Z" duration-ms="6275" status="PASS"> | |
14 | + <test-method signature="productInquiry()[pri:0, instance:com.essa.testSuite.TestProductInquiry@14485d7]" started-at="2018-09-03T08:27:45Z" name="productInquiry" description="成品询价流程" finished-at="2018-09-03T08:28:01Z" duration-ms="15888" status="PASS"> | |
15 | 15 | <reporter-output> |
16 | 16 | </reporter-output> |
17 | - </test-method> <!-- toMarketGoodsRelesePage --> | |
18 | - <test-method signature="addMarketGoods()[pri:0, instance:com.essa.testSuite.TestAddMarketGoods@656d9a07]" started-at="2018-08-24T02:59:50Z" name="addMarketGoods" finished-at="2018-08-24T03:00:28Z" duration-ms="37865" status="PASS"> | |
17 | + </test-method> <!-- productInquiry --> | |
18 | + <test-method is-config="true" signature="tearDown()[pri:0, instance:com.essa.testSuite.TestProductInquiry@14485d7]" started-at="2018-09-03T08:28:01Z" name="tearDown" finished-at="2018-09-03T08:28:02Z" duration-ms="815" status="PASS"> | |
19 | 19 | <reporter-output> |
20 | 20 | </reporter-output> |
21 | - </test-method> <!-- addMarketGoods --> | |
22 | - <test-method signature="auditMarketGoods()[pri:0, instance:com.essa.testSuite.TestAddMarketGoods@656d9a07]" started-at="2018-08-24T03:00:28Z" name="auditMarketGoods" finished-at="2018-08-24T03:00:44Z" duration-ms="16655" status="PASS"> | |
21 | + </test-method> <!-- tearDown --> | |
22 | + </class> <!-- com.essa.testSuite.TestProductInquiry --> | |
23 | + <class name="com.buyer.testSuite.TestSendPO"> | |
24 | + <test-method is-config="true" signature="setUp()[pri:0, instance:com.buyer.testSuite.TestSendPO@47b60fe8]" started-at="2018-09-03T08:28:02Z" name="setUp" finished-at="2018-09-03T08:28:10Z" duration-ms="8182" status="PASS"> | |
25 | + <reporter-output> | |
26 | + </reporter-output> | |
27 | + </test-method> <!-- setUp --> | |
28 | + <test-method signature="conslidation()[pri:0, instance:com.buyer.testSuite.TestSendPO@47b60fe8]" started-at="2018-09-03T08:28:10Z" name="conslidation" description="开始拼柜" finished-at="2018-09-03T08:28:40Z" duration-ms="29695" status="PASS"> | |
29 | + <reporter-output> | |
30 | + </reporter-output> | |
31 | + </test-method> <!-- conslidation --> | |
32 | + <test-method signature="sendPO()[pri:0, instance:com.buyer.testSuite.TestSendPO@47b60fe8]" started-at="2018-09-03T08:28:40Z" name="sendPO" description="设置贴纸唛头,提交PO" finished-at="2018-09-03T08:28:52Z" duration-ms="12651" status="PASS"> | |
33 | + <reporter-output> | |
34 | + </reporter-output> | |
35 | + </test-method> <!-- sendPO --> | |
36 | + <test-method is-config="true" signature="tearDown()[pri:0, instance:com.buyer.testSuite.TestSendPO@47b60fe8]" started-at="2018-09-03T08:28:52Z" name="tearDown" finished-at="2018-09-03T08:28:53Z" duration-ms="795" status="PASS"> | |
37 | + <reporter-output> | |
38 | + </reporter-output> | |
39 | + </test-method> <!-- tearDown --> | |
40 | + </class> <!-- com.buyer.testSuite.TestSendPO --> | |
41 | + <class name="com.buyer.testSuite.TestAddToCart"> | |
42 | + <test-method is-config="true" signature="setUp()[pri:0, instance:com.buyer.testSuite.TestAddToCart@14b27f40]" started-at="2018-09-03T08:27:14Z" name="setUp" finished-at="2018-09-03T08:27:23Z" duration-ms="9503" status="PASS"> | |
43 | + <reporter-output> | |
44 | + </reporter-output> | |
45 | + </test-method> <!-- setUp --> | |
46 | + <test-method signature="addSku()[pri:0, instance:com.buyer.testSuite.TestAddToCart@14b27f40]" started-at="2018-09-03T08:27:23Z" name="addSku" description="将sku加入购物车" finished-at="2018-09-03T08:27:36Z" duration-ms="12739" status="PASS"> | |
23 | 47 | <reporter-output> |
24 | 48 | </reporter-output> |
25 | - </test-method> <!-- auditMarketGoods --> | |
26 | - <test-method is-config="true" signature="tearDown()[pri:0, instance:com.essa.testSuite.TestAddMarketGoods@656d9a07]" started-at="2018-08-24T03:00:44Z" name="tearDown" finished-at="2018-08-24T03:00:45Z" duration-ms="800" status="PASS"> | |
49 | + </test-method> <!-- addSku --> | |
50 | + <test-method is-config="true" signature="tearDown()[pri:0, instance:com.buyer.testSuite.TestAddToCart@14b27f40]" started-at="2018-09-03T08:27:36Z" name="tearDown" finished-at="2018-09-03T08:27:37Z" duration-ms="775" status="PASS"> | |
27 | 51 | <reporter-output> |
28 | 52 | </reporter-output> |
29 | 53 | </test-method> <!-- tearDown --> |
30 | - </class> <!-- com.essa.testSuite.TestAddMarketGoods --> | |
31 | - </test> <!-- addMarketGoods --> | |
32 | - </suite> <!-- 新增市场商品 --> | |
54 | + </class> <!-- com.buyer.testSuite.TestAddToCart --> | |
55 | + </test> <!-- sendPO --> | |
56 | + </suite> <!-- 提交PO --> | |
33 | 57 | </testng-results> | ... | ... |