Commit 7351480c authored by 马博's avatar 马博

update

parent fdeb0172
package base;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.testng.*;
import org.testng.xml.XmlSuite;
import org.uncommons.reportng.HTMLReporter;
import java.io.*;
import java.util.*;
/**
* Created by hanzhanli on 2017/10/31.
*/
public class DuibaReporter implements IReporter {
Logger logger = LogManager.getLogger(DuibaReporter.class);
@Override
public void generateReport(List<XmlSuite> list, List<ISuite> list1, String s) {
logger.info("test:"+System.getProperty("test"));
// logger.info("exceptionServices-Report:"+SFExpress.getExceptionServices().toString());
// logger.info("exceptionServices-size:"+SFExpress.getExceptionServices().size());
List<SuiteResult> suiteResultList=new ArrayList<>();
List<String> failCase = new ArrayList<>();
for(ISuite suite:list1){
String suiteName=suite.getName();
//logger.info("suiteName:"+suiteName);
SuiteResult suiteResult=new SuiteResult(suiteName);
for (ISuiteResult result : suite.getResults().values()){
//logger.info(result.getTestContext().getName());
//System.out.println(result.getTestContext().getName());
//System.out.println(result.getTestContext().getPassedTests());
IResultMap iResultMap=result.getTestContext().getSkippedConfigurations();
Set<ITestResult> resultSet=iResultMap.getAllResults();
Object[] iTestResult=resultSet.toArray();
if(iTestResult.length>0) {
Object o = iTestResult[0];
//String message = ((ITestResult) o).getThrowable().getMessage();
//logger.info("skipped-info:"+message);
}
SortedMap<IClass, List<ITestResult>> passMap=null; //HTMLReporter.sortByTestClass(result.getTestContext().getPassedTests());
if(!passMap.isEmpty()){
generateStatusResult(passMap,suiteResult,"pass");
}
SortedMap<IClass, List<ITestResult>> skipMap=null; //HTMLReporter.sortByTestClassTool(result.getTestContext().getSkippedTests());
if(!skipMap.isEmpty()){
generateStatusResult(skipMap,suiteResult,"skip");
}
SortedMap<IClass, List<ITestResult>> failMap=null;// HTMLReporter.sortByTestClassTool(result.getTestContext().getFailedTests());
logger.info("***************************************************");
if(!failMap.isEmpty()){
logger.info("***************************************************");
logger.info("错误case");
failMap.forEach((k,v)->{
logger.info("k.getName()"+k.getName());
StringBuilder ca = new StringBuilder();
ca.append(k.getName());
v.forEach(itr->{
logger.info("itr.getName()"+itr.getName());
ca.append(".");
ca.append(itr.getName());
failCase.add(ca.toString());
});
});
logger.info("***************************************************");
generateStatusResult(failMap,suiteResult,"fail");
}
//logger.info(new Gson().toJson(suiteResult));
}
suiteResultList.add(suiteResult);
}
String testResult=new Gson().toJson(suiteResultList);
logger.info("test result:"+testResult);
String path=s+File.separator+"result.json";
File file=new File(path);
DuibaReporter.save2File(file,testResult);
SuiteResult sr=suiteResultList.get(0);
int total=sr.getTotal();
int passCount=sr.getPassCount();
int failCount=sr.getFailCount();
int skipCount=sr.getSkipCount();
DingdingResult ddResult=null;
try{
ddResult=new DingdingResult(total,passCount,skipCount,failCount);
}catch (Exception e){
e.printStackTrace();
}
//logger.info(System.getProperty("noticeDD"));
boolean noticeDD=Boolean.parseBoolean(System.getProperty("noticeDD"));
boolean noticePerson=Boolean.parseBoolean(System.getProperty("noticePerson"));
boolean sendPlatform=Boolean.parseBoolean(System.getProperty("sendPlatform"));
//logger.info("noticeDD----:"+noticeDD);
Gson gson=new GsonBuilder().create();
logger.info("gson.toJson(ddResult)~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
logger.info("钉钉通知:"+gson.toJson(ddResult));
Map<String,Object> map = null;
try {
map = ddResult.getResult();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
map.put("failCase",failCase);
if(sendPlatform)
Postman.sendTestPlatform(map);
if(noticeDD){
if(!noticePerson){
map.put("names",new ArrayList<>());
}
logger.info("noticeDD:"+noticeDD);
Postman.send2Dingding(map);
}
}
private static void generateStatusResult(SortedMap<IClass, List<ITestResult>> StatusMap, SuiteResult suiteResult, String key){
List<ClassResult> passClassResultList=new ArrayList<>();
int caseCount=0;
for(IClass testClass: StatusMap.keySet()){
List<ITestResult> classResultList= StatusMap.get(testClass);
String className=testClass.getName();
ClassResult classResult=new ClassResult(className);
for(ITestResult methodResult:classResultList){
caseCount++;
//classResult.count++;
String title=methodResult.getName();
String description=methodResult.getMethod().getDescription();
if(description!=null&&description.length()>0){
title=title+":"+description;
}
String testOut=null;
if(key.equals("pass")){
testOut=Reporter.getOutput(methodResult).toString();
}else if(key.equals("skip")){
testOut= DuibaReporter.getDependentMethods(methodResult);
}else if(key.equals("fail")){
String throwable=methodResult.getThrowable().toString();
testOut=Reporter.getOutput(methodResult).toString()+";"+throwable;
}
long duration=methodResult.getEndMillis()-methodResult.getStartMillis();
classResult.addResult(title,String.valueOf(duration),testOut);
}
passClassResultList.add(classResult);
}
suiteResult.addResult(key,passClassResultList,caseCount);
}
private static String commaSeparate(Collection<String> strings)
{
StringBuilder buffer = new StringBuilder();
Iterator<String> iterator = strings.iterator();
while (iterator.hasNext())
{
String string = iterator.next();
buffer.append(string);
if (iterator.hasNext())
{
buffer.append(", ");
}
}
return buffer.toString();
}
private static String getDependentMethods(ITestResult result)
{
String[] methods = result.getMethod().getMethodsDependedUpon();
return commaSeparate(Arrays.asList(methods));
}
private static void save2File(File file,String content){
OutputStream out = null;
Writer writer =null;
try {
out = new FileOutputStream(file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
writer = new BufferedWriter(new OutputStreamWriter(out,"utf-8"));
writer.write(content);
writer.flush();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if(writer!=null) try {
writer.close();
} catch (IOException e) {
e.printStackTrace();
}
if(out!=null){
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
// private SortedMap<IClass, List<ITestResult>> sortByTestClass(IResultMap results)
// {
// SortedMap<IClass, List<ITestResult>> sortedResults = new TreeMap<IClass, List<ITestResult>>(CLASS_COMPARATOR);
// for (ITestResult result : results.getAllResults())
// {
// List<ITestResult> resultsForClass = sortedResults.get(result.getTestClass());
// if (resultsForClass == null)
// {
// resultsForClass = new ArrayList<ITestResult>();
// sortedResults.put(result.getTestClass(), resultsForClass);
// }
// int index = Collections.binarySearch(resultsForClass, result, RESULT_COMPARATOR);
// if (index < 0)
// {
// index = Math.abs(index + 1);
// }
// resultsForClass.add(index, result);
// }
// return sortedResults;
// }
public static void test(int i){
i+=1;
}
public static void main(String[] args) {
// Calendar c = Calendar.getInstance();
// Date date = new Date();
// c.setTime(date);
// int week_num =c.get(Calendar.WEEK_OF_YEAR);
// System.out.println(week_num);
// System.out.println(26%2==0);
int i = 2;
test(i);
System.out.println(i);
}
}
......@@ -19,9 +19,11 @@ public class TestListener implements ITestListener {
ITestNGMethod method = failedTest.getMethod();
if (context.getFailedTests().getResults(method).size() > 1) {
listOfFailedTests.remove();
logger.info("context.getFailedTests().getResults(method).size() > 1");
} else {
if (context.getPassedTests().getResults(method).size() > 0) {
listOfFailedTests.remove();
logger.info("context.getPassedTests().getResults(method).size() > 0");
}
}
}
......@@ -52,5 +54,6 @@ public class TestListener implements ITestListener {
public void onStart(ITestContext context) {
// TODO Auto-generated method stub
logger.info("onStart~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
}
}
\ No newline at end of file
......@@ -14,6 +14,9 @@ import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadPoolExecutor;
/**
* Created by mabo on 2018/9/30
......@@ -86,6 +89,23 @@ public class http1_Test extends DuibaBase {
// MysqlUtils sql = new MysqlUtils();
// Map<String,Object> map = sql.findSimpleResultBybds("select * from dafuweng.user where id=2709");
// System.out.println("hello");
ExecutorService tp = Executors.newFixedThreadPool(100);
int i=0;
while(i<100){
tp.execute(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println(Thread.currentThread().getName());
}
});
i--;
}
......
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