Commit 2e4bac5f by shuai

20181011添加了发送邮件,修改报告样式,添加ant功能

parent 0a271d22
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
<!-- Define <testng> task --> <!-- Define <testng> task -->
<taskdef name="testng" classname="org.testng.TestNGAntTask"> <taskdef name="testng" classname="org.testng.TestNGAntTask">
<classpath> <classpath>
<pathelement location="lib/testng-6.9.12.jar" /> <pathelement location="lib/testng-6.8.6.jar" />
</classpath> </classpath>
</taskdef> </taskdef>
<property name="testoutputdir" location="testoutput" /> <property name="testoutputdir" location="test-output" />
<property name="srcdir" location="src" /> <property name="srcdir" location="src" />
<property name="libdir" location="lib" /> <property name="libdir" location="lib" />
<property name="full-compile" value="true" /> <property name="full-compile" value="true" />
...@@ -37,13 +37,40 @@ ...@@ -37,13 +37,40 @@
</path> </path>
<!--如果testng里面没有配置reportng监听器,则使用这个方式,如果testng里面配置了 reportng监听器,那么就使用这个配置
<target name="runtest" depends="compile"> <target name="runtest" depends="compile">
<testng outputdir="${testoutputdir}" classpathref="classes" delegateCommandSystemProperties="true">
<testng outputdir="${testoutputdir}" classpathref="classes"
useDefaultListeners="false"
delegateCommandSystemProperties="true" haltOnFailure="true"
listeners="org.uncommons.reportng.HTMLReporter,org.uncommons.reportng.JUnitXMLReporter,org.testng.reporters.FailedReporter">
<sysproperty key="file.encoding" value="UTF-8" />
<xmlfileset dir="${basedir}" includes="testng.xml" />
</testng>
</target>-->
<!--如果testng里面配置了 reportng监听器,那么就使用这个配置-->
<target name="runtest" depends="compile">
<!---->
<testng outputdir="${testoutputdir}" classpathref="classes"
useDefaultListeners="false" >
<sysproperty key="file.encoding" value="UTF-8" />
<xmlfileset dir="${basedir}" includes="testng.xml" /> <xmlfileset dir="${basedir}" includes="testng.xml" />
</testng> </testng>
</target> </target>
<target name="testoutput" depends="runtest"> <target name="testoutput" depends="runtest">
<java classname="com.offcn.TestUnti.Mail" classpath="${basedir}/bin">
<classpath>
<pathelement location="lib/javax.mail.jar" />
</classpath>
</java>
<!--
ui自动化测试报告部分
<xslt in="${testoutputdir}/testng-results.xml" style="${testoutputdir}/testng-results.xsl" out="${testoutputdir}/index.html "> <xslt in="${testoutputdir}/testng-results.xml" style="${testoutputdir}/testng-results.xsl" out="${testoutputdir}/index.html ">
<param name="testNgXslt.outputDir" expression="${basedir}/testoutput/" /> <param name="testNgXslt.outputDir" expression="${basedir}/testoutput/" />
...@@ -51,6 +78,7 @@ ...@@ -51,6 +78,7 @@
<classpath refid="classpath.test" /> <classpath refid="classpath.test" />
</xslt> </xslt>
-->
</target> </target>
</project> </project>
...@@ -3,12 +3,15 @@ package com.offcn.TestData; ...@@ -3,12 +3,15 @@ package com.offcn.TestData;
import org.testng.annotations.DataProvider; import org.testng.annotations.DataProvider;
import com.offcn.TestUnti.ReadExcels; import com.offcn.TestUnti.ReadExcels;
import com.offcn.TestUnti.ReadProperties;
public class offcn_api_testData { public class offcn_api_testData {
@DataProvider(name="renmai") @DataProvider(name="renmai")
public static Object[][] dp(){ public static Object[][] dp(){
ReadExcels readExcels = new ReadExcels("DataAll.xls","TestCase"); String xls=ReadProperties.GetTestPropertyByKey("xls");
String sheet=ReadProperties.GetTestPropertyByKey("sheet");
ReadExcels readExcels = new ReadExcels(xls,sheet);
try { try {
return readExcels.readExcels_return(); return readExcels.readExcels_return();
} catch (Exception e) { } catch (Exception e) {
......
...@@ -11,8 +11,8 @@ import java.util.Properties; ...@@ -11,8 +11,8 @@ import java.util.Properties;
public class ReadProperties { public class ReadProperties {
public static void main(String[] args) { public static void main(String[] args) {
// String s=ReadProperties.GetPropertyByKey("rgxs"); String s=ReadProperties.GetTestPropertyByKey("xls");
// System.out.println(s); System.out.println(s);
// ClearProperty(); // ClearProperty();
// SetProperty("123","111"); // SetProperty("123","111");
} }
...@@ -31,6 +31,20 @@ public class ReadProperties { ...@@ -31,6 +31,20 @@ public class ReadProperties {
} }
} }
public static String GetTestPropertyByKey(String key) {
Properties pps = new Properties();
try {
File directory = new File(".");
String sourceFile = directory.getCanonicalPath() +File.separator+"src"+File.separator+"resources"+File.separator+"test.properties";
InputStream in = new BufferedInputStream (new FileInputStream(sourceFile));
pps.load(in);
String value = pps.getProperty(key);
return value;
}catch (IOException e) {
return null;
}
}
//得到information中的值 //得到information中的值
public static String GetinformationByKey(String key) { public static String GetinformationByKey(String key) {
Properties pps = new Properties(); Properties pps = new Properties();
......
...@@ -106,8 +106,8 @@ public class RequestDataUtils { ...@@ -106,8 +106,8 @@ public class RequestDataUtils {
// Cookie cookie1 = Cookie.Builder("username", "John").setComment("comment 1").build(); // Cookie cookie1 = Cookie.Builder("username", "John").setComment("comment 1").build();
// Cookie cookie2 = Cookie.Builder("token", 1234).setComment("comment 2").build(); // Cookie cookie2 = Cookie.Builder("token", 1234).setComment("comment 2").build();
// Cookies cookies = new Cookies(cookie1, cookie2); // Cookies cookies = new Cookies(cookie1, cookie2);
// System.out.println(XYZB.laravel_session); System.out.println(XYZB.laravel_session);
// System.out.println(Parameter); System.out.println(XYZB.XSRF_token);
re = rdu.getRMEnv(tem).given() re = rdu.getRMEnv(tem).given()
// .header("laravel_session", XYZB.laravel_session) // .header("laravel_session", XYZB.laravel_session)
// .header("XSRF-TOKEN", XYZB.XSRF_token) // .header("XSRF-TOKEN", XYZB.XSRF_token)
......
...@@ -5,7 +5,7 @@ import java.util.ArrayList; ...@@ -5,7 +5,7 @@ import java.util.ArrayList;
public class StringUtils { public class StringUtils {
public static void main(String[] args) { public static void main(String[] args) {
String str="\u64cd\u4f5c\u6210\u529f"; String str="\\u623f\\u95f4\\u53e3\\u4ee4\\u751f\\u6210\\u5931\\u8d25";
System.out.println(decodeUnicode(str)); System.out.println(decodeUnicode(str));
} }
//字符串按符号分隔 //字符串按符号分隔
......
...@@ -76,6 +76,8 @@ public class edit extends XYZB implements API { ...@@ -76,6 +76,8 @@ public class edit extends XYZB implements API {
room_nums.put("Not_started", room_nums.get("Not_edited")); room_nums.put("Not_started", room_nums.get("Not_edited"));
room_names.put("Not_started", room_names.get("Not_edited")); room_names.put("Not_started", room_names.get("Not_edited"));
// System.out.println( Not_edited_xyzb.get("id"));
ReadProperties.updateProperty("Not_started_xyzbid", Not_edited_xyzb.get("id").toString()); ReadProperties.updateProperty("Not_started_xyzbid", Not_edited_xyzb.get("id").toString());
ReadProperties.updateProperty("Not_started_xyzbroom_nums", room_nums.get("Not_started").toString()); ReadProperties.updateProperty("Not_started_xyzbroom_nums", room_nums.get("Not_started").toString());
ReadProperties.updateProperty("Not_started_xyzbroom_names", room_names.get("Not_edited").toString()); ReadProperties.updateProperty("Not_started_xyzbroom_names", room_names.get("Not_edited").toString());
......
...@@ -162,7 +162,7 @@ public class getRooms extends XYZB implements API { ...@@ -162,7 +162,7 @@ public class getRooms extends XYZB implements API {
} }
System.out.println(rs_bankcard.getRow()); // System.out.println(rs_bankcard.getRow());
if (!(rs_bankcard.getRow()+"").equals(total)) { if (!(rs_bankcard.getRow()+"").equals(total)) {
result = result && false; result = result && false;
failReason = failReason + "total is not find;"; failReason = failReason + "total is not find;";
......
...@@ -99,7 +99,7 @@ public class login extends XYZB implements API { ...@@ -99,7 +99,7 @@ public class login extends XYZB implements API {
+ jp.getString("msg") + "."; + jp.getString("msg") + ".";
} }
if(data.get("custom") != null && jp.getString("data").length()>4){ if(data.get("custom") != null && jp.getString("data")!=null && jp.getString("data").length()>4){
String custom=data.get("custom").toString(); String custom=data.get("custom").toString();
String[] ArrayString=StringUtils.getArrayString(custom,","); String[] ArrayString=StringUtils.getArrayString(custom,",");
if(!StringUtils.VerificationString(jp.getString("data"),ArrayString)){ if(!StringUtils.VerificationString(jp.getString("data"),ArrayString)){
......
...@@ -72,8 +72,8 @@ public class member extends XYZB implements API { ...@@ -72,8 +72,8 @@ public class member extends XYZB implements API {
if ((!name.equals("")) && name.equals("random")) { if ((!name.equals("")) && name.equals("random")) {
SimpleDateFormat dateformat = new SimpleDateFormat("yyyyMMddHHmmss"); SimpleDateFormat dateformat = new SimpleDateFormat("yyyyMMddHHmmss");
String dateStr = dateformat.format(new Date()); String dateStr = dateformat.format(new Date());
temporary_name="ys"+dateStr; // temporary_name="ys"+(new Random().nextInt(9000)+ 1000);
// temporary_name="ys"+(new Random().nextInt(90000000)+ 10000000); temporary_name="ys"+(new Random().nextInt(9000)+ 1000)+dateStr;
parameter = parameter.replace("\"name\":random", "\"name\":\""+ temporary_name + "\""); parameter = parameter.replace("\"name\":random", "\"name\":\""+ temporary_name + "\"");
} }
if ((!name.equals("")) && name.equals("Enterprise_users")) { if ((!name.equals("")) && name.equals("Enterprise_users")) {
......
...@@ -110,7 +110,7 @@ public class room extends XYZB implements API { ...@@ -110,7 +110,7 @@ public class room extends XYZB implements API {
+ jp.getString("msg") + "."; + jp.getString("msg") + ".";
} }
if(data.get("custom") != null && jp.getString("data").length()>4){ if(data.get("custom") != null && jp.getString("data")!=null && jp.getString("data").length()>4){
String custom=data.get("custom").toString(); String custom=data.get("custom").toString();
String[] ArrayString=StringUtils.getArrayString(custom,","); String[] ArrayString=StringUtils.getArrayString(custom,",");
if(!StringUtils.VerificationString(jp.getString("data"),ArrayString)){ if(!StringUtils.VerificationString(jp.getString("data"),ArrayString)){
...@@ -121,6 +121,7 @@ public class room extends XYZB implements API { ...@@ -121,6 +121,7 @@ public class room extends XYZB implements API {
} }
} }
if (jp.getString("data") != null){ if (jp.getString("data") != null){
teacher_password=jp.getString("data.teacher_password"); teacher_password=jp.getString("data.teacher_password");
student_password=jp.getString("data.student_password"); student_password=jp.getString("data.student_password");
...@@ -146,7 +147,7 @@ public class room extends XYZB implements API { ...@@ -146,7 +147,7 @@ public class room extends XYZB implements API {
ReadProperties.updateProperty("Not_edited_xyzbstudent_password",Not_edited_xyzb.get("student_password").toString()); ReadProperties.updateProperty("Not_edited_xyzbstudent_password",Not_edited_xyzb.get("student_password").toString());
ReadProperties.updateProperty("Not_edited_xyzbassistant_password", Not_edited_xyzb.get("assistant_password").toString()); ReadProperties.updateProperty("Not_edited_xyzbassistant_password", Not_edited_xyzb.get("assistant_password").toString());
ReadProperties.updateProperty("Not_edited_xyzbhost_password", Not_edited_xyzb.get("host_password").toString()); ReadProperties.updateProperty("Not_edited_xyzbhost_password", Not_edited_xyzb.get("host_password").toString());
}
//是否是线上环境 //是否是线上环境
if (!isProduct) { if (!isProduct) {
...@@ -182,19 +183,19 @@ public class room extends XYZB implements API { ...@@ -182,19 +183,19 @@ public class room extends XYZB implements API {
.valueOf(rs_bankcard.getString(rs_bankcard.findColumn("teacher_password"))); .valueOf(rs_bankcard.getString(rs_bankcard.findColumn("teacher_password")));
String act_student_password = String String act_student_password = String
.valueOf(rs_bankcard.getString(rs_bankcard.findColumn("student_password"))); .valueOf(rs_bankcard.getString(rs_bankcard.findColumn("student_password")));
String assistant_password = String String act_assistant_password = String
.valueOf(rs_bankcard.getString(rs_bankcard.findColumn("assistant_password"))); .valueOf(rs_bankcard.getString(rs_bankcard.findColumn("assistant_password")));
String host_password = String String act_host_password = String
.valueOf(rs_bankcard.getString(rs_bankcard.findColumn("host_password"))); .valueOf(rs_bankcard.getString(rs_bankcard.findColumn("host_password")));
String room_num = String String act_room_num = String
.valueOf(rs_bankcard.getString(rs_bankcard.findColumn("room_num"))); .valueOf(rs_bankcard.getString(rs_bankcard.findColumn("room_num")));
if ((!teacher_password.equals(act_teacher_password)) if ((!teacher_password.equals(act_teacher_password))
|| (!student_password.equals(act_student_password)) || (!student_password.equals(act_student_password))
|| (!assistant_password.equals(assistant_password)) || (!assistant_password.equals(act_assistant_password))
|| (!host_password.equals(host_password)) || (!host_password.equals(act_host_password))
|| (!room_num.equals(room_num))) { || (!room_num.equals(act_room_num))) {
result = result && false; result = result && false;
failReason = failReason + "xyu_room info in DB is wrong;"; failReason = failReason + "xyu_room info in DB is wrong;";
} else { } else {
...@@ -207,7 +208,9 @@ public class room extends XYZB implements API { ...@@ -207,7 +208,9 @@ public class room extends XYZB implements API {
e.printStackTrace(); e.printStackTrace();
} }
} }
}else{
result = result && false;
}
} }
if (result) if (result)
return "Pass"; return "Pass";
......
...@@ -83,18 +83,21 @@ public class XYZB extends BasicsGM{ ...@@ -83,18 +83,21 @@ public class XYZB extends BasicsGM{
// }else{ // }else{
// Log.logInfo("dns地址正确无需设置"); // Log.logInfo("dns地址正确无需设置");
// } // }
String mysql_local_Online=ReadProperties.GetTestPropertyByKey("mysql_local_Online");
//本地数据库连接 //本地数据库连接
// try { if(mysql_local_Online.equals("local")){
// Class.forName("com.mysql.jdbc.Driver"); try {
// conn = DriverManager.getConnection(((system)map.get("xyzb")).getSqlurl(), Class.forName("com.mysql.jdbc.Driver");
// ((system)map.get("xyzb")).getSqlname(), conn = DriverManager.getConnection(((system)map.get("xyzb")).getSqlurl(),
// ((system)map.get("xyzb")).getSqlpwd()); ((system)map.get("xyzb")).getSqlname(),
// stmt = conn.createStatement(); ((system)map.get("xyzb")).getSqlpwd());
// stmt = conn.createStatement();
// } catch (Exception e) {
// e.printStackTrace(); } catch (Exception e) {
// } e.printStackTrace();
}
}
if(mysql_local_Online.equals("Online")){
//线上数据库连接 //线上数据库连接
try { try {
Class.forName("com.mysql.jdbc.Driver"); Class.forName("com.mysql.jdbc.Driver");
...@@ -106,6 +109,7 @@ public class XYZB extends BasicsGM{ ...@@ -106,6 +109,7 @@ public class XYZB extends BasicsGM{
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
}
//初始化数据录入 //初始化数据录入
if(!ReadProperties.isBoolean()){ if(!ReadProperties.isBoolean()){
......
...@@ -12,6 +12,7 @@ import org.testng.annotations.AfterClass; ...@@ -12,6 +12,7 @@ import org.testng.annotations.AfterClass;
import com.offcn.TestData.offcn_api_testData; import com.offcn.TestData.offcn_api_testData;
import com.offcn.TestUnti.Log; import com.offcn.TestUnti.Log;
import com.offcn.TestUnti.Mail;
import com.offcn.TestUnti.MapUtil; import com.offcn.TestUnti.MapUtil;
import com.offcn.TestUnti.OAuthTokenUnti; import com.offcn.TestUnti.OAuthTokenUnti;
import com.offcn.TestUnti.ReadProperties; import com.offcn.TestUnti.ReadProperties;
...@@ -91,7 +92,15 @@ public class APITest extends XYZB{ ...@@ -91,7 +92,15 @@ public class APITest extends XYZB{
// time // time
// ); // );
if(result.indexOf("Fail")!=-1){ if(result.indexOf("Fail")!=-1){
Assert.assertTrue(false); // try {
// Assert.assertTrue(false);
// }catch (Exception e) {
// }finally{
Assert.assertEquals(StringUtils.decodeUnicode(body),
data.get("code")==null?"":data.get("code").toString()+","
+data.get("msg")==null?"":data.get("msg").toString()+","
+data.get("custom")==null?"":data.get("custom").toString());
// }
}else{ }else{
Assert.assertTrue(true); Assert.assertTrue(true);
} }
...@@ -115,6 +124,13 @@ public class APITest extends XYZB{ ...@@ -115,6 +124,13 @@ public class APITest extends XYZB{
} catch (SQLException e) { } catch (SQLException e) {
e.printStackTrace(); e.printStackTrace();
} }
// //发送邮件
// try {
// Mail.POP3();
// } catch (Exception e) {
// Log.logError("邮件发送失败");
// e.printStackTrace();
// }
} }
Log.logInfo("========测试结束========"); Log.logInfo("========测试结束========");
......
# #
#Tue Oct 09 10:04:31 CST 2018 #Thu Oct 11 15:15:25 CST 2018
Running_xyzbteacher_password=4epjynxrhv Running_xyzbteacher_password=lqd45xvdfj
Not_edited_xyzbhost_password=aq9r4wplcl Not_edited_xyzbhost_password=abavynqvtr
Running_xyzbassistant_password=yarezo8qcy Running_xyzbassistant_password=vpwrb89wce
Running_xyzbroom_nums=201810090009 Running_xyzbroom_nums=201810110031
Invalid_xyzbstudent_password=92xoawkxi9 Invalid_xyzbstudent_password=wdg7yedjfm
Finished_xyzbroom_nums=201810090010 Finished_xyzbroom_nums=201810110032
Enterprise_users=ys20181009100427 Enterprise_users=ys557320181011151500
Invalid_xyzbroom_names=ys748618 Invalid_xyzbroom_names=ys614058
Finished_xyzbhost_password=g3vgzjqkfx Finished_xyzbhost_password=nqdv4exoh0
Finished_xyzbteacher_password=prmav16gtm Finished_xyzbteacher_password=rvax9gjxu4
Not_edited_xyzbassistant_password=dvak9p2lcz Not_edited_xyzbassistant_password=4zp4zq76h9
Finished_xyzbid=303 Finished_xyzbid=514
Running_xyzbstudent_password=prmav168s9 Running_xyzbstudent_password=je0g5jy0fd
Business_Administrator=ys20181009100428 Business_Administrator=ys822420181011151501
Not_edited_xyzbroom_names=ys76114 Not_edited_xyzbroom_names=ys733435
Running_xyzbid=302 Running_xyzbid=513
Not_edited_xyzbid=305 Not_edited_xyzbid=516
Invalid_xyzbassistant_password=g3vgzjqvsd Invalid_xyzbassistant_password=71lkv08wtn
Not_started_xyzbteacher_password=vxrvrwbqu0 Not_started_xyzbteacher_password=lel9joq2hd
Finished_xyzbstudent_password=yarezo8yue Finished_xyzbstudent_password=byz89wd2cl
Not_edited_xyzbroom_nums=201810090012 Not_edited_xyzbroom_nums=201810110034
Finished_xyzbassistant_password=92xoawkzt5 Finished_xyzbassistant_password=b9ylk7zncn
Running_xyzbroom_names=ys472911 Running_xyzbroom_names=ys747215
Not_started_xyzbhost_password=yarezo8vi5 Not_started_xyzbhost_password=mxo9eml3fe
Not_started_xyzbassistant_password=prmav169fe Not_started_xyzbassistant_password=pwy53bo4c0
Invalid_xyzbhost_password=dvak9p2aix Invalid_xyzbhost_password=6plko1n2ty
Invalid_xyzbroom_nums=201810090011 Invalid_xyzbroom_nums=201810110033
Not_started_xyzbroom_nums=201810090008 Not_started_xyzbroom_nums=201810110030
Not_started_xyzbstudent_password=4epjynxdid Not_started_xyzbstudent_password=2x01j74yfw
Finished_xyzbroom_names=ys861593 Finished_xyzbroom_names=ys299821
Invalid_xyzbid=304 Invalid_xyzbid=515
Not_edited_xyzbteacher_password=92xoawkqco Not_edited_xyzbteacher_password=8nzbxqvvhl
Running_xyzbhost_password=92xoawk0sn Running_xyzbhost_password=wwox6o0oi4
Invalid_xyzbteacher_password=yarezo8rsp Invalid_xyzbteacher_password=o5k7nqqpcv
Not_started_xyzbid=301 Not_started_xyzbid=512
Not_started_xyzbroom_names=ys209283 Not_started_xyzbroom_names=ys707613
Not_edited_xyzbstudent_password=g3vgzjqatn Not_edited_xyzbstudent_password=bvavxrgruq
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite" parallel="none"> <suite name="Suite" parallel="none">
<listeners>
<listener class-name="org.uncommons.reportng.HTMLReporter" />
<listener class-name="org.uncommons.reportng.JUnitXMLReporter" />
</listeners> <!-- -->
<test name="Test"> <test name="Test">
<classes> <classes>
<class name="com.offcn.test.APITest"/> <class name="com.offcn.test.APITest"/>
</classes> </classes>
</test> <!-- Test --> </test>
<!--
<test name="Test1">
<classes>
<class name="com.offcn.TestUnti.Mail"/>
</classes>
</test> Test -->
</suite> <!-- Suite --> </suite> <!-- Suite -->
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