Commit 9ecb0389 authored by qwj-github's avatar qwj-github

Merge branch 'master' into develop

parents e5293757 0cdf371b
......@@ -267,6 +267,13 @@
<artifactId>java-gitlab-api</artifactId>
<version>1.3.8</version>
</dependency>
<dependency>
<groupId>cn.com.duiba</groupId>
<artifactId>wolf</artifactId>
<version>2.2.25</version>
</dependency>
</dependencies>
<build>
......
package base;
import cn.com.duiba.wolf.utils.BlowfishUtils;
import org.apache.commons.dbcp2.BasicDataSource;
/**
* Created by mabo on 2018/12/27
*/
public class DataSource extends BasicDataSource {
private String key = "CNxgrtFG2nYQUfu";
private DuibaLog logger = DuibaLog.getLogger();
@Override
public void setPassword(String password) {
password = BlowfishUtils.decryptBlowfish(password,key);
super.setPassword(password);
}
@Override
public void setUsername(String username) {
username = BlowfishUtils.decryptBlowfish(username,key);
super.setUsername(username);
}
public static void main(String[] args) {
}
}
......@@ -24,7 +24,7 @@ import static com.codeborne.selenide.Selenide.$;
* Created by mabo on 2018/11/20
*/
public class DuibaBaseUi extends DuibaBase{
RemoteWebDriver driver= WebDriverFactory.createWebDriver(WebDriverType.MOBLIE, ProxyFactory.createProxy());
public RemoteWebDriver driver= WebDriverFactory.createWebDriver(WebDriverType.MOBLIE, ProxyFactory.createProxy());
public ITestResult result;
......@@ -120,7 +120,7 @@ public class DuibaBaseUi extends DuibaBase{
int i=5;
while(i>0){
try {
$(By.xpath(xpath)).click();
driver.findElementByXPath(xpath).click();
logger.info("ByXpath:"+xpath+" click");
return;
} catch (Exception e) {
......@@ -156,6 +156,22 @@ public class DuibaBaseUi extends DuibaBase{
}
}
public final void clickByClassNoWait(String name) throws Exception{
String xpath = "//*[@class='"+name+"']";
try {
driver.findElementByXPath(xpath).click();
logger.info("xpath:"+xpath+" click");
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 点击,通过属性,包含
......@@ -195,6 +211,57 @@ public class DuibaBaseUi extends DuibaBase{
driver.switchTo().window(handle);
}
/**
* 校验元素是否存在
*/
public boolean ElementExist(String xpath)
{
int i=5;
while (i>0){
try {
logger.info("校验,xpath:"+xpath);
driver.findElementByXPath(xpath);
return true;
} catch (Exception e) {
sleep(1);
i--;
}
}
return false;
}
/**
* 校验元素,通过text
* @param text
* @return
*/
public boolean isExistByText(String text){
String xpath = "//*[text()='"+text+"']";
return ElementExist(xpath);
}
/**
* 校验元素,通过class
* @param byclass
* @return
*/
public boolean isExistByClass(String byclass){
String xpath = "//*[@class='"+byclass+"']";
return ElementExist(xpath);
}
/**
* 刷新页面
*/
public void refresh(){
driver.navigate().refresh();
}
}
......@@ -36,7 +36,7 @@ public class MysqlConnPool {
int maxtotal;
public static BasicDataSource bds;
public static DataSource bds;
public DuibaLog log = DuibaLog.getLogger();
public void initDataSource(){
......@@ -48,7 +48,7 @@ public class MysqlConnPool {
// return;
// }
log.info("初始化数据库");
BasicDataSource bds = new BasicDataSource();
DataSource bds = new DataSource();
bds.setDriverClassName(DRIVER);
bds.setUrl(URL);
bds.setUsername(USERNAME);
......
......@@ -88,7 +88,7 @@ public class 自有活动出奖_DuibaTest extends DuibaTestBase {
j--;
}
Assert.assertEquals(flowWork,"SupplierExchange-started","数据库主订单流程节点校验失败");
Assert.assertEquals(String.valueOf(selectResult2.get("biz_params")),"胡梦新:18258853242:浙江:杭州市:西湖区:西溪街道:数娱大厦 ","数据库主订单biz_params校验失败");
Assert.assertEquals(String.valueOf(selectResult2.get("biz_params")),"胡梦新:18258853242:浙江:杭州市:西湖区:西溪街道:数娱大厦 ","数据库主订单biz_params校验失败");
Assert.assertEquals(String.valueOf(selectResult2.get("pay_status")),"none","数据库主订单pay_status校验失败");
Assert.assertEquals(String.valueOf(selectResult2.get("status")),"consume_success","数据库主订单status校验失败");
......
......@@ -170,7 +170,7 @@ public class 出奖订单测试_DuibaTest extends DuibaTestBase {
}
Assert.assertEquals(flowWork,"SupplierExchange-started","数据库主订单流程节点校验失败");
Assert.assertEquals(String.valueOf(selectResult2.get("item_id")),"27131","数据库主订单奖项id校验失败");
Assert.assertEquals(String.valueOf(selectResult2.get("biz_params")),"胡梦新:18258853242:浙江:杭州市:西湖区:西溪街道:数娱大厦 ","数据库主订单biz_params校验失败");
Assert.assertEquals(String.valueOf(selectResult2.get("biz_params")),"胡梦新:18258853242:浙江:杭州市:西湖区:西溪街道:数娱大厦 ","数据库主订单biz_params校验失败");
Assert.assertEquals(String.valueOf(selectResult2.get("pay_status")),"prereduce","数据库主订单pay_status校验失败");
Assert.assertEquals(String.valueOf(selectResult2.get("status")),"consume_success","数据库主订单status校验失败");
......
......@@ -70,7 +70,7 @@ public class 插件_抽奖扣积分测试_pluginTest extends DuibaTestBase {
}
@Test
//@Test
public void 插件_实物有奖项库存无兑换项库存测试() throws Exception{
Map<String,Object> user = jdbc.findSimpleResult("select * from dafuweng.user where id=?\n",uid);
......
......@@ -141,7 +141,7 @@ public class 插件出奖异常测试_pluginTest extends DuibaTestBase {
}
@Test (dataProvider = "providerMethod")
//@Test (dataProvider = "providerMethod")
public void 插件中奖限制测试(Map<String,String> data) throws Exception{
logger.info(data.get("casename"));
Map<String,String> map = new HashMap<>();
......
......@@ -173,7 +173,7 @@ public class SingleLottery_AccessTest extends DuibaTestBase {
}
Assert.assertEquals(flowWork,"SupplierExchange-started","数据库主订单流程节点校验失败");
Assert.assertEquals(String.valueOf(selectResult2.get("item_id")),"27131","数据库主订单奖项id校验失败");
Assert.assertEquals(String.valueOf(selectResult2.get("biz_params")),"胡梦新:18258853242:浙江:杭州市:西湖区:西溪街道:数娱大厦 ","数据库主订单biz_params校验失败");
Assert.assertEquals(String.valueOf(selectResult2.get("biz_params")),"胡梦新:18258853242:浙江:杭州市:西湖区:西溪街道:数娱大厦 ","数据库主订单biz_params校验失败");
Assert.assertEquals(String.valueOf(selectResult2.get("pay_status")),"prereduce","数据库主订单pay_status校验失败");
Assert.assertEquals(String.valueOf(selectResult2.get("status")),"consume_success","数据库主订单status校验失败");
......
......@@ -20,7 +20,7 @@ import static io.restassured.RestAssured.given;
/**
* Created by zhaoran on 2018/6/8.
*/
public class 预览单品抽奖_AccessTest extends DuibaTestBase {
public class 预览单品抽奖 extends DuibaTestBase {
@Autowired
SigninService signinService;
@Autowired
......
......@@ -213,7 +213,7 @@ public class ManagerService {
map.put("limitScope","forever");
map.put("freeCount","999");
map.put("freeScope","everyday");
map.put("endDate","2018-12-31 19:00");
map.put("endDate","2030-12-31 19:00");
map.put("banner","//yun.duiba.com.cn/upload/uGlwJ1472642112981.png");
map.put("bannerImgNew","//yun.duiba.com.cn/upload/newHdTool/hitEgg/banner_750x220.png");
map.put("smallImgNew","//yun.duiba.com.cn/upload/newHdTool/hitEgg/thumbnail_370x370.png");
......
package ui.cases.Activity;
import base.DuibaBaseUi;
import org.apache.commons.lang.StringUtils;
import org.testng.Assert;
import org.testng.annotations.Test;
import ui.service.Activity_egg_Page;
import ui.service.HomePage;
import ui.service.MoblieLogin;
import utils.StringUtil;
import static com.codeborne.selenide.Selenide.open;
/**
* Created by mabo on 2018/12/13
*/
public class 优惠券_Activity_ui extends DuibaBaseUi{
@Test
public void 正常流程() throws Exception {
// new MoblieLogin("5074",this);
// clickByClass("btn-close");
// screenshot();
// clickByTextEqual("ui自动化-活动工具-优惠券");
// screenshot();
// clickByClass("egg jump");
//
// clickByTextEqual("ui自动化-优惠券(活动)");
// sleep(2);
// clickByClass("J_gotoDetail logandgo");
//用户登陆,app 13193311111
new MoblieLogin("5074",this);
//手机端楼层
new HomePage("ui自动化-砸彩蛋-优惠券",this);
sleep(2);
new Activity_egg_Page("查看详情",this);
sleep(2);
Assert.assertTrue(isExistByText("ui自动化-优惠券(活动)"));
Assert.assertTrue(isExistByText("券码:"));
Assert.assertTrue(isExistByText("1111111"));
Assert.assertTrue(isExistByText("密码:"));
Assert.assertTrue(isExistByText("22222222"));
Assert.assertTrue(isExistByText("\n" +
" ui自动化-优惠券-使用说明"),"没有商品详情文本");
}
}
package ui.cases.Activity;
import base.DuibaBaseUi;
import org.testng.Assert;
import org.testng.annotations.Test;
import ui.service.Activity_egg_Page;
import ui.service.HomePage;
import ui.service.MoblieLogin;
import ui.service.TakePrizeNewPage;
import static com.codeborne.selenide.Selenide.open;
/**
* Created by mabo on 2018/12/14
*/
public class 实物_Activity_ui extends DuibaBaseUi{
@Test
public void 正常流程() throws Exception {
new MoblieLogin("5074",this);
//手机端楼层
new HomePage("ui自动化-砸彩蛋-实物",this);
new Activity_egg_Page("立即领奖",this);
new TakePrizeNewPage("马上领取",this);
sleep(2);
Assert.assertTrue(isExistByText("收货人:uitest  "),"出奖弹层校验失败");
Assert.assertTrue(isExistByText("13111133322"),"出奖弹层校验失败");//北京市北京市东城区东华门街道test
Assert.assertTrue(isExistByText("北京市北京市东城区东华门街道test "),"出奖弹层校验失败");
Assert.assertTrue(isExistByText("待发货"),"出奖弹层校验失败");
Assert.assertTrue(isExistByText("ui自动化-实物(活动)"),"出奖弹层校验失败");
Assert.assertTrue(isExistByText("订单来源:抽奖"),"出奖弹层校验失败");
}
}
package ui.cases.Activity;
import base.DuibaBaseUi;
import org.testng.Assert;
import org.testng.annotations.Test;
import ui.service.Activity_egg_Page;
import ui.service.HomePage;
import ui.service.MoblieLogin;
import static com.codeborne.selenide.Selenide.open;
/**
* Created by mabo on 2018/12/14
*/
public class 支付宝_Activity_ui extends DuibaBaseUi{
@Test
public void 正常流程() throws Exception {
new MoblieLogin("5074",this);
//手机端楼层
new HomePage("ui自动化-砸彩蛋-支付宝",this);
new Activity_egg_Page("立即领奖",this);
sleep(2);
clickByTextEqual("马上领取");
clickByTextEqual("确定");
sleep(5);
Assert.assertTrue(isExistByText("恭喜您兑换成功"),"出奖弹层校验失败");
Assert.assertTrue(isExistByText("充值帐号:"),"出奖弹层校验失败");
Assert.assertTrue(isExistByText("peeulk6392@sandbox.com"),"出奖弹层校验失败");
Assert.assertTrue(isExistByText("订单状态:"),"出奖弹层校验失败");
Assert.assertTrue(isExistByText("成功"),"出奖弹层校验失败");
Assert.assertTrue(isExistByText("订单编号:"),"出奖弹层校验失败");
}
}
package ui.cases.Activity;
import base.DuibaBaseUi;
import org.testng.Assert;
import org.testng.annotations.Test;
import ui.service.Activity_egg_Page;
import ui.service.HomePage;
import ui.service.MoblieLogin;
import static com.codeborne.selenide.Selenide.open;
/**
* Created by mabo on 2018/12/14
*/
public class 虚拟商品_Activity_ui extends DuibaBaseUi{
@Test
public void 正常流程() throws Exception {
new MoblieLogin("5074",this);
//手机端楼层
new HomePage("ui自动化-砸彩蛋-虚拟商品",this);
sleep(2);
new Activity_egg_Page("查看奖品",this);
Assert.assertTrue(isExistByText("ui自动化-活动工具-虚拟商品"),"出奖弹层校验失败");
Assert.assertTrue(isExistByText("已领奖"),"出奖弹层校验失败");
Assert.assertTrue(isExistByText("\n" +
"\t\t\tui自动化-活动工具-虚拟商品-详细说明\n" +
"\t\t"),"出奖弹层校验失败");
}
}
package ui.cases.Activity;
import base.DuibaBaseUi;
import org.testng.Assert;
import org.testng.annotations.Test;
import ui.service.Activity_egg_Page;
import ui.service.HomePage;
import ui.service.MoblieLogin;
import static com.codeborne.selenide.Selenide.open;
/**
* Created by mabo on 2018/12/14
*/
public class 谢谢参与_Activity_ui extends DuibaBaseUi{
@Test
public void 正常流程() throws Exception {
new MoblieLogin("5074",this);
//手机端楼层
new HomePage("ui自动化-活动工具-谢谢参与",this);
new Activity_egg_Page(null,this);
Assert.assertTrue(isExistByClass("noPrizes modal"));
}
}
......@@ -2,7 +2,11 @@ package ui.cases.Exchange;
import base.DuibaBaseUi;
import org.openqa.selenium.By;
import org.testng.Assert;
import org.testng.annotations.Test;
import ui.service.ExchangePage;
import ui.service.HomePage;
import ui.service.MoblieLogin;
import static com.codeborne.selenide.Selenide.$;
import static com.codeborne.selenide.Selenide.open;
......@@ -13,21 +17,21 @@ import static com.codeborne.selenide.Selenide.open;
public class 优惠券_ExchangeTest_ui extends DuibaBaseUi{
@Test
public void 优惠券兑换_正常流程() throws Exception {
open("http://dafuweng.duibatest.com.cn/user/index");
clickByTextEqual("5074");
switchWindow();
sleep(2);
clickByClass("btn-close");
screenshot();
clickByTextEqual("ui自动化-优惠券");
screenshot();
clickByTextEqual("马上兑换");
screenshot();
clickByTextEqual("确定");
screenshot();
//通过dafuweng登陆手机端
new MoblieLogin("5074",this);
//手机端楼层
new HomePage("ui自动化-优惠券",this);
//兑换页面
new ExchangePage("马上兑换",this);
sleep(5);
screenshot();
Assert.assertTrue(isExistByText("恭喜,兑换成功"));
Assert.assertTrue(isExistByText("ui自动化-优惠券"));
Assert.assertTrue(isExistByText("券码:"));
Assert.assertTrue(isExistByText("44444"));
Assert.assertTrue(isExistByText("密码:"));
Assert.assertTrue(isExistByText("5555555"));
}
}
package ui.cases.Exchange;
import base.DuibaBaseUi;
import org.testng.Assert;
import org.testng.annotations.Test;
import ui.service.ExchangePage;
import ui.service.HomePage;
import ui.service.MoblieLogin;
import static com.codeborne.selenide.Selenide.open;
......@@ -11,20 +15,39 @@ import static com.codeborne.selenide.Selenide.open;
public class 实物_ExchangeTest_ui extends DuibaBaseUi{
@Test
public void 实物兑换_正常流程() throws Exception {
open("http://dafuweng.duibatest.com.cn/user/index");
clickByTextEqual("5074");
switchWindow();
sleep(2);
clickByClass("btn-close");
screenshot();
clickByTextEqual("ui自动化-实物");
screenshot();
clickByTextEqual("马上兑换");
screenshot();
clickByTextEqual("确定");
screenshot();
// new MoblieLogin("5074",this);
// clickByClass("btn-close");
// screenshot();
// clickByTextEqual("ui自动化-实物");
// screenshot();
// clickByTextEqual("马上兑换");
// screenshot();
// clickByTextEqual("确定");
// screenshot();
// sleep(5);
// screenshot();
//通过dafuweng登陆手机端
new MoblieLogin("5074",this);
//手机端楼层
new HomePage("ui自动化-实物",this);
//兑换页面
new ExchangePage("马上兑换",this);
sleep(5);
screenshot();
Assert.assertTrue(isExistByText("待发货"));
Assert.assertTrue(isExistByText("收货人:uitest  "));
Assert.assertTrue(isExistByText("13111133322"));
Assert.assertTrue(isExistByText("北京市北京市东城区东华门街道test "));
Assert.assertTrue(isExistByText("ui自动化-实物"));
Assert.assertTrue(isExistByText("\n" +
" ui自动化-实物-待发货文案\n" +
" "));
}
}
package ui.cases.Exchange;
import base.DuibaBaseUi;
import org.testng.Assert;
import org.testng.annotations.Test;
import ui.service.ExchangePage;
import ui.service.HomePage;
import ui.service.MoblieLogin;
import static com.codeborne.selenide.Selenide.open;
......@@ -11,20 +15,22 @@ import static com.codeborne.selenide.Selenide.open;
public class 支付宝_ExchangeTest_ui extends DuibaBaseUi{
@Test
public void 支付宝_正常流程() throws Exception {
open("http://dafuweng.duibatest.com.cn/user/index");
clickByTextEqual("5074");
switchWindow();
sleep(2);
clickByClass("btn-close");
screenshot();
clickByTextEqual("支付宝充值");
screenshot();
clickByTextEqual("马上兑换");
screenshot();
clickByTextEqual("确定");
screenshot();
//通过dafuweng登陆手机端
new MoblieLogin("5074",this);
//手机端楼层
new HomePage("支付宝充值",this);
//兑换页面
new ExchangePage("马上兑换",this);
sleep(5);
screenshot();
Assert.assertTrue(isExistByText("请等待处理结果"));
Assert.assertTrue(isExistByText("peeulk6392@sandbox.com"));
Assert.assertTrue(isExistByText("待审核"));
Assert.assertTrue(isExistByText("订单编号:"));
}
}
package ui.cases.Plugin;
import base.DuibaBaseUi;
import org.testng.Assert;
import org.testng.annotations.Test;
import ui.service.MoblieLogin;
import static com.codeborne.selenide.Selenide.open;
/**
* Created by mabo on 2018/12/17
*/
public class 首页插件_Plugin_ui extends DuibaBaseUi{
@Test
public void 优惠券() throws Exception {
new MoblieLogin("5074",this);
sleep(3);
screenshot();
refresh();
sleep(2);
clickByClass("plugin-open");
clickByClass("plugin-img");
Assert.assertTrue(isExistByText("ui自动化-优惠券(活动)"));
Assert.assertTrue(isExistByText("券码:"));
Assert.assertTrue(isExistByText("1111111"));
Assert.assertTrue(isExistByText("密码:"));
Assert.assertTrue(isExistByText("22222222"));
Assert.assertTrue(isExistByText("商品详情"),"没有商品详情文本");
}
}
......@@ -66,6 +66,8 @@ public class WebDriverFactory {
Map<String, String> mobileEmulation = new HashMap<String, String>();
mobileEmulation.put("deviceName", "Nexus 5");
chromeOptions.setExperimentalOption("mobileEmulation", mobileEmulation);
chromeOptions.addArguments("--args --disable-web-security --user-data-dir");
Properties prop = System.getProperties();
String OS = prop.getProperty("os.name");
......
package ui.service;
import base.DuibaBaseUi;
/**
* Created by mabo on 2018/12/19
*/
public class Activity_egg_Page {
public Activity_egg_Page(String name, DuibaBaseUi father) throws Exception {
father.sleep(3);
father.clickByClass("egg");
if(name!=null)father.clickByTextEqual(name);
}
}
package ui.service;
import base.DuibaBaseUi;
import java.io.IOException;
/**
* Created by mabo on 2018/12/17
*/
public class ExchangePage {
public ExchangePage(String button,DuibaBaseUi father) throws Exception {
father.clickByTextEqual(button);
father.screenshot();
father.clickByTextEqual("确定");
father.screenshot();
}
}
package ui.service;
import base.DuibaBaseUi;
/**
* Created by mabo on 2018/12/17
*/
public class HomePage {
public HomePage(String click,DuibaBaseUi father) throws Exception {
father.clickByClass("plugin-close");
father.screenshot();
father.clickByTextEqual(click);
father.screenshot();
}
}
package ui.service;
import base.DuibaBaseUi;
import org.openqa.selenium.remote.RemoteWebDriver;
import static com.codeborne.selenide.Selenide.open;
import static java.lang.Thread.sleep;
/**
* Created by mabo on 2018/12/17
*/
public class MoblieLogin{
private String dafuwengUrl="http://dafuweng.duibatest.com.cn/user/index";
public MoblieLogin(String uid, DuibaBaseUi father) throws Exception {
open(dafuwengUrl);
father.clickByTextEqual(uid);
father.switchWindow();
sleep(2);
}
}
package ui.service;
import base.DuibaBase;
import base.DuibaBaseUi;
/**
* Created by mabo on 2018/12/29
*/
public class TakePrizeNewPage {
public TakePrizeNewPage(String name,DuibaBaseUi father) throws Exception {
father.sleep(2);
father.clickByTextEqual(name);
father.clickByTextEqual("确定");
}
}
......@@ -22,8 +22,8 @@ manager.host = mng.duibatest.com.cn
trade.host = activity.m.duibatest.com.cn
//\u6570\u636E\u5E93\u914D\u7F6E
db.name = duiba_test
db.password= svbP3KUw2PurAnBb2rbs3vohF
db.name = FjrtzzH
db.password= 2Fe36uDap8TMqtfzob3f1u8r2aK8qjdnwPP
db.url = jdbc:mysql://47.97.127.67:13001/?tinyInt1isBit=false
db.driver= com.mysql.cj.jdbc.Driver
db.maxtotal = 6
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment