Commit 6e759ddd authored by 龚小红's avatar 龚小红

Merge branch 'Feature/20220914-gxh' into 'master'

Feature/20220914 gxh

See merge request !28
parents ead22992 137f7f41
package com.oto.bean;
import lombok.Data;
@Data
public class invitationRecord {
public int recordId;
public String custName;
public boolean hasAssignFlag;
public String takeLookName;
public int inviteStatus;
public long interviewTime;
public String expertName;
}
package com.oto.bean;
import lombok.Data;
import java.util.List;
@Data
public class inviteDay {
public long calendarTime;
public List<invitationRecord> invitationInfo;
}
...@@ -14,18 +14,23 @@ public interface Authorization { ...@@ -14,18 +14,23 @@ public interface Authorization {
NetworkUtils network = NetworkUtils.getInstance(); NetworkUtils network = NetworkUtils.getInstance();
//oto销售工作台-销售 //oto销售工作台-销售
default void otosellerAuth() { default void otoSellerAuth() {
network.agentCookies.put(otoSellerCookieKey, otoSellerCookieValue); network.agentCookies.put("otoToken", otoSellerCookieValue);
} }
//oto销售工作台-总监 //oto销售工作台-总监
default void otoLeaderAuth() { default void otoLeaderAuth() {
network.agentCookies.put(otoLeaderCookieKey, otoLeaderCookieValue); network.agentCookies.put("otoToken", otoLeaderCookieValue);
} }
//oto销售工作台-管理员 //oto销售工作台-管理员
default void otoManagerAuth() { default void otoManagerAuth() {
network.agentCookies.put(otoManagerCookieKey, otoManagerCookieValue); network.agentCookies.put("otoToken", otoManagerCookieValue);
}
//oto销售工作台-带看人
default void otoTakerAuth() {
network.agentCookies.put("otoToken", "eTd1Af5HRGuUtkXq6ZtdzRwuMAr15wbxgFdLvd7yBH2P3tUPLtxddZ3PVh7hYvUNEmh2KUB");
} }
//久久保管理员-正常权限模式 //久久保管理员-正常权限模式
......
...@@ -27,14 +27,12 @@ public class Phone implements Authorization { ...@@ -27,14 +27,12 @@ public class Phone implements Authorization {
private String myselfCustomer_id; private String myselfCustomer_id;
private long productId = 19; private long productId = 19;
private int businessId; private int businessId;
private ArrayList ids;
private ArrayList<String> interviewIds; private ArrayList<String> interviewIds;
private Object scanCodeId; private Object scanCodeId;
@BeforeTest @BeforeTest
public void setUp(){ public void setUp(){
//登录销售工作台手机端 //登录销售工作台手机端
otoSellerTku(); otoSellerTku();
ids = new ArrayList<>();
interviewIds = new ArrayList<>(); interviewIds = new ArrayList<>();
} }
...@@ -120,8 +118,8 @@ public class Phone implements Authorization { ...@@ -120,8 +118,8 @@ public class Phone implements Authorization {
Assert.assertEquals(size,2,network.message(params,BasicConfig.PHONE_listCustInterConf,"见面场景列表数量错误",response.body().asString())); Assert.assertEquals(size,2,network.message(params,BasicConfig.PHONE_listCustInterConf,"见面场景列表数量错误",response.body().asString()));
} }
@Test(description = "创建1进2的面访",priority = 8) @Test(description = "创建社区参观的面访",priority = 8)
public void 创建12的面访(){ public void 创建社区参观的面访(){
interviewIds.add(saveInterview(cust_id,1)); interviewIds.add(saveInterview(cust_id,1));
interviewIds.add(saveInterview(myselfCustomer_id,1)); interviewIds.add(saveInterview(myselfCustomer_id,1));
interviewIds.add(saveInterview(introduceCustomer_id,1)); interviewIds.add(saveInterview(introduceCustomer_id,1));
...@@ -141,12 +139,12 @@ public class Phone implements Authorization { ...@@ -141,12 +139,12 @@ public class Phone implements Authorization {
@Test(description = "查询面访二维码",priority = 10) @Test(description = "查询面访二维码",priority = 10)
public void 查询面访二维码(){ public void 查询面访二维码(){
HashMap<String,Object> params = new HashMap<>(); HashMap<String,Object> params = new HashMap<>();
params.put("ids", interviewIds.get(0)+","+interviewIds.get(1)+","+interviewIds.get(2)); params.put("ids", interviewIds.get(0));
Response response = network.getResponse(params, BasicConfig.PHONE_interviewCode); Response response = network.getResponse(params, BasicConfig.PHONE_interviewCode);
int size = response.jsonPath().getInt("data.size()"); int size = response.jsonPath().getInt("data.size()");
int statusCount = response.jsonPath().getInt("data.findAll{it.interviewStatus == 1}.size()"); int statusCount = response.jsonPath().getInt("data.findAll{it.interviewStatus == 1}.size()");
Assert.assertEquals(size,3,network.message(params,BasicConfig.PHONE_interviewCode,"面访码数量错误",response.body().asString())); Assert.assertEquals(size,1,network.message(params,BasicConfig.PHONE_interviewCode,"面访码数量错误",response.body().asString()));
Assert.assertEquals(statusCount,3,network.message(params,BasicConfig.PHONE_interviewCode,"面访码数量错误",response.body().asString())); Assert.assertEquals(statusCount,1,network.message(params,BasicConfig.PHONE_interviewCode,"面访码数量错误",response.body().asString()));
} }
@Test(description = "上传地理位置",priority = 11) @Test(description = "上传地理位置",priority = 11)
...@@ -253,47 +251,35 @@ public class Phone implements Authorization { ...@@ -253,47 +251,35 @@ public class Phone implements Authorization {
Response response = network.getResponse(params, BasicConfig.PHONE_custExtDetail); Response response = network.getResponse(params, BasicConfig.PHONE_custExtDetail);
String interviewAddress = response.jsonPath().getString("data.interviewAddress"); String interviewAddress = response.jsonPath().getString("data.interviewAddress");
int commitPlanFlag = response.jsonPath().getInt("data.commitPlanFlag"); int commitPlanFlag = response.jsonPath().getInt("data.commitPlanFlag");
String giveProspectusFlag = response.jsonPath().getString("data.giveProspectusFlag");
Assert.assertNotNull(interviewAddress,network.message(params,BasicConfig.PHONE_custExtDetail,"面访地址为空",response.body().asString())); Assert.assertNotNull(interviewAddress,network.message(params,BasicConfig.PHONE_custExtDetail,"面访地址为空",response.body().asString()));
Assert.assertEquals(commitPlanFlag,0,network.message(params,BasicConfig.PHONE_custExtDetail,"是否提交计划书不为否",response.body().asString())); Assert.assertNull(giveProspectusFlag,network.message(params,BasicConfig.PHONE_custExtDetail,"是否可送计划书不为空",response.body().asString()));
Assert.assertEquals(commitPlanFlag,0,network.message(params,BasicConfig.PHONE_custExtDetail,"是否已送计划书不为否",response.body().asString()));
} }
@Test(description = "上传1进2面访详情并提示不流转2阶段",priority = 21) @Test(description = "上传第一次社区参观面访详情",priority = 21)
public void 上传12面访详情并提示不流转2阶段(){ public void 上传第一次社区参观面访详情(){
HashMap<String,Object> params = new HashMap<>(); HashMap<String,Object> params = new HashMap<>();
int[] unusualTypes = {1,2}; int[] unusualTypes = {1,2};
int[] pensionOthers={1,2}; int[] coreMakers={2,3};
ArrayList unusualProofs = new ArrayList(); ArrayList unusualProofs = new ArrayList();
unusualProofs.add("https://yun.dui88.com/kjy/image/20220506/ecf1d585e2e040ad97ec7996ce5bf2a3.jpg"); unusualProofs.add("https://yun.dui88.com/kjy/image/20220506/ecf1d585e2e040ad97ec7996ce5bf2a3.jpg");
unusualProofs.add("https://yun.dui88.com/kjy/image/20220505/62cc0df86ed7430ea67d5015ee3fcc2b.jpg"); unusualProofs.add("https://yun.dui88.com/kjy/image/20220505/62cc0df86ed7430ea67d5015ee3fcc2b.jpg");
params.put("id", interviewIds.get(0)); params.put("id", interviewIds.get(0));
params.put("interviewRemark", "第一次社区参观"); params.put("interviewRemark", "第一次社区参观");
params.put("custPhase", 1); params.put("coreMakers", coreMakers);
params.put("pensionSalary", null); params.put("birthdayTime", "1960-01-03");
params.put("pensionCost", null); params.put("custAddress", "杭州市文新地铁站");
params.put("pensionOther", null);
params.put("pensionOthers", null);
params.put("coreMaker", 2);
params.put("followWeight", 1); params.put("followWeight", 1);
params.put("custFlow", 1); params.put("giveProspectusFlag", 1);
params.put("commitPlanFlag", 1);
params.put("prospectusAmount", "计划书金额20W");
params.put("prospectusDesc", "计划书确认情况良好");
params.put("isNormal", false); params.put("isNormal", false);
params.put("insureReason", "未确认投保要素说明");
params.put("unusualTypes", unusualTypes); params.put("unusualTypes", unusualTypes);
params.put("unusualExplain", "手机号不一致且非面对面扫码的情况说明"); params.put("unusualExplain", "手机号不一致且非面对面扫码的情况说明");
params.put("unusualProofs", unusualProofs); params.put("unusualProofs", unusualProofs);
Response response = network.postResponse(params, BasicConfig.PHONE_interviewFeedback);
//校验2阶段不流转
Response response = network.postResponse(params, BasicConfig.PHONE_checkCustPhase);
boolean satisfyFlag = response.jsonPath().getBoolean("data.satisfyFlag");
String message = response.jsonPath().getString("data.message");
Assert.assertFalse(satisfyFlag,network.message(params,BasicConfig.PHONE_checkCustPhase,"上传面访失败",response.body().asString()));
Assert.assertEquals(message,"不满足阶段二客户条件,请点击“我再想想”完善客户面访信息,点击“确认”面访完成,客户阶段仍为阶段一",network.message(params,BasicConfig.PHONE_checkCustPhase,"上传面访失败",response.body().asString()));
//上传面访-修改为满足2阶段流转
params.put("pensionSalary", 1);
params.put("pensionCost", 1);
params.put("pensionOthers", pensionOthers);
params.put("pensionOther", "1,2");
response = network.postResponse(params, BasicConfig.PHONE_interviewFeedback);
boolean success = response.jsonPath().getBoolean("success"); boolean success = response.jsonPath().getBoolean("success");
Assert.assertTrue(success,network.message(params,BasicConfig.PHONE_interviewFeedback,"上传面访失败",response.body().asString())); Assert.assertTrue(success,network.message(params,BasicConfig.PHONE_interviewFeedback,"上传面访失败",response.body().asString()));
} }
...@@ -324,20 +310,21 @@ public class Phone implements Authorization { ...@@ -324,20 +310,21 @@ public class Phone implements Authorization {
Assert.assertEquals(size,1,network.message(params,BasicConfig.PHONE_interviewList,"面访列表为空",response.body().asString())); Assert.assertEquals(size,1,network.message(params,BasicConfig.PHONE_interviewList,"面访列表为空",response.body().asString()));
Assert.assertEquals(interviewStatus,6,network.message(params,BasicConfig.PHONE_interviewList,"面访状态错误",response.body().asString())); Assert.assertEquals(interviewStatus,6,network.message(params,BasicConfig.PHONE_interviewList,"面访状态错误",response.body().asString()));
//销售查看上传记录 //带看销售查看上传记录
otosellerAuth(); otoTakerAuth();
params.clear(); params.clear();
params.put("custId",IdMakeUtil.decodingId(cust_id)); params.put("custId",IdMakeUtil.decodingId(cust_id));
response =network.getResponse(params,BasicConfig.WORK_invire); response =network.getResponse(params,BasicConfig.WORK_invire);
boolean data = response.jsonPath().getBoolean("data"); boolean data = response.jsonPath().getBoolean("data");Assert.assertTrue(data ,network.message(params,BasicConfig.WORK_invire,"上传面访记录>=1",response.body().asString()));
Assert.assertTrue(data ,network.message(params,BasicConfig.WORK_invire,"上传面访记录>=1",response.body().asString()));
//查看约面日历
otoSellerAuth();
Work.getCalendarlist(Work.today,5,"自动化激活用户");
} }
@Test(description = "总监查看审批列表",priority = 24) @Test(description = "总监查看审批列表",priority = 24)
public void 总监查看审批列表(){ public void 总监查看审批列表(){
otoLeaderAuth(); otoLeaderAuth();
HashMap<String,Object> params = new HashMap<>(); HashMap<String,Object> params = new HashMap<>();
params.put("pageIndex",1); params.put("pageIndex",1);
params.put("pageSize",20); params.put("pageSize",20);
...@@ -348,7 +335,7 @@ public class Phone implements Authorization { ...@@ -348,7 +335,7 @@ public class Phone implements Authorization {
String sellerName = response.jsonPath().getString("data.list[0].sellerName"); String sellerName = response.jsonPath().getString("data.list[0].sellerName");
Assert.assertTrue(size>0,network.message(BasicConfig.WORK_interviewAuditList,"待审批列表为空",response.body().asString())); Assert.assertTrue(size>0,network.message(BasicConfig.WORK_interviewAuditList,"待审批列表为空",response.body().asString()));
Assert.assertEquals(unusualTypes,2,network.message(BasicConfig.WORK_interviewAuditList,"面访异常错误",response.body().asString())); Assert.assertEquals(unusualTypes,2,network.message(BasicConfig.WORK_interviewAuditList,"面访异常错误",response.body().asString()));
Assert.assertEquals(sellerName,"勿动-自动化测试销售",network.message(BasicConfig.WORK_interviewAuditList,"销售名称错误",response.body().asString())); Assert.assertEquals(sellerName,"勿动-自动化测试带看",network.message(BasicConfig.WORK_interviewAuditList,"销售名称错误",response.body().asString()));
businessId = response.jsonPath().getInt("data.list[0].businessId"); businessId = response.jsonPath().getInt("data.list[0].businessId");
} }
...@@ -363,7 +350,7 @@ public class Phone implements Authorization { ...@@ -363,7 +350,7 @@ public class Phone implements Authorization {
Assert.assertTrue(data,network.message(params,BasicConfig.WORK_interviewAuditReject,"驳回审批失败",response.body().asString())); Assert.assertTrue(data,network.message(params,BasicConfig.WORK_interviewAuditReject,"驳回审批失败",response.body().asString()));
} }
@Test(description = "查看我的面访状态更新为已失效",priority = 27) @Test(description = "查看我的面访状态更新为已失效",priority = 26)
public void 查看我的面访状态更新为已失效(){ public void 查看我的面访状态更新为已失效(){
HashMap<String,Object> params = new HashMap<>(); HashMap<String,Object> params = new HashMap<>();
params.put("custName", "自动化激活用户"); params.put("custName", "自动化激活用户");
...@@ -373,13 +360,13 @@ public class Phone implements Authorization { ...@@ -373,13 +360,13 @@ public class Phone implements Authorization {
Assert.assertEquals(interviewStatus,7,network.message(params,BasicConfig.PHONE_interviewList,"面访状态错误",response.body().asString())); Assert.assertEquals(interviewStatus,7,network.message(params,BasicConfig.PHONE_interviewList,"面访状态错误",response.body().asString()));
} }
@Test(description = "取消面访",priority = 28) @Test(description = "取消面访",priority = 27)
public void 取消面访(){ public void 取消面访(){
interviewCancle(interviewIds.get(1)); interviewCancle(interviewIds.get(1));
interviewCancle(interviewIds.get(2)); interviewCancle(interviewIds.get(2));
} }
@Test(description = "客户再次创建面访并扫码评价",priority = 29) @Test(description = "客户再次创建面访并扫码评价",priority = 28)
public void 客户再次创建面访并扫码评价() throws SQLException { public void 客户再次创建面访并扫码评价() throws SQLException {
otoSellerTku(); otoSellerTku();
interviewIds.clear(); interviewIds.clear();
...@@ -392,39 +379,44 @@ public class Phone implements Authorization { ...@@ -392,39 +379,44 @@ public class Phone implements Authorization {
scanCode(IdMakeUtil.encodingId((Long) scanCodeId),1047); scanCode(IdMakeUtil.encodingId((Long) scanCodeId),1047);
} }
@Test(description = "上传1进2面访详情并提示2阶段满足流转2阶段",priority = 30) @Test(description = "查询异常面访回填信息",priority = 29)
public void 上传12面访详情并提示流转2阶段(){ public void 查询异常面访回填信息(){
otoSellerTku();
HashMap<String,Object> params = new HashMap<>();
params.put("id", interviewIds.get(0));
Response response = network.getResponse(params, BasicConfig.PHONE_custExtDetail);
String custAddress = response.jsonPath().getString("data.custAddress");
int commitPlanFlag = response.jsonPath().getInt("data.commitPlanFlag");
int giveProspectusFlag = response.jsonPath().getInt("data.giveProspectusFlag");
Assert.assertNotNull(custAddress,network.message(params,BasicConfig.PHONE_custExtDetail,"客户地址为空",response.body().asString()));
Assert.assertEquals(giveProspectusFlag,1,network.message(params,BasicConfig.PHONE_custExtDetail,"是否可送计划书不为是",response.body().asString()));
Assert.assertEquals(commitPlanFlag,1,network.message(params,BasicConfig.PHONE_custExtDetail,"是否已送计划书不为是",response.body().asString()));
}
@Test(description = "上传社区参观面访详情",priority = 30)
public void 上传社区参观面访详情(){
otoSellerTku(); otoSellerTku();
HashMap<String,Object> params = new HashMap<>(); HashMap<String,Object> params = new HashMap<>();
int[] unusualTypes = {2}; int[] unusualTypes = {2};
int[] pensionOthers = {2}; int[] coreMakers = {2,4};
ArrayList unusualProofs = new ArrayList(); ArrayList unusualProofs = new ArrayList();
unusualProofs.add("https://yun.dui88.com/kjy/image/20220506/ecf1d585e2e040ad97ec7996ce5bf2a3.jpg"); unusualProofs.add("https://yun.dui88.com/kjy/image/20220506/ecf1d585e2e040ad97ec7996ce5bf2a3.jpg");
params.put("id", interviewIds.get(0)); params.put("id", interviewIds.get(0));
params.put("custPhase", 1); params.put("custPhase", 1);
params.put("interviewRemark", "1进2的社区参观"); params.put("interviewRemark", "第二次的社区参观");
params.put("coreMaker", 2); params.put("coreMakers", coreMakers);
params.put("birthdayTime", "1960-01-03");
params.put("custAddress", "杭州市文新地铁站");
params.put("followWeight", 1); params.put("followWeight", 1);
params.put("commitPlanFlag", 0); params.put("giveProspectusFlag", 1);
params.put("pensionSalary", 1); params.put("commitPlanFlag", 1);
params.put("pensionCost", 1); params.put("prospectusAmount", "计划书金额15W");
params.put("pensionOther", "2"); params.put("prospectusDesc", "计划书确认情况客户表示认同");
params.put("pensionOthers", pensionOthers);
params.put("custFlow", 1);
params.put("isNormal", false); params.put("isNormal", false);
params.put("unusualTypes", unusualTypes); params.put("unusualTypes", unusualTypes);
params.put("unusualExplain", "手机号不一致的情况说明"); params.put("unusualExplain", "手机号不一致的情况说明");
params.put("unusualProofs", unusualProofs); params.put("unusualProofs", unusualProofs);
Response response = network.postResponse(params, BasicConfig.PHONE_interviewFeedback);
//校验2阶段满足流转
Response response = network.postResponse(params, BasicConfig.PHONE_checkCustPhase);
boolean satisfyFlag = response.jsonPath().getBoolean("data.satisfyFlag");
String message = response.jsonPath().getString("data.message");
Assert.assertTrue(satisfyFlag,network.message(params,BasicConfig.PHONE_checkCustPhase,"上传面访失败",response.body().asString()));
Assert.assertEquals(message,"点击“确定”后该客户阶段变更为阶段二",network.message(params,BasicConfig.PHONE_checkCustPhase,"上传面访失败",response.body().asString()));
//上传面访
response = network.postResponse(params, BasicConfig.PHONE_interviewFeedback);
boolean success = response.jsonPath().getBoolean("success"); boolean success = response.jsonPath().getBoolean("success");
Assert.assertTrue(success,network.message(params,BasicConfig.PHONE_interviewFeedback,"上传面访失败",response.body().asString())); Assert.assertTrue(success,network.message(params,BasicConfig.PHONE_interviewFeedback,"上传面访失败",response.body().asString()));
} }
...@@ -460,24 +452,15 @@ public class Phone implements Authorization { ...@@ -460,24 +452,15 @@ public class Phone implements Authorization {
Assert.assertEquals(interviewStatus,4,network.message(params,BasicConfig.PHONE_interviewList,"面访状态错误",response.body().asString())); Assert.assertEquals(interviewStatus,4,network.message(params,BasicConfig.PHONE_interviewList,"面访状态错误",response.body().asString()));
} }
@Test(description = "客户流程组_表格总览",priority = 34)
public void 客户流程组_表格总览(){
otosellerAuth();
Response response = network.getResponse(BasicConfig.WORK_staticChart);
int ondStep = response.jsonPath().getInt("data[0].custNum");
int twoStep = response.jsonPath().getInt("data[1].custNum");
Assert.assertEquals(ondStep,Work.chart.get("ondStep")+1,network.message(BasicConfig.WORK_staticChart,"创建的转介绍和缘故客户的流程组非1",response.body().asString()));
Assert.assertEquals(twoStep,Work.chart.get("twoStep")+1,network.message(BasicConfig.WORK_staticChart,"客户社区参观后未提交计划书流程组状态未变为2",response.body().asString()));
}
@Test(description = "创建2进3/2进4面访",priority = 35) @Test(description = "创建送计划书面访",priority = 35)
public void 创建24面访(){ public void 创建送计划书面访(){
otoSellerTku(); otoSellerTku();
interviewIds.add(saveInterview(cust_id,2)); interviewIds.add(saveInterview(cust_id,2));
} }
@Test(description = "客户完成2进3/2进4面访并扫码",priority = 36) @Test(description = "客户完成送计划书面访并扫码",priority = 36)
public void 客户完成2阶段面访并扫码() throws SQLException { public void 客户完成送计划书面访并扫码() throws SQLException {
agentTku(); agentTku();
Map<String, Object> result = KjyLiveNormalDB.getInstance().findSimpleResult(UserSqlFactory.selectCodeIdByCustomerId, IdMakeUtil.decodingId(cust_id)); Map<String, Object> result = KjyLiveNormalDB.getInstance().findSimpleResult(UserSqlFactory.selectCodeIdByCustomerId, IdMakeUtil.decodingId(cust_id));
scanCodeId = result.get("scan_code_id"); scanCodeId = result.get("scan_code_id");
...@@ -533,72 +516,29 @@ public class Phone implements Authorization { ...@@ -533,72 +516,29 @@ public class Phone implements Authorization {
} }
@Test(description = "上传2进4面访并提示满足流转4阶段",priority = 41) @Test(description = "上传送计划书面访",priority = 41)
public void 上传24面访并提示满足流转4阶段(){ public void 上传送计划书面访() {
HashMap<String,Object> params = new HashMap<>(); HashMap<String, Object> params = new HashMap<>();
int[] coreMakers = {2,4};
params.put("id", interviewIds.get(0)); params.put("id", interviewIds.get(0));
params.put("interviewRemark", "2进4的社区参观"); params.put("interviewRemark", "送客户最终版计划书");
params.put("custPhase", 2); params.put("coreMakers", coreMakers);
params.put("coreMaker", 1); params.put("birthdayTime", "1960-01-03");
params.put("followWeight", 2); params.put("custAddress", "杭州市文新地铁站");
params.put("followWeight", 1);
params.put("giveProspectusFlag", 1);
params.put("commitPlanFlag", 1); params.put("commitPlanFlag", 1);
params.put("planPicUrl", "//yun.dui88.com/kjy/image/20220531/e2ba7ec684044d93864678ed80b20fb3.jpg"); params.put("prospectusAmount", "计划书金额15W");
params.put("commitCustStatus", 1); params.put("prospectusDesc", "计划书确认情况客户认可,准备筹集资金");
params.put("commitInsure", 1);
params.put("productId", IdMakeUtil.encodingId(productId));
params.put("insApplicant", 1);
params.put("insByApplicant", 1);
params.put("insPeriod", 3);
params.put("insMoney", 3);
params.put("isNormal", true); params.put("isNormal", true);
params.put("custFlow", 2); Response response = network.postResponse(params, BasicConfig.PHONE_interviewFeedback);
//校验4阶段满足流转
Response response = network.postResponse(params, BasicConfig.PHONE_checkCustPhase);
boolean satisfyFlag = response.jsonPath().getBoolean("data.satisfyFlag");
String message = response.jsonPath().getString("data.message");
Assert.assertTrue(satisfyFlag,network.message(params,BasicConfig.PHONE_checkCustPhase,"上传面访失败",response.body().asString()));
Assert.assertEquals(message,"点击“确定”后该客户阶段变更为阶段四",network.message(params,BasicConfig.PHONE_checkCustPhase,"上传面访失败",response.body().asString()));
//上传面访
response = network.postResponse(params, BasicConfig.PHONE_interviewFeedback);
boolean success = response.jsonPath().getBoolean("success"); boolean success = response.jsonPath().getBoolean("success");
Assert.assertTrue(success,network.message(params,BasicConfig.PHONE_interviewFeedback,"上传面访失败",response.body().asString())); Assert.assertTrue(success,network.message(params,BasicConfig.PHONE_interviewFeedback,"上传面访失败",response.body().asString()));
} }
@Test(description = "修改客户阶段信息",priority = 43)
public void 修改客户阶段信息(){
otosellerAuth();
HashMap<String,Object> params = new HashMap<>();
List<Integer> pensionOthers = Arrays.asList(2);
params.put("custId", IdMakeUtil.decodingId(cust_id));
params.put("custFlow",4);
params.put("pensionSalary", 1);
params.put("pensionCost", 1);
params.put("pensionOthers", pensionOthers);
params.put("commitPlanFlag", 1);
params.put("planPicUrl", "//yun.dui88.com/kjy/image/20220531/e2ba7ec684044d93864678ed80b20fb3.jpg");
params.put("commitCustStatus", 1);
params.put("commitInsure", 1);
params.put("productId",productId);
params.put("insApplicant", 1);
params.put("insByApplicant", 1);
params.put("insPeriod", 3);
params.put("insMoney", 3);
params.put("dealFlag", 1);
params.put("dealNumber", "ZDHCSBD000001");
params.put("insureReason", null);
params.put("isExistInterview", false);
System.out.println(params);
Response response = network.postResponse(params,BasicConfig.PHONE_updateCustPhase);
System.out.println(params);
boolean data = response.jsonPath().getBoolean("data");
Assert.assertTrue(data,network.message(params,BasicConfig.PHONE_updateCustPhase,"修改客户阶段信息失败",response.body().asString()));
}
@Test(description = "销售任务_销售完成任务",priority = 45) @Test(description = "销售任务_销售完成任务",priority = 45)
public void 销售任务_销售完成任务(){ public void 销售任务_销售完成任务(){
otoLeaderAuth();
//销售完成面访,跟进时间更新,联系新客户任务完成 //销售完成面访,跟进时间更新,联系新客户任务完成
HashMap<String,Object> params = new HashMap<>(); HashMap<String,Object> params = new HashMap<>();
params.put("taskConfId",4); //任务配置id,4:联系未跟进的客户,5:复拨未接通的客户,6:超过N天未跟进的客户 params.put("taskConfId",4); //任务配置id,4:联系未跟进的客户,5:复拨未接通的客户,6:超过N天未跟进的客户
...@@ -672,7 +612,7 @@ public class Phone implements Authorization { ...@@ -672,7 +612,7 @@ public class Phone implements Authorization {
@Test(description = "查询新客户详细信息",priority = 52) @Test(description = "查询新客户详细信息",priority = 52)
public void 查询新客户详细信息(){ public void 查询新客户详细信息(){
otosellerAuth(); otoTakerAuth();
HashMap<String,Object> params = new HashMap<>(); HashMap<String,Object> params = new HashMap<>();
params.put("custId", IdMakeUtil.decodingId(cust_id)); params.put("custId", IdMakeUtil.decodingId(cust_id));
Response response = network.getResponse(params,BasicConfig.WORK_detail); Response response = network.getResponse(params,BasicConfig.WORK_detail);
......
package com.oto.cases.otoseller; package com.oto.cases.otoseller;
import com.oto.bean.invitationRecord;
import com.oto.bean.inviteDay;
import com.oto.cases.admin.Authorization; import com.oto.cases.admin.Authorization;
import com.oto.config.BasicConfig; import com.oto.config.BasicConfig;
import com.oto.utils.IdMakeUtil; import com.oto.utils.IdMakeUtil;
import com.oto.utils.JsonUtil;
import com.oto.utils.NetworkUtils; import com.oto.utils.NetworkUtils;
import io.restassured.response.Response; import io.restassured.response.Response;
import org.testng.Assert; import org.testng.Assert;
...@@ -10,10 +13,12 @@ import org.testng.annotations.BeforeTest; ...@@ -10,10 +13,12 @@ import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import static com.oto.config.BasicConfig.*; import static com.oto.config.BasicConfig.*;
import static com.oto.utils.BaseUtils.*; import static com.oto.utils.BaseUtils.*;
import static com.oto.utils.BaseUtils.otoManagerLogin;
import static com.oto.utils.ThreadSleepUtils.sleep; import static com.oto.utils.ThreadSleepUtils.sleep;
public class Work implements Authorization { public class Work implements Authorization {
...@@ -23,21 +28,25 @@ public class Work implements Authorization { ...@@ -23,21 +28,25 @@ public class Work implements Authorization {
public static String phone = "15136361301"; //客户手机号 public static String phone = "15136361301"; //客户手机号
public int followTimes; //跟进次数 public int followTimes; //跟进次数
public static Map<String,Integer> header; public static Map<String,Integer> header;
public static Map<String,Integer> chart;
public Map<String,Double> coefficient; public Map<String,Double> coefficient;
public static long sceneId; public static long sceneId;
public String inviteUrl;//邀请函链接 public String inviteUrl;//邀请函链接
public int taskId; //任务ID public int taskId; //任务ID
public static long now; //当前时间戳
public static long today; //当前日期0点时间戳
public double takerCoefficient;
public static invitationRecord recordItem;
@BeforeTest @BeforeTest
public void setUp(){ public void setUp(){
header = new HashMap<>(); header = new HashMap<>();
chart = new HashMap<>();
coefficient = new HashMap<>(); coefficient = new HashMap<>();
otoSellerLogin(); otoSellerLogin();
otoLeaderLogin(); otoLeaderLogin();
otoManagerLogin(); otoManagerLogin();
ssoLogin(); ssoLogin();
now = System.currentTimeMillis();
today = now-(now + 8*3600 * 1000) % (60*60*24*1000);
} }
@Test(description = "公域引流_创建标签",priority = 1) @Test(description = "公域引流_创建标签",priority = 1)
...@@ -162,7 +171,7 @@ public class Work implements Authorization { ...@@ -162,7 +171,7 @@ public class Work implements Authorization {
@Test(description = "工作台_销售信息",priority = 7) @Test(description = "工作台_销售信息",priority = 7)
public void 客户分类_销售信息(){ public void 客户分类_销售信息(){
otosellerAuth(); otoSellerAuth();
Response response = network.getResponse(BasicConfig.WORK_userInfo); Response response = network.getResponse(BasicConfig.WORK_userInfo);
String sellerName = response.jsonPath().getString("data.sellerName"); String sellerName = response.jsonPath().getString("data.sellerName");
Assert.assertEquals(sellerName,"勿动-自动化测试销售",network.message(BasicConfig.WORK_userInfo,"销售姓名错误",response.body().asString())); Assert.assertEquals(sellerName,"勿动-自动化测试销售",network.message(BasicConfig.WORK_userInfo,"销售姓名错误",response.body().asString()));
...@@ -179,35 +188,20 @@ public class Work implements Authorization { ...@@ -179,35 +188,20 @@ public class Work implements Authorization {
Assert.assertEquals(notifyType,2,network.message(BasicConfig.WORK_notifyList,"通知栏类型错误",response.body().asString())); Assert.assertEquals(notifyType,2,network.message(BasicConfig.WORK_notifyList,"通知栏类型错误",response.body().asString()));
} }
@Test(description = "客户状态分类_数量总览",priority = 9) @Test(description = "工作台_菜单权限列表",priority = 9)
public void 工作台_菜单权限列表(){
Response response = network.getResponse(BasicConfig.WORK_menu_list);
int size = response.jsonPath().getInt("data.menuList.size()");
Assert.assertEquals(size,4,network.message(BasicConfig.WORK_notifyList,"菜单列表数量错误",response.body().asString()));
}
@Test(description = "客户状态分类_数量总览",priority = 10)
public void 客户状态分类_数量总览(){ public void 客户状态分类_数量总览(){
Response response = network.getResponse(BasicConfig.WORK_staticHeader); Response response = network.getResponse(BasicConfig.WORK_staticHeader);
Object data = response.jsonPath().getJsonObject("data"); Object data = response.jsonPath().getJsonObject("data");
Assert.assertNotNull(data,network.message(BasicConfig.WORK_staticHeader,"数量总览数据为空",response.body().asString())); Assert.assertNotNull(data,network.message(BasicConfig.WORK_staticHeader,"数量总览数据为空",response.body().asString()));
int starNum = response.jsonPath().getInt("data.starNum");
int totalNum = response.jsonPath().getInt("data.totalNum"); int totalNum = response.jsonPath().getInt("data.totalNum");
int unContactNum = response.jsonPath().getInt("data.unContactNum");
int unMeetNum = response.jsonPath().getInt("data.unMeetNum");
int unRedialNum = response.jsonPath().getInt("data.unRedialNum");
int willRecycleCustNum = response.jsonPath().getInt("data.willRecycleCustNum");
header.put("starNum",starNum);
header.put("totalNum",totalNum); header.put("totalNum",totalNum);
header.put("unContactNum",unContactNum);
header.put("unMeetNum",unMeetNum);
header.put("unRedialNum",unRedialNum);
header.put("willRecycleCustNum",willRecycleCustNum);
}
@Test(description = "客户流程组_表格总览",priority = 10)
public void 客户流程组_表格总览(){
Response response = network.getResponse(BasicConfig.WORK_staticChart);
Object data = response.jsonPath().getJsonObject("data");
Assert.assertNotNull(data,network.message(BasicConfig.WORK_staticChart,"流程组表格数量为空",response.body().asString()));
chart.put("ondStep",response.jsonPath().getInt("data[0].custNum"));
chart.put("twoStep",response.jsonPath().getInt("data[1].custNum"));
chart.put("threeStep",response.jsonPath().getInt("data[2].custNum"));
chart.put("fourStep",response.jsonPath().getInt("data[3].custNum"));
chart.put("fiveStep",response.jsonPath().getInt("data[4].custNum"));
} }
@Test(description = "工作台_标签列表",priority = 11) @Test(description = "工作台_标签列表",priority = 11)
...@@ -606,8 +600,6 @@ public class Work implements Authorization { ...@@ -606,8 +600,6 @@ public class Work implements Authorization {
Assert.assertTrue(answer>0,network.message(params,BasicConfig.MANAGER_oto_customerPhone,"问题详情为空",response.body().asString())); Assert.assertTrue(answer>0,network.message(params,BasicConfig.MANAGER_oto_customerPhone,"问题详情为空",response.body().asString()));
} }
@Test(description = "查看客户面访状态为尚未约到",priority = 48) @Test(description = "查看客户面访状态为尚未约到",priority = 48)
public void 查看客户面访状态为尚未约到(){ public void 查看客户面访状态为尚未约到(){
getHasFirstInvite(2); getHasFirstInvite(2);
...@@ -624,15 +616,16 @@ public class Work implements Authorization { ...@@ -624,15 +616,16 @@ public class Work implements Authorization {
@Test(description = "修改客户面访承诺时间为1天后",priority = 50) @Test(description = "修改客户面访承诺时间为1天后",priority = 50)
public void 修改客户面访承诺时间为1天后(){ public void 修改客户面访承诺时间为1天后(){
updateInvite(1,System.currentTimeMillis()+86400000); updateInvite(1,now+86400000);
getHasFirstInvite(1); getHasFirstInvite(1);
getCallCustInfo(1); getCallCustInfo(1);
} }
@Test(description = "查看确认准客户面访列表",priority = 51) @Test(description = "查看准客户面访任务和约面日历为未确认",priority = 51)
public void 查看确认准客户面访列表(){ public void 查看准客户面访任务和约面日历为未确认(){
taskList(0,1); taskList(0,1);
getCalendarlist(today+86400000,1,"自动化测试用户");
} }
@Test(description = "修改客户行程状态为已确认",priority = 52) @Test(description = "修改客户行程状态为已确认",priority = 52)
...@@ -647,6 +640,7 @@ public class Work implements Authorization { ...@@ -647,6 +640,7 @@ public class Work implements Authorization {
taskList(1,2); taskList(1,2);
getHasFirstInvite(1); getHasFirstInvite(1);
getCallCustInfo(1); getCallCustInfo(1);
getCalendarlist(today+86400000,2,"自动化测试用户");
} }
@Test(description = "修改客户行程状态为未确认",priority = 53) @Test(description = "修改客户行程状态为未确认",priority = 53)
...@@ -661,42 +655,48 @@ public class Work implements Authorization { ...@@ -661,42 +655,48 @@ public class Work implements Authorization {
taskList(0,1); taskList(0,1);
getHasFirstInvite(1); getHasFirstInvite(1);
getCallCustInfo(1); getCallCustInfo(1);
getCalendarlist(today+86400000,1,"自动化测试用户");
} }
@Test(description = "修改客户具体时间客户状态不变",priority = 54) @Test(description = "修改客户具体时间客户状态不变",priority = 54)
public void 修改客户具体时间客户状态不变(){ public void 修改客户具体时间客户状态不变(){
updateInvite(1,System.currentTimeMillis()+86400000+3600000); updateInvite(1,now + 86400000+3600000);
taskList(0,1); taskList(0,1);
getHasFirstInvite(1); getHasFirstInvite(1);
getCallCustInfo(1); getCallCustInfo(1);
getCalendarlist(today+86400000,1,"自动化测试用户");
} }
@Test(description = "修改客户具体日期客户状态变为已改期",priority = 55) @Test(description = "修改客户具体日期客户状态变为已改期",priority = 55)
public void 修改客户具体日期客户状态变为已改期(){ public void 修改客户具体日期客户状态变为已改期(){
updateInvite(1,System.currentTimeMillis()+86400000*2); updateInvite(1,now + 86400000*2);
taskList(1,6); taskList(1,6);
getHasFirstInvite(1); getHasFirstInvite(1);
getCallCustInfo(1); getCallCustInfo(1);
getCalendarlist(today+86400000,3,"自动化测试用户");
getCalendarlist(today+86400000*2,1,"自动化测试用户");
} }
@Test(description = "修改客户未约到客户状态变为已鸽",priority = 56) @Test(description = "修改客户未约到客户状态变为已鸽",priority = 56)
public void 修改客户未约到客户状态变为已鸽(){ public void 修改客户未约到客户状态变为已鸽(){
updateInvite(0,System.currentTimeMillis()+3600000); updateInvite(0,now + 3600000);
taskList(1,3); taskList(1,3);
getHasFirstInvite(0); getHasFirstInvite(0);
getCallCustInfo(0); getCallCustInfo(0);;
getCalendarlist(today+86400000*2,3,"自动化测试用户");
} }
@Test(description = "修改客户已约到客户状态变为未确认",priority =58) @Test(description = "修改客户已约到客户状态时间今天后变为已确认",priority =58)
public void 修改客户已约到客户状态变为未确认(){ public void 修改客户已约到客户状态时间今天后变为已确认(){
updateInvite(1,System.currentTimeMillis()+3600000); updateInvite(1,now + 3600000);
taskList(0,1); taskList(0,2);
getHasFirstInvite(1); getHasFirstInvite(1);
getCallCustInfo(1); getCallCustInfo(1);
getCalendarlist(today,2,"自动化测试用户");
} }
@Test(description = "查询客户的面访上传记录<1",priority = 59) @Test(description = "查询客户的面访上传记录<1",priority = 59)
...@@ -744,7 +744,7 @@ public class Work implements Authorization { ...@@ -744,7 +744,7 @@ public class Work implements Authorization {
getHasFirstInvite(1); getHasFirstInvite(1);
taskList(0,1); taskList(0,2);
} }
@Test(description = "邀约组拨打电话回填面访信息正常",priority = 63) @Test(description = "邀约组拨打电话回填面访信息正常",priority = 63)
...@@ -843,8 +843,8 @@ public class Work implements Authorization { ...@@ -843,8 +843,8 @@ public class Work implements Authorization {
getHasFirstInvite(1); getHasFirstInvite(1);
} }
@Test(description = "查询认领客户评价清空",priority = 71) @Test(description = "查询认领客户评价清空",priority = 71)
public void 查询认领客户评价清空(){ public void 查询认领客户评价清空(){
HashMap<String,Object> params = new HashMap<>(); HashMap<String,Object> params = new HashMap<>();
params.put("custId", custId); params.put("custId", custId);
Response response = network.getResponse(params,BasicConfig.WORK_header); Response response = network.getResponse(params,BasicConfig.WORK_header);
...@@ -860,7 +860,7 @@ public class Work implements Authorization { ...@@ -860,7 +860,7 @@ public class Work implements Authorization {
params.put("pageSize", 10); params.put("pageSize", 10);
Response response = network.getResponse(params, BasicConfig.WORK_attendanceList); Response response = network.getResponse(params, BasicConfig.WORK_attendanceList);
int size = response.jsonPath().getInt("data.list.size()"); int size = response.jsonPath().getInt("data.list.size()");
Assert.assertEquals(size,1,network.message(params,BasicConfig.WORK_attendanceList,"总监名下销售列表为空",response.body().asString())); Assert.assertEquals(size,2,network.message(params,BasicConfig.WORK_attendanceList,"总监名下销售列表为空",response.body().asString()));
} }
@Test(description = "总监修改名下销售工作状态",priority = 73) @Test(description = "总监修改名下销售工作状态",priority = 73)
...@@ -997,7 +997,7 @@ public class Work implements Authorization { ...@@ -997,7 +997,7 @@ public class Work implements Authorization {
//新建日程 //新建日程
HashMap<String,Object> params = new HashMap<>(); HashMap<String,Object> params = new HashMap<>();
params.put("custId",custId); params.put("custId",custId);
params.put("notifyTime",System.currentTimeMillis()+3600000); params.put("notifyTime",now + 3600000);
params.put("type","phone"); params.put("type","phone");
Response scheduleRes =network.postResponse(params,BasicConfig.WORK_saveOrModifySchedule); Response scheduleRes =network.postResponse(params,BasicConfig.WORK_saveOrModifySchedule);
boolean success = scheduleRes.jsonPath().getBoolean("data"); boolean success = scheduleRes.jsonPath().getBoolean("data");
...@@ -1020,7 +1020,7 @@ public class Work implements Authorization { ...@@ -1020,7 +1020,7 @@ public class Work implements Authorization {
@Test(description = "普通销售不可查看审批管理",priority =85) @Test(description = "普通销售不可查看审批管理",priority =85)
public void 普通销售不可查看审批管理(){ public void 普通销售不可查看审批管理(){
otosellerAuth(); otoSellerAuth();
HashMap<String,Object> params = new HashMap<>(); HashMap<String,Object> params = new HashMap<>();
params.put("pageIndex",1); params.put("pageIndex",1);
params.put("pageSize",20); params.put("pageSize",20);
...@@ -1072,7 +1072,7 @@ public class Work implements Authorization { ...@@ -1072,7 +1072,7 @@ public class Work implements Authorization {
@Test(description = "客户总览_销售查看任务",priority = 88) @Test(description = "客户总览_销售查看任务",priority = 88)
public void 销售查看任务(){ public void 销售查看任务(){
otosellerAuth(); otoSellerAuth();
sleep(2000); sleep(2000);
Response response = network.getResponse(BasicConfig.WORK_statisticHeader); Response response = network.getResponse(BasicConfig.WORK_statisticHeader);
int finishCustNum = response.jsonPath().getInt("data[0].finishCustNum"); int finishCustNum = response.jsonPath().getInt("data[0].finishCustNum");
...@@ -1141,13 +1141,11 @@ public class Work implements Authorization { ...@@ -1141,13 +1141,11 @@ public class Work implements Authorization {
@Test(description = "修改见面场景",priority = 93) @Test(description = "修改见面场景",priority = 93)
public void 修改见面场景(){ public void 修改见面场景(){
int companyIds[] ={5}; int companyIds[] ={5};
int custFlows[] = {1,2,3,4,5};
HashMap<String,Object> params = new HashMap<>(); HashMap<String,Object> params = new HashMap<>();
params.put("id",sceneId); params.put("id",sceneId);
params.put("confUsable",1); params.put("confUsable",1);
params.put("companyIds",companyIds); params.put("companyIds",companyIds);
params.put("custFlows",custFlows);
params.put("sceneName","勿动-自动化面访场景"); params.put("sceneName","勿动-自动化面访场景");
params.put("sceneDesc","勿动,这是自动化测试专用的面访场景"); params.put("sceneDesc","勿动,这是自动化测试专用的面访场景");
Response response =network.postResponse(params,BasicConfig.PHONE_custConfSave); Response response =network.postResponse(params,BasicConfig.PHONE_custConfSave);
...@@ -1236,7 +1234,143 @@ public class Work implements Authorization { ...@@ -1236,7 +1234,143 @@ public class Work implements Authorization {
} }
@Test(description = "管理后台查询所有专家列表",priority = 98)
public void 管理后台查询所有专家列表(){
Response response =network.getResponse(BasicConfig.WORK_calendar_expertList);
int size = response.jsonPath().getInt("data.size()");
Assert.assertTrue(size>0 ,network.message(BasicConfig.WORK_calendar_expertList,"查看专家列表不为空",response.body().asString()));
}
@Test(description = "CRM查询场景专家列表",priority = 99)
public void CRM查询场景专家列表(){
otoSellerAuth();
HashMap<String,Object> params = new HashMap<>();
params.put("recordId",recordItem.recordId);
params.put("expertFlag",true);
Response response =network.getResponse(params,BasicConfig.WORK_calendar_workMenu);
int size = response.jsonPath().getInt("data.size()");
Assert.assertEquals(size,8 ,network.message(BasicConfig.WORK_calendar_workMenu,"查看产品列表不为空",response.body().asString()));
}
@Test(description = "CRM查询场景带看人列表",priority = 100)
public void CRM查询场景带看人列表(){
HashMap<String,Object> params = new HashMap<>();
params.put("recordId",recordItem.recordId);
params.put("expertFlag",false);
Response response =network.getResponse(params,BasicConfig.WORK_calendar_workMenu);
int size = response.jsonPath().getInt("data.size()");
Assert.assertEquals(size,7 ,network.message(BasicConfig.WORK_calendar_workMenu,"查看产品列表不为空",response.body().asString()));
}
@Test(description = "预分配客户",priority = 101)
public void 预分配客户(){
coefficient.put("totalCoefficient",getSellertotalCoefficient());
otoTakerAuth();
takerCoefficient = getSellertotalCoefficient();
otoSellerAuth();
//预分配
HashMap<String,Object> params = new HashMap<>();
otoSellerAuth();
params.put("recordId",recordItem.recordId);
params.put("takeLookId",290);
params.put("expertId",284);
Response response =network.postResponse(params,BasicConfig.WORK_calendar_preAssign);
boolean data = response.jsonPath().getBoolean("data");
Assert.assertTrue(data,network.message(params,BasicConfig.WORK_calendar_preAssign,"预分配失败",response.body().asString()));
//验证约面日历状态/专家/带看人变更
getCalendarlist(today,4,"自动化激活用户");
Assert.assertEquals(recordItem.expertName,"勿动-自动化测试专家",network.message(params,BasicConfig.WORK_calendar_list,"专家名称错误",response.body().asString()));
Assert.assertEquals(recordItem.takeLookName,"勿动-自动化测试带看",network.message(params,BasicConfig.WORK_calendar_list,"带看人名称错误",response.body().asString()));
Assert.assertTrue(recordItem.hasAssignFlag,network.message(params,BasicConfig.WORK_calendar_list,"是否分配状态非【已分配】",response.body().asString()));
//验证邀约人系数不变
double sellertotalCoefficient = getSellertotalCoefficient();
Assert.assertEquals(sellertotalCoefficient,coefficient.get("totalCoefficient"),network.message(params,BasicConfig.WORK_coefficient_detail,"邀约人系数变化",response.body().asString()));
//验证带看人系数不变
otoTakerAuth();
double leadertotalCoefficient = getSellertotalCoefficient();
Assert.assertEquals(leadertotalCoefficient,takerCoefficient,network.message(params,BasicConfig.WORK_coefficient_detail,"邀约人系数未增加",response.body().asString()));
}
@Test(description = "管理后台修改客户专家",priority = 102)
public void 管理后台修改客户专家(){
otoSellerAuth();
//修改客户专家
HashMap<String,Object> params = new HashMap<>();
params.put("custId",custId);
params.put("expertId",43);
Response response =network.postResponse(params,BasicConfig.WORK_calendar_updateExpert);
boolean data = response.jsonPath().getBoolean("data");
Assert.assertTrue(data,network.message(params,BasicConfig.WORK_calendar_updateExpert,"修改专家失败",response.body().asString()));
//验证约面日历的专家变更
getCalendarlist(today,4,"自动化激活用户");
Assert.assertEquals(recordItem.expertName,"勿动-自动化测试总监",network.message(params,BasicConfig.WORK_calendar_list,"邀约卡片专家未更新",response.body().asString()));
//验证客户管理的专家变更
params.clear();
params.put("pageIndex", 1);
params.put("pageSize", 10);
params.put("phoneNum", phone);
response = network.getResponse(params,BasicConfig.MANAGER_oto_customerList);
int expertId = response.jsonPath().getInt("data.list[0].expertId");
Assert.assertEquals(expertId,43,network.message(params,BasicConfig.MANAGER_oto_customerList,"客户管理的专家未更新",response.body().asString()));
}
@Test(description = "退回邀约组",priority = 103)
public void 退回邀约组(){
//退回邀约组
HashMap<String,Object> params = new HashMap<>();
otoSellerAuth();
params.put("recordId",recordItem.recordId);
Response response =network.postResponse(params,BasicConfig.WORK_calendar_assignRollback);
boolean data = response.jsonPath().getBoolean("data");
Assert.assertTrue(data,network.message(params,BasicConfig.WORK_calendar_assignRollback,"退回邀约组失败",response.body().asString()));
//验证约面日历状态/专家/带看人清空
getCalendarlist(today,1,"自动化激活用户");
Assert.assertNull(recordItem.expertName,network.message(params,BasicConfig.WORK_calendar_list,"专家名称不为空",response.body().asString()));
Assert.assertNull(recordItem.takeLookName,network.message(params,BasicConfig.WORK_calendar_list,"带看人名称不为空",response.body().asString()));
Assert.assertFalse(recordItem.hasAssignFlag,network.message(params,BasicConfig.WORK_calendar_list,"是否分配状态非【待分配未确认】",response.body().asString()));
//验证邀约人系数不变
double sellertotalCoefficient = getSellertotalCoefficient();
Assert.assertEquals(sellertotalCoefficient,coefficient.get("totalCoefficient"),network.message(params,BasicConfig.WORK_coefficient_detail,"邀约人系数变化",response.body().asString()));
}
@Test(description = "立即分配邀约客户",priority = 104)
public void 立即分配邀约客户(){
//立即分配
HashMap<String,Object> params = new HashMap<>();
otoSellerAuth();
params.put("recordId",recordItem.recordId);
params.put("takeLookId",290);
params.put("expertId",284);
Response response =network.postResponse(params,BasicConfig.WORK_calendar_nowAssign);
boolean data = response.jsonPath().getBoolean("data");
Assert.assertTrue(data,network.message(params,BasicConfig.WORK_calendar_nowAssign,"立即分配失败",response.body().asString()));
//验证约面日历状态/专家/带看人变更
getCalendarlist(today,4,"自动化激活用户");
Assert.assertEquals(recordItem.expertName,"勿动-自动化测试专家",network.message(params,BasicConfig.WORK_calendar_list,"专家名称错误",response.body().asString()));
Assert.assertEquals(recordItem.takeLookName,"勿动-自动化测试带看",network.message(params,BasicConfig.WORK_calendar_list,"带看人名称错误",response.body().asString()));
Assert.assertTrue(recordItem.hasAssignFlag,network.message(params,BasicConfig.WORK_calendar_list,"是否分配状态非【已分配】",response.body().asString()));
//验证邀约人系数不变
double sellertotalCoefficient = getSellertotalCoefficient();
Assert.assertEquals(sellertotalCoefficient,coefficient.get("totalCoefficient"),network.message(params,BasicConfig.WORK_coefficient_detail,"邀约人系数变化",response.body().asString()));
//验证带看人系数增加
otoTakerAuth();
double leadertotalCoefficient = getSellertotalCoefficient();
Assert.assertTrue(leadertotalCoefficient>takerCoefficient,network.message(params,BasicConfig.WORK_coefficient_detail,"带看人系数未增加",response.body().asString()));
takerCoefficient = leadertotalCoefficient;
}
//修改客户的约面情况 //修改客户的约面情况
public void updateInvite(int interviewFlag,long time){ public void updateInvite(int interviewFlag,long time){
...@@ -1272,10 +1406,11 @@ public class Work implements Authorization { ...@@ -1272,10 +1406,11 @@ public class Work implements Authorization {
Assert.assertEquals(goalCount,1 ,network.message(params,BasicConfig.WORK_invitation_list,"面访列表的目标数量不为1",response.body().asString())); Assert.assertEquals(goalCount,1 ,network.message(params,BasicConfig.WORK_invitation_list,"面访列表的目标数量不为1",response.body().asString()));
Assert.assertEquals(finishCustNum,finish ,network.message(params,BasicConfig.WORK_invitation_list,"面访列表的完成数量不为"+finish,response.body().asString())); Assert.assertEquals(finishCustNum,finish ,network.message(params,BasicConfig.WORK_invitation_list,"面访列表的完成数量不为"+finish,response.body().asString()));
Assert.assertEquals(size,1 ,network.message(params,BasicConfig.WORK_invitation_list,"面访列表的客户数量不为1",response.body().asString())); Assert.assertEquals(size,1 ,network.message(params,BasicConfig.WORK_invitation_list,"面访列表的客户数量不为1",response.body().asString()));
Assert.assertEquals(inviteStatus,status ,network.message(params,BasicConfig.WORK_invitation_list,"面访列表的客户数量不为"+status,response.body().asString())); Assert.assertEquals(inviteStatus,status ,network.message(params,BasicConfig.WORK_invitation_list,"面访列表的客户状态不为"+status,response.body().asString()));
taskId = response.jsonPath().getInt("data.list[0].id"); taskId = response.jsonPath().getInt("data.list[0].id");
} }
//获取电话回填客户约面信息
public void getCallCustInfo(int interviewFlag){ public void getCallCustInfo(int interviewFlag){
sleep(1000); sleep(1000);
HashMap<String,Object> params = new HashMap<>(); HashMap<String,Object> params = new HashMap<>();
...@@ -1293,6 +1428,7 @@ public class Work implements Authorization { ...@@ -1293,6 +1428,7 @@ public class Work implements Authorization {
} }
} }
//获取客户详情回填的客户约面信息
public void getHasFirstInvite(int interviewFlag){ public void getHasFirstInvite(int interviewFlag){
sleep(1000); sleep(1000);
HashMap<String,Object> params = new HashMap<>(); HashMap<String,Object> params = new HashMap<>();
...@@ -1303,7 +1439,7 @@ public class Work implements Authorization { ...@@ -1303,7 +1439,7 @@ public class Work implements Authorization {
int firstInterviewFlag = response.jsonPath().getInt("data.firstInterviewFlag"); int firstInterviewFlag = response.jsonPath().getInt("data.firstInterviewFlag");
String interviewTime = response.jsonPath().getString("data.interviewTime"); String interviewTime = response.jsonPath().getString("data.interviewTime");
inviteUrl = response.jsonPath().getString("data.invLetterUrl"); inviteUrl = response.jsonPath().getString("data.invLetterUrl");
Assert.assertEquals(firstInterviewFlag ,interviewFlag ,network.message(params,BasicConfig.WORK_getHasFirstInvite,"约面状态回显非"+"",response.body().asString())); Assert.assertEquals(firstInterviewFlag ,interviewFlag ,network.message(params,BasicConfig.WORK_getHasFirstInvite,"约面状态回显非"+interviewFlag,response.body().asString()));
Assert.assertNotNull(interviewTime ,network.message(params,BasicConfig.WORK_getHasFirstInvite,"面访承诺时间为空",response.body().asString())); Assert.assertNotNull(interviewTime ,network.message(params,BasicConfig.WORK_getHasFirstInvite,"面访承诺时间为空",response.body().asString()));
Assert.assertNotNull(inviteUrl ,network.message(params,BasicConfig.WORK_getHasFirstInvite,"邀请函链接为空",response.body().asString())); Assert.assertNotNull(inviteUrl ,network.message(params,BasicConfig.WORK_getHasFirstInvite,"邀请函链接为空",response.body().asString()));
}else if(interviewFlag == 0){ }else if(interviewFlag == 0){
...@@ -1311,7 +1447,7 @@ public class Work implements Authorization { ...@@ -1311,7 +1447,7 @@ public class Work implements Authorization {
String interviewTime = response.jsonPath().getString("data.interviewTime"); String interviewTime = response.jsonPath().getString("data.interviewTime");
String nextContactTime = response.jsonPath().getString("data.nextContactTime"); String nextContactTime = response.jsonPath().getString("data.nextContactTime");
String invLetterUrl = response.jsonPath().getString("data.invLetterUrl"); String invLetterUrl = response.jsonPath().getString("data.invLetterUrl");
Assert.assertEquals(firstInterviewFlag ,interviewFlag ,network.message(params,BasicConfig.WORK_getHasFirstInvite,"约面状态回显非"+"",response.body().asString())); Assert.assertEquals(firstInterviewFlag ,interviewFlag ,network.message(params,BasicConfig.WORK_getHasFirstInvite,"约面状态回显非"+interviewFlag,response.body().asString()));
Assert.assertNull(interviewTime ,network.message(params,BasicConfig.WORK_getHasFirstInvite,"面访承诺时间不为空",response.body().asString())); Assert.assertNull(interviewTime ,network.message(params,BasicConfig.WORK_getHasFirstInvite,"面访承诺时间不为空",response.body().asString()));
Assert.assertNotNull(nextContactTime ,network.message(params,BasicConfig.WORK_getHasFirstInvite,"下次联系时间为空",response.body().asString())); Assert.assertNotNull(nextContactTime ,network.message(params,BasicConfig.WORK_getHasFirstInvite,"下次联系时间为空",response.body().asString()));
Assert.assertNull(invLetterUrl ,network.message(params,BasicConfig.WORK_getHasFirstInvite,"邀请函链接不为空",response.body().asString())); Assert.assertNull(invLetterUrl ,network.message(params,BasicConfig.WORK_getHasFirstInvite,"邀请函链接不为空",response.body().asString()));
...@@ -1321,11 +1457,42 @@ public class Work implements Authorization { ...@@ -1321,11 +1457,42 @@ public class Work implements Authorization {
String interviewTime = response.jsonPath().getString("data.interviewTime"); String interviewTime = response.jsonPath().getString("data.interviewTime");
String nextContactTime = response.jsonPath().getString("data.nextContactTime"); String nextContactTime = response.jsonPath().getString("data.nextContactTime");
String invLetterUrl = response.jsonPath().getString("data.invLetterUrl"); String invLetterUrl = response.jsonPath().getString("data.invLetterUrl");
Assert.assertNull(firstInterviewFlag ,network.message(params,BasicConfig.WORK_getHasFirstInvite,"约面状态回显非"+"",response.body().asString())); Assert.assertNull(firstInterviewFlag ,network.message(params,BasicConfig.WORK_getHasFirstInvite,"约面状态回显不为空",response.body().asString()));
Assert.assertNull(interviewTime ,network.message(params,BasicConfig.WORK_getHasFirstInvite,"面访承诺时间不为空",response.body().asString())); Assert.assertNull(interviewTime ,network.message(params,BasicConfig.WORK_getHasFirstInvite,"面访承诺时间不为空",response.body().asString()));
Assert.assertNull(nextContactTime ,network.message(params,BasicConfig.WORK_getHasFirstInvite,"下次联系时间不为空",response.body().asString())); Assert.assertNull(nextContactTime ,network.message(params,BasicConfig.WORK_getHasFirstInvite,"下次联系时间不为空",response.body().asString()));
Assert.assertNull(invLetterUrl ,network.message(params,BasicConfig.WORK_getHasFirstInvite,"邀请函链接不为空",response.body().asString())); Assert.assertNull(invLetterUrl ,network.message(params,BasicConfig.WORK_getHasFirstInvite,"邀请函链接不为空",response.body().asString()));
} }
} }
//获取约面日历列表
public static void getCalendarlist(long calendarTime,int inviteStatus,String custName){
sleep(1000);
HashMap<String,Object> params = new HashMap<>();
SimpleDateFormat sdt = new SimpleDateFormat("yyyy-MM-dd");
params.put("calendarTime", sdt.format(now));
Response response =network.getResponse(params,BasicConfig.WORK_calendar_list);
List<inviteDay> invitationList = JsonUtil.parseResponseToListBean(response,inviteDay.class);
for (inviteDay day: invitationList) {
if(day.calendarTime == calendarTime){
for(invitationRecord record:day.invitationInfo) {
if(record.custName != null && record.custName.equals(custName)){
recordItem = record;
Assert.assertEquals(record.inviteStatus, inviteStatus ,network.message(params,BasicConfig.WORK_calendar_list,"约面状态回显非"+inviteStatus,response.body().asString()));
break;
}
}
break;
}
}
}
//获取销售系数
public Double getSellertotalCoefficient(){
sleep(1000);
Response response =network.getResponse(BasicConfig.WORK_coefficient_detail);
Double totalCoefficient = response.jsonPath().getDouble("data.totalCoefficient");
Assert.assertTrue(takerCoefficient>=0,network.message(BasicConfig.WORK_coefficient_detail,"销售总系数<0",response.body().asString()));
return totalCoefficient;
}
} }
...@@ -36,8 +36,8 @@ public class BasicConfig { ...@@ -36,8 +36,8 @@ public class BasicConfig {
public static final String dingTalkPath = "https://oapi.dingtalk.com/robot/send?access_token=e6fc528a3a5991ba74d800c9b1688bf5e0f4f88864ec92da777f84c260181407"; public static final String dingTalkPath = "https://oapi.dingtalk.com/robot/send?access_token=e6fc528a3a5991ba74d800c9b1688bf5e0f4f88864ec92da777f84c260181407";
/*******OTO销售工作台*********/ /*******OTO销售工作台*********/
public static final String OTO_TKU = "4yrzAfNog7WE527NKCNmqBqph48N7mWR9J49QYysZmKYC3DF97hQFap7RphynF3GFXLhp7GFZ35mc"; // public static final String OTO_TKU = "4yrzAfNog7WE527NKCNmqBqph48N7mWR9J49QYysZmKYC3DF97hQFap7RphynF3GFXLhp7GFZ35mc";
public static final String OTO_TKU = "7Fcuh7FWTsTHSqd288vMyjAfN4Jz65xJY9UT76XsXSNJDjNBCoTd8saZJrKzeUKpKUaCyxwdMaoCbh4i7qdQbiiuhvxvhxw7GZ6P5yaWPkx6kp3CTwqww9AzAHJT5GAx941A662pYRtbM4Gkbcm15Dr5";
// *************** 客集集域名 *************** // *************** 客集集域名 ***************
public static final String HOST = "https://kjj.m.duibatest.com.cn"; public static final String HOST = "https://kjj.m.duibatest.com.cn";
public static final String SSO_HOST = "https://sso.duibatest.com.cn"; public static final String SSO_HOST = "https://sso.duibatest.com.cn";
...@@ -113,6 +113,8 @@ public class BasicConfig { ...@@ -113,6 +113,8 @@ public class BasicConfig {
public static final String MANAGER_custFromSourceList = MANAGER_HOST +"/kjy/manager/oto/common/custFromSourceList"; public static final String MANAGER_custFromSourceList = MANAGER_HOST +"/kjy/manager/oto/common/custFromSourceList";
public static final String MANAGER_customer_update = MANAGER_HOST +"/kjy/manager/pub/form/customer/update"; public static final String MANAGER_customer_update = MANAGER_HOST +"/kjy/manager/pub/form/customer/update";
public static final String MANAGER_product_listAll = MANAGER_HOST +"/kjy/manager/oto/product/listAll"; public static final String MANAGER_product_listAll = MANAGER_HOST +"/kjy/manager/oto/product/listAll";
public static final String WORK_calendar_updateExpert= MANAGER_HOST + "/kjy/manager/pub/form/customer/updateExpert";
public static final String WORK_calendar_expertList= MANAGER_HOST + "/kjy/manager/pub/form/customer/expertList";
//*************** OTO销售工作台 *************** //*************** OTO销售工作台 ***************
public static final String WORK_getCaptcha = WORK_HOST + "/kjy/oto/manager/auth/captcha"; public static final String WORK_getCaptcha = WORK_HOST + "/kjy/oto/manager/auth/captcha";
...@@ -171,6 +173,12 @@ public class BasicConfig { ...@@ -171,6 +173,12 @@ public class BasicConfig {
public static final String WORK_invire= WORK_HOST + "/kjy/oto/customer/invire/record/list"; public static final String WORK_invire= WORK_HOST + "/kjy/oto/customer/invire/record/list";
public static final String WORK_generate= WORK_HOST + "/kjy/oto/manager/qrcode/generate"; public static final String WORK_generate= WORK_HOST + "/kjy/oto/manager/qrcode/generate";
public static final String WORK_getCallCustInfo= WORK_HOST + "/kjy/oto/manager/customer/call/getCallCustInfo"; public static final String WORK_getCallCustInfo= WORK_HOST + "/kjy/oto/manager/customer/call/getCallCustInfo";
public static final String WORK_menu_list= WORK_HOST + "/kjy/oto/manager/seller/menu/list";
public static final String WORK_calendar_list= WORK_HOST + "/kjy/oto/manager/cust/calendar/list";
public static final String WORK_calendar_preAssign= WORK_HOST + "/kjy/oto/manager/cust/calendar/preAssign";
public static final String WORK_calendar_nowAssign= WORK_HOST + "/kjy/oto/manager/cust/calendar/nowAssign";
public static final String WORK_calendar_workMenu= WORK_HOST + "/kjy/oto/manager/cust/calendar/workMenu";
public static final String WORK_calendar_assignRollback= WORK_HOST + "/kjy/oto/manager/cust/calendar/assignRollback";
//*************************客集集营销平台****************************** //*************************客集集营销平台******************************
public static final String PHONE_bindWxUser = HOST + "/kjy/oto/interview/bindWxUser"; public static final String PHONE_bindWxUser = HOST + "/kjy/oto/interview/bindWxUser";
......
...@@ -26,6 +26,8 @@ public class BaseUtils { ...@@ -26,6 +26,8 @@ public class BaseUtils {
public static String otoLeaderCookieValue; public static String otoLeaderCookieValue;
public static String otoManagerCookieKey; public static String otoManagerCookieKey;
public static String otoManagerCookieValue; public static String otoManagerCookieValue;
public static String otoTakerCookieKey;
public static String otoTakerCookieValue;
public static String JJBManagerCookieKey; public static String JJBManagerCookieKey;
public static String JJBManagerCookieValue; public static String JJBManagerCookieValue;
...@@ -96,11 +98,10 @@ public class BaseUtils { ...@@ -96,11 +98,10 @@ public class BaseUtils {
// otoSellerCookieKey = cookieKeyValue[0]; // otoSellerCookieKey = cookieKeyValue[0];
// otoSellerCookieValue = cookieKeyValue[1]; // otoSellerCookieValue = cookieKeyValue[1];
otoSellerCookieKey = "otoToken";
otoSellerCookieValue = "64e83LYGbaXYX9EkHumCho2UoHa4LLngpoj9ksrdj5vUiAndSwpeHVxc45qhsXT8a8niiL6oifhdXYR2BvYntaAoj4zRqmExv6eEuMsTfiN"; otoSellerCookieValue = "64e83LYGbaXYX9EkHumCho2UoHa4LLngpoj9ksrdj5vUiAndSwpeHVxc45qhsXT8a8niiL6oifhdXYR2BvYntaAoj4zRqmExv6eEuMsTfiN";
network.agentCookies.put(otoSellerCookieKey, otoSellerCookieValue); //存入cookies network.agentCookies.put("otoToken", otoSellerCookieValue); //存入cookies
System.out.println("销售Cookie中key:"+ otoSellerCookieKey +" ,values:"+ otoSellerCookieValue); System.out.println("销售Cookie中key:otoToken" +" ,values:"+ otoSellerCookieValue);
} }
/** /**
...@@ -138,11 +139,10 @@ public class BaseUtils { ...@@ -138,11 +139,10 @@ public class BaseUtils {
// otoLeaderCookieKey = cookieKeyValue[0]; // otoLeaderCookieKey = cookieKeyValue[0];
// otoLeaderCookieValue = cookieKeyValue[1]; // otoLeaderCookieValue = cookieKeyValue[1];
otoLeaderCookieKey = "otoToken";
otoLeaderCookieValue = "64e83LYGbaXYX9EkHumCho2UoHa4LLngtEH3qdP4vZcgziRKzqpEScM6Ea5UdYNEMDstTteXF6yrygqLEsBVdZJ1mKGyZ4cD5dZVM2RqyrK"; otoLeaderCookieValue = "64e83LYGbaXYX9EkHumCho2UoHa4LLngtEH3qdP4vZcgziRKzqpEScM6Ea5UdYNEMDstTteXF6yrygqLEsBVdZJ1mKGyZ4cD5dZVM2RqyrK";
network.agentCookies.put(otoLeaderCookieKey, otoLeaderCookieValue); //存入cookies network.agentCookies.put("otoToken", otoLeaderCookieValue); //存入cookies
System.out.println("总监Cookie中key:"+ otoLeaderCookieKey +" ,values:"+ otoLeaderCookieValue); System.out.println("总监Cookie中key:otoToken" + ",values:"+ otoLeaderCookieValue);
} }
/** /**
...@@ -180,11 +180,17 @@ public class BaseUtils { ...@@ -180,11 +180,17 @@ public class BaseUtils {
// otoManagerCookieKey = cookieKeyValue[0]; // otoManagerCookieKey = cookieKeyValue[0];
// otoManagerCookieValue = cookieKeyValue[1]; // otoManagerCookieValue = cookieKeyValue[1];
otoManagerCookieKey = "otoToken";
otoManagerCookieValue = "2hdZyc3Wrhbokz5QFVTnXxxteUrg4U3szFLLQhKruh4Q6eZAVEBcYAKcwDfN5vGk9MNkshTkxpyidEtujMzGw5X5EsNfV1h7kn2bzap2P8baGi"; otoManagerCookieValue = "2hdZyc3Wrhbokz5QFVTnXxxteUrg4U3szFLLQhKruh4Q6eZAVEBcYAKcwDfN5vGk9MNkshTkxpyidEtujMzGw5X5EsNfV1h7kn2bzap2P8baGi";
// network.agentCookies.put(otoManagerCookieKey, otoManagerCookieValue); //存入cookies network.agentCookies.put("otoToken", otoManagerCookieValue); //存入cookies
// System.out.println("销售Cookie中key:"+ otoManagerCookieKey +" ,values:"+ otoManagerCookieValue); System.out.println("管理员Cookie中key:otoToken"+" ,values:"+ otoManagerCookieValue);
}
/**
* 专家登录销售工作台
*/
public static void otoExpertLogin(){
otoTakerCookieValue = "eTd1Af5HRGuUtkXq6ZtdzRwuMAr1k2Cvo19wspzuZEsY48qVwFBfsmN8fyk9oT9sWj9WU5L";
} }
/** /**
......
...@@ -56,14 +56,12 @@ public class IdMakeUtil implements Authorization { ...@@ -56,14 +56,12 @@ public class IdMakeUtil implements Authorization {
BaseUtils.ssoLogin(); BaseUtils.ssoLogin();
Map<String, Object> ids = new HashMap<>(); Map<String, Object> ids = new HashMap<>();
ids.put("code", id); ids.put("code", id);
// System.out.println("input: "+id);
Response encodeIdRes = network.getResponse(ids, BasicConfig.MANAGER_ID_ENCODE); Response encodeIdRes = network.getResponse(ids, BasicConfig.MANAGER_ID_ENCODE);
// System.out.println("encodeIdRes: "+encodeIdRes.body().asString());
String encodeId = encodeIdRes.jsonPath().getString("data"); String encodeId = encodeIdRes.jsonPath().getString("data");
Assert.assertNotNull(encodeId, network.message(ids, BasicConfig.MANAGER_ID_ENCODE, "加密id失败", encodeIdRes.body().asString())); Assert.assertNotNull(encodeId, network.message(ids, BasicConfig.MANAGER_ID_ENCODE, "加密id失败", encodeIdRes.body().asString()));
return encodeId; return encodeId;
} }
public static long managerDecodeingId(String code) { public static long managerDecodeingId(String code) {
BaseUtils.ssoLogin(); BaseUtils.ssoLogin();
Map<String, Object> decodePar = new HashMap<>(); Map<String, Object> decodePar = new HashMap<>();
......
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