Commit 2e4bac5f by shuai

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

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