Skip to content

Commit 07c6eea

Browse files
committed
JSON驱动测试
使用JSON文件驱动测试。
1 parent 1c2a865 commit 07c6eea

File tree

9 files changed

+381
-95
lines changed

9 files changed

+381
-95
lines changed

README.md

+4
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ config/client.xml的driver是选择启动哪一个浏览器的配置,use为tru
4040
6.4 淘宝:TaobaoMain;直接运行。<br />
4141

4242
# 更新<br />
43+
2021/02/08 更新 <br />
44+
1.实现使用JSON文件驱动测试。<br />
45+
2.验证各浏览器的适用性。<br />
46+
4347
2020/09/18 更新 <br />
4448
1.firefox升级到80.0.1,相应geckdrive升级到0.27.0 (可以到 https://github.com/mozilla/geckodriver 下载)。<br />
4549
2.chrome升级到85.0.4183.102(正式版本),相应的的driver版本不变。<br />

auto-ant-pro.iml

+1
Original file line numberDiff line numberDiff line change
@@ -63,5 +63,6 @@
6363
<orderEntry type="library" name="Maven: xml-apis:xml-apis:1.4.01" level="project" />
6464
<orderEntry type="library" name="Maven: com.codeborne:phantomjsdriver:1.4.3" level="project" />
6565
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:3.8.1" level="project" />
66+
<orderEntry type="library" name="Maven: com.alibaba:fastjson:1.2.53" level="project" />
6667
</component>
6768
</module>

pom.xml

+6
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
<log4j.version>1.7.25</log4j.version>
2323
<jsoup.version>1.11.2</jsoup.version>
2424
<dom.version>[2.1.3,)</dom.version>
25+
<fastjson.version>1.2.53</fastjson.version>
2526
</properties>
2627

2728
<dependencies>
@@ -64,6 +65,11 @@
6465
<version>${junit.version}</version>
6566
<scope>test</scope>
6667
</dependency>
68+
<dependency>
69+
<groupId>com.alibaba</groupId>
70+
<artifactId>fastjson</artifactId>
71+
<version>${fastjson.version}</version>
72+
</dependency>
6773
</dependencies>
6874

6975
<build>

src/main/java/com/ant/auto/aimetest/AimeAdTest.java

+57-88
Original file line numberDiff line numberDiff line change
@@ -1,126 +1,95 @@
11
package com.ant.auto.aimetest;
22

3-
import com.ant.auto.core.AssembleBrowserFactory;
4-
import com.ant.auto.util.KillProcess;
3+
import com.alibaba.fastjson.JSON;
4+
import com.alibaba.fastjson.JSONObject;
5+
import com.ant.auto.aimetest.vo.ChangeType;
6+
import com.ant.auto.aimetest.vo.TerminalResLocCntnVO;
7+
import com.ant.auto.core.WebDriverOperate;
8+
import com.ant.auto.core.WebElementType;
9+
import com.ant.auto.util.JsonUtil;
510
import com.ant.auto.util.S;
611
import org.openqa.selenium.By;
712
import org.openqa.selenium.Keys;
813
import org.openqa.selenium.WebDriver;
914
import org.openqa.selenium.WebElement;
1015
import org.openqa.selenium.interactions.Actions;
11-
import org.openqa.selenium.support.ui.Select;
16+
17+
import java.util.List;
18+
import java.util.Map;
1219

1320
/**
1421
* @author: yinzhang.lu
15-
* @date: 2020/11/11 10:15
22+
* @date: 2020/12/09 10:15
1623
* @description:
1724
*/
1825
public class AimeAdTest {
19-
private static final String TEST_URL = AimeMain.UAT_OUTSIDE_BASE_URL+"/create/advertising-test";
26+
27+
private static final String TEST_URL = AimeMain.BASE_URL+"/create/advertising-test";
2028
/**
2129
* 投放测试
2230
* @param driver
2331
* @return
2432
*/
2533
public static WebDriver test(WebDriver driver){
34+
Map<String, List<JSONObject>> testJsonMap = JsonUtil.getJsonByName("adtest");
35+
if(testJsonMap.isEmpty()){
36+
return driver;
37+
}
2638
driver.navigate().to(TEST_URL);
39+
for(List<JSONObject> list : testJsonMap.values()){
40+
for(JSONObject object : list){
41+
TerminalResLocCntnVO vo = JSON.parseObject(object.toJSONString(), TerminalResLocCntnVO.class);
42+
driver = pageTest(driver, vo);
43+
}
44+
}
45+
return driver;
46+
}
47+
48+
/**
49+
* 测试
50+
* @param driver
51+
* @return
52+
*/
53+
public static WebDriver pageTest(WebDriver driver, TerminalResLocCntnVO vo){
2754
S.s1();
2855
driver.findElement(By.cssSelector(".ant-page-header-heading")).click();
56+
S.s0();
57+
WebElement trmlTypeSelector = WebDriverOperate.getWebElement(driver, WebElementType.CssSelector.toString(),
58+
"#trmlTypeId .ant-select-selection__rendered");
59+
if(null == trmlTypeSelector){
60+
trmlTypeSelector = WebDriverOperate.getWebElement(driver, WebElementType.CssSelector.toString(),
61+
"#trmlTypeId .ant-select-selection__placeholder");
62+
}
63+
trmlTypeSelector.click();
64+
S.s0();
65+
driver.findElement(By.xpath("//li[contains(.,\'"+ ChangeType.getTrmlTypeName(vo.getTrmlTypeId())+"\')]")).click();
2966
S.s1();
30-
driver.findElement(By.cssSelector("#trmlTypeId .ant-select-selection__placeholder")).click();
31-
S.s1();
32-
driver.findElement(By.cssSelector(".ant-select-dropdown-menu-item-active")).click();
33-
S.s1();
34-
driver.findElement(By.cssSelector("#prdctTypeId .ant-select-selection__placeholder")).click();
35-
S.s1();
36-
driver.findElement(By.cssSelector(".ant-select-dropdown-menu-item-active")).click();
67+
68+
WebElement prdctTypeSelector = WebDriverOperate.getWebElement(driver, WebElementType.CssSelector.toString(),
69+
"#prdctTypeId .ant-select-selection__rendered");
70+
if(null == trmlTypeSelector){
71+
prdctTypeSelector = WebDriverOperate.getWebElement(driver, WebElementType.CssSelector.toString(),
72+
"#prdctTypeId .ant-select-selection__placeholder");
73+
}
74+
prdctTypeSelector.click();
75+
S.s0();
76+
driver.findElement(By.xpath("//li[contains(.,\'"+ChangeType.getPrdctTypeName(vo.getPrdctTypeId())+"\')]")).click();
3777
S.s1();
3878
driver.findElement(By.name("mid")).click();
3979
driver.findElement(By.name("mid")).sendKeys(Keys.CONTROL, "a");
4080
driver.findElement(By.name("mid")).sendKeys(Keys.DELETE);
41-
driver.findElement(By.name("mid")).sendKeys("8000031");
81+
driver.findElement(By.name("mid")).sendKeys(vo.getMid().toString());
4282
S.s1();
4383
driver.findElement(By.name("uid")).click();
4484
driver.findElement(By.name("uid")).sendKeys(Keys.CONTROL, "a");
4585
driver.findElement(By.name("uid")).sendKeys(Keys.DELETE);
46-
driver.findElement(By.name("uid")).sendKeys("1000140174");
47-
S.s1();
48-
driver.findElement(By.name("resLocId")).click();
49-
driver.findElement(By.name("resLocId")).sendKeys(Keys.CONTROL, "a");
50-
driver.findElement(By.name("resLocId")).sendKeys(Keys.DELETE);
51-
driver.findElement(By.name("resLocId")).sendKeys("80");
52-
S.s1();
53-
AdvertisingTestSubmit(driver);
54-
S.s1();
55-
driver.findElement(By.cssSelector("#trmlTypeId .ant-select-selection__rendered")).click();
56-
S.s1();
57-
driver.findElement(By.xpath("//div[4]/div/div/div/ul/li[2]")).click();
58-
S.s1();
59-
driver.findElement(By.cssSelector("#prdctTypeId .ant-select-selection__rendered")).click();
60-
S.s1();
61-
driver.findElement(By.cssSelector(".ant-select-dropdown-menu-item-active")).click();
62-
S.s1();
63-
driver.findElement(By.name("resLocId")).click();
64-
driver.findElement(By.name("resLocId")).sendKeys(Keys.CONTROL, "a");
65-
driver.findElement(By.name("resLocId")).sendKeys(Keys.DELETE);
66-
driver.findElement(By.name("resLocId")).sendKeys("90");
67-
S.s1();
68-
AdvertisingTestSubmit(driver);
69-
70-
S.s1();
71-
driver.findElement(By.cssSelector("#trmlTypeId .ant-select-selection__rendered")).click();
72-
S.s1();
73-
driver.findElement(By.xpath("//div[4]/div/div/div/ul/li[1]")).click();
74-
S.s1();
75-
driver.findElement(By.cssSelector("#prdctTypeId .ant-select-selection__rendered")).click();
76-
S.s1();
77-
driver.findElement(By.xpath("//div[5]/div/div/div/ul/li[2]")).click();
78-
S.s1();
79-
driver.findElement(By.name("resLocId")).click();
80-
driver.findElement(By.name("resLocId")).sendKeys(Keys.CONTROL, "a");
81-
driver.findElement(By.name("resLocId")).sendKeys(Keys.DELETE);
82-
driver.findElement(By.name("resLocId")).sendKeys("78");
83-
S.s1();
84-
AdvertisingTestSubmit(driver);
85-
86-
S.s1();
87-
driver.findElement(By.cssSelector("#trmlTypeId .ant-select-selection__rendered")).click();
88-
S.s1();
89-
driver.findElement(By.xpath("//div[4]/div/div/div/ul/li[2]")).click();
90-
S.s1();
91-
driver.findElement(By.cssSelector("#prdctTypeId .ant-select-selection__rendered")).click();
92-
S.s1();
93-
driver.findElement(By.xpath("//div[5]/div/div/div/ul/li[2]")).click();
94-
S.s1();
95-
driver.findElement(By.name("resLocId")).click();
96-
driver.findElement(By.name("resLocId")).sendKeys(Keys.CONTROL, "a");
97-
driver.findElement(By.name("resLocId")).sendKeys(Keys.DELETE);
98-
driver.findElement(By.name("resLocId")).sendKeys("85");
99-
S.s1();
100-
AdvertisingTestSubmit(driver);
101-
102-
S.s1();
103-
driver.findElement(By.cssSelector("#trmlTypeId .ant-select-selection__rendered")).click();
104-
S.s1();
105-
driver.findElement(By.xpath("//div[4]/div/div/div/ul/li[1]")).click();
106-
S.s1();
107-
driver.findElement(By.cssSelector("#prdctTypeId .ant-select-selection__rendered")).click();
108-
S.s1();
109-
driver.findElement(By.xpath("//div[5]/div/div/div/ul/li[1]")).click();
86+
driver.findElement(By.name("uid")).sendKeys(vo.getUid().toString());
11087
S.s1();
11188
driver.findElement(By.name("resLocId")).click();
11289
driver.findElement(By.name("resLocId")).sendKeys(Keys.CONTROL, "a");
11390
driver.findElement(By.name("resLocId")).sendKeys(Keys.DELETE);
114-
driver.findElement(By.name("resLocId")).sendKeys("95");
115-
S.s1();
116-
AdvertisingTestSubmit(driver);
117-
118-
S.s1();
119-
driver.findElement(By.name("resLocId")).click();
120-
driver.findElement(By.name("resLocId")).sendKeys(Keys.CONTROL, "a");
121-
driver.findElement(By.name("resLocId")).sendKeys(Keys.DELETE);
122-
driver.findElement(By.name("resLocId")).sendKeys("100");
123-
S.s1();
91+
driver.findElement(By.name("resLocId")).sendKeys(vo.getResLocId().toString());
92+
S.s0();
12493
AdvertisingTestSubmit(driver);
12594
return driver;
12695
}
@@ -130,7 +99,7 @@ public static WebDriver test(WebDriver driver){
13099
* @param driver
131100
* @return
132101
*/
133-
public static WebDriver AdvertisingTestSubmit(WebDriver driver){
102+
public static WebDriver AdvertisingTestSubmit(WebDriver driver) {
134103
driver.findElement(By.cssSelector(".ant-btn-primary")).click();
135104
S.s1();
136105
{

src/main/java/com/ant/auto/aimetest/AimeMain.java

+4-7
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,17 @@
55
import org.openqa.selenium.WebDriver;
66

77
public class AimeMain {
8-
9-
public static final String UAT_INSIDE_BASE_URL = "http://oms-front-end-inside.aam.test";
10-
public static final String UAT_OUTSIDE_BASE_URL = "http://oms-front-end-outside.aam.test";
118
public static final String DEV_BASE_URL = "http://10.0.2.137:8000";
129

1310
public static final String BASE_URL = DEV_BASE_URL;
1411

1512
public static void main(String[] args) {
1613
WebDriver driver = AssembleBrowserFactory.getBrower();
1714
AimeLogin.login(driver);// 登录
18-
AimeTableListTest.test(driver);//资源位列表
19-
AimeAdCreateTest.test(driver);//广告创意
20-
AimeAdvertisingTest.test(driver);//广告投放
15+
// AimeTableListTest.test(driver);//资源位列表
16+
// AimeAdCreateTest.test(driver);//广告创意
17+
// AimeAdvertisingTest.test(driver);//广告投放
2118
AimeAdTest.test(driver);//投放测试
22-
KillProcess.quit(driver);
19+
KillProcess.quit(driver);//杀死进程
2320
}
2421
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package com.ant.auto.aimetest.vo;
2+
3+
public class ChangeType {
4+
5+
public static String getTrmlTypeName(int id) {
6+
switch (id) {
7+
case 1:
8+
return "硬件终端";
9+
case 2:
10+
return "软件终端";
11+
}
12+
return "未知类型" + id;
13+
}
14+
15+
public static String getPrdctTypeName(int id) {
16+
switch (id) {
17+
case 2:
18+
return "minik";
19+
case 8:
20+
return "minishow";
21+
case 9:
22+
return "minikTV";
23+
case 1681:
24+
return "E舞+";
25+
case 3:
26+
return "咪哒app";
27+
case 4:
28+
return "公众号";
29+
}
30+
return "未知类型" + id;
31+
}
32+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
package com.ant.auto.aimetest.vo;
2+
3+
/**
4+
* @author: yinzhang.lu
5+
* @date: 2020/12/09 17:45
6+
* @description: 接口测试VO
7+
*/
8+
public class TerminalResLocCntnVO {
9+
private Integer trmlTypeId;
10+
11+
private Integer prdctTypeId;
12+
13+
private Integer mid;
14+
15+
private Long uid;
16+
17+
private Integer resLocId;
18+
19+
private Long timestamp;
20+
21+
public Integer getTrmlTypeId() {
22+
return trmlTypeId;
23+
}
24+
25+
public void setTrmlTypeId(Integer trmlTypeId) {
26+
this.trmlTypeId = trmlTypeId;
27+
}
28+
29+
public Integer getPrdctTypeId() {
30+
return prdctTypeId;
31+
}
32+
33+
public void setPrdctTypeId(Integer prdctTypeId) {
34+
this.prdctTypeId = prdctTypeId;
35+
}
36+
37+
public Integer getMid() {
38+
return mid;
39+
}
40+
41+
public void setMid(Integer mid) {
42+
this.mid = mid;
43+
}
44+
45+
public Long getUid() {
46+
return uid;
47+
}
48+
49+
public void setUid(Long uid) {
50+
this.uid = uid;
51+
}
52+
53+
public Integer getResLocId() {
54+
return resLocId;
55+
}
56+
57+
public void setResLocId(Integer resLocId) {
58+
this.resLocId = resLocId;
59+
}
60+
61+
public Long getTimestamp() {
62+
return timestamp;
63+
}
64+
65+
public void setTimestamp(Long timestamp) {
66+
this.timestamp = timestamp;
67+
}
68+
69+
@Override
70+
public String toString() {
71+
return "TerminalResLocCntnVO{" +
72+
"trmlTypeId=" + trmlTypeId +
73+
", prdctTypeId=" + prdctTypeId +
74+
", mid=" + mid +
75+
", uid=" + uid +
76+
", resLocId=" + resLocId +
77+
", timestamp=" + timestamp +
78+
'}';
79+
}
80+
}

0 commit comments

Comments
 (0)