Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
N
nwn_Api_auto_test
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
shuai
nwn_Api_auto_test
Commits
a5539aba
Commit
a5539aba
authored
Jun 24, 2019
by
wff66504
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
20190624
parent
51e23617
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
355 additions
and
31 deletions
+355
-31
CaseMakeWff.xls
nwn_Api_auto_test/TestData/CaseMakeWff.xls
+0
-0
DataAllWff.xls
nwn_Api_auto_test/TestData/DataAllWff.xls
+0
-0
test1.java
nwn_Api_auto_test/src/Practice_test/test1.java
+68
-8
nwngetsign.java
nwn_Api_auto_test/src/com/offcn/api/nwn/md5/nwngetsign.java
+30
-2
editPackageInfo.java
...o_test/src/com/offcn/api/nwn/service/editPackageInfo.java
+225
-0
APITest_nwn.java
nwn_Api_auto_test/src/com/offcn/test/APITest_nwn.java
+32
-21
No files found.
nwn_Api_auto_test/TestData/CaseMakeWff.xls
View file @
a5539aba
No preview for this file type
nwn_Api_auto_test/TestData/DataAllWff.xls
View file @
a5539aba
No preview for this file type
nwn_Api_auto_test/src/Practice_test/test1.java
View file @
a5539aba
package
Practice_test
;
import
java.text.SimpleDateFormat
;
import
java.util.Arrays
;
import
java.util.Random
;
import
com.offcn.api.nwn.md5.LMFMD5
;
import
com.offcn.process.NWN
;
import
sun.net.www.http.HttpClient
;
public
class
test1
{
// public static void main(String[] args) {
//
// String a1=null;
// String a2="";
//
// if("0".equals(a1)){
// System.out.println(1);
// }else{
// System.out.println(2);
// }
// }
public
static
void
main
(
String
[]
args
)
{
String
a1
=
null
;
String
a2
=
""
;
String
parameter
=
"\\\"package_id\\\":4027482,\\\"pack_name\\\":\\\"飞飞班级\\\",\\\"for_year\\\":2019,\\\"intro\\\":\\\"飞飞班级11111\\\",\\\"remark\\\":\\\"飞飞班级22222\\\",\\\"cover\\\":\\\"s.eoffcn.com/tss/cover/201906/71561018287000.png\\\",\\\"appid\\\":\\\"jiaowu\\\",\\\"timestamp\\\":\\\"1561338910\\\""
;
if
(
"0"
.
equals
(
a1
)){
System
.
out
.
println
(
1
);
}
else
{
System
.
out
.
println
(
2
);
StringBuffer
stringBuffer
=
new
StringBuffer
();
String
arr
[]
=
parameter
.
split
(
","
);
Arrays
.
sort
(
arr
);
for
(
int
i
=
0
;
i
<
arr
.
length
;
i
++)
{
arr
[
i
]
=
arr
[
i
].
substring
(
arr
[
i
].
indexOf
(
":"
)+
1
);
stringBuffer
.
append
(
arr
[
i
]);
}
stringBuffer
.
toString
().
replaceAll
(
"[^0-9a-zA-Z\u4e00-\u9fa5.,,。?“”]+"
,
""
);
System
.
out
.
println
(
stringBuffer
);
String
str
=
stringBuffer
.
toString
();
str
=
str
+
"bf2h3%^j?ljkj3706kji88697"
;
//教务的加密,规则固定需要加
// System.out.println("str===" + str);
NWN
.
suprise_str
=
str
;
String
res
=
new
LMFMD5
().
MD5
(
str
);
System
.
out
.
println
(
"res==="
+
res
);
}
// public static void main(String[] args) {
// StringBuffer sortstring=new StringBuffer();
// //方法1
//
// String parameter = "appid=jiaowu&template_id=[473,475]×tamp="+NWN.timestamp;
//
// String arr[]=parameter.split("&");
// Arrays.sort(arr);
// for (int i = 0; i < arr.length; i++) {
//
// //System.out.println(arr[i].substring(arr[i].indexOf("=")+1));
// arr[i]=arr[i].substring(arr[i].indexOf("=")+1);
//
// sortstring.append(arr[i]);
// //System.out.println(sortstring);
//
// }
// sortstring.toString();
// System.out.println("sortstring====" + sortstring);
// String str = sortstring.toString();
//
//
// str = str + "bf2h3%^j?ljkj3706kji88697"; //教务的加密,规则固定需要加
// // System.out.println("str===" + str);
// NWN.suprise_str = str;
// //String str1 = "appid=tiku&avatar=http://thirdqq.qlogo.cn/qqapp/1106773681/5B50BBF83A00DC46B16B708F720A5D46/100&device_id=861837034477409&login_type=qq&nickname=hobo&open_id=1&platform=Android&version=1"+"&123456";
// String res = new LMFMD5().MD5(str);
// System.out.println("res===" +res);
// }
//
//
}
//SimpleDateFormat dateformat = new SimpleDateFormat("yyyyMMddHHmmss");
...
...
nwn_Api_auto_test/src/com/offcn/api/nwn/md5/nwngetsign.java
View file @
a5539aba
...
...
@@ -32,17 +32,45 @@ public class nwngetsign {
str
=
str
+
"bf2h3%^j?ljkj3706kji88697"
;
//教务的加密,规则固定需要加
// System.out.println("s
tr===" + str);
System
.
out
.
println
(
"getS
tr==="
+
str
);
NWN
.
suprise_str
=
str
;
//String str1 = "appid=tiku&avatar=http://thirdqq.qlogo.cn/qqapp/1106773681/5B50BBF83A00DC46B16B708F720A5D46/100&device_id=861837034477409&login_type=qq&nickname=hobo&open_id=1&platform=Android&version=1"+"&123456";
String
res
=
new
LMFMD5
().
MD5
(
str
);
System
.
out
.
println
(
"
r
es==="
+
res
);
System
.
out
.
println
(
"
getR
es==="
+
res
);
return
res
;
}
public
static
String
nwnPostSign
(
String
parameter
)
{
StringBuffer
stringBuffer
=
new
StringBuffer
();
String
arr
[]
=
parameter
.
split
(
","
);
Arrays
.
sort
(
arr
);
for
(
int
i
=
0
;
i
<
arr
.
length
;
i
++)
{
arr
[
i
]
=
arr
[
i
].
substring
(
arr
[
i
].
indexOf
(
":"
)+
1
);
stringBuffer
.
append
(
arr
[
i
]);
}
stringBuffer
.
toString
();
// System.out.println(stringBuffer);
// 正则去掉说有特殊字符,慎用: "[^0-9a-zA-Z\u4e00-\u9fa5.,,。?“”]+"
//正则去掉双引号 "\\u0022"
String
str
=
stringBuffer
.
toString
().
replaceAll
(
"\\\""
,
""
);
str
=
str
+
"bf2h3%^j?ljkj3706kji88697"
;
//教务的加密,规则固定需要加
System
.
out
.
println
(
"postStr==="
+
str
);
NWN
.
suprise_str
=
str
;
String
res
=
new
LMFMD5
().
MD5
(
str
);
System
.
out
.
println
(
"strRes==="
+
res
);
return
res
;
}
public
static
void
getstr
(){
String
str
=
"access_token=7BBFBDAE62CA6B9EC0F4B4E810F1C38C&expires_in=7776000&refresh_token=579B4051EF86407B82CC5E2AF9434F8B"
;
System
.
out
.
println
(
str
.
substring
(
str
.
indexOf
(
"="
)+
1
,
str
.
indexOf
(
"&"
)));
...
...
nwn_Api_auto_test/src/com/offcn/api/nwn/service/editPackageInfo.java
0 → 100644
View file @
a5539aba
package
com
.
offcn
.
api
.
nwn
.
service
;
import
io.restassured.path.json.JsonPath
;
import
io.restassured.response.Response
;
import
java.sql.ResultSet
;
import
java.sql.SQLException
;
import
java.sql.Statement
;
import
java.text.SimpleDateFormat
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.Map
;
import
java.util.Random
;
import
org.json.simple.JSONArray
;
import
com.offcn.TestUnti.Log
;
import
com.offcn.TestUnti.MapUtil
;
import
com.offcn.TestUnti.RequestDataUtils
;
import
com.offcn.TestUnti.StringUtils
;
import
com.offcn.interfaces.API
;
import
com.offcn.process.NWN
;
import
com.offcn.system.MyRequest
;
import
com.offcn.TestUnti.ListUtil
;
import
net.sf.json.JSONObject
;
/**
*
* @Description: 20.编辑班级信息
* @author: wff
* @date: 2019年6月21日 下午2:57:49
* @version V1.0
*/
public
class
editPackageInfo
extends
NWN
implements
API
{
public
String
parameter
;
//参数集合
public
String
package_id
;
//班级id
public
String
pack_name
;
//名称
public
String
for_year
;
//适用年份
public
String
intro
;
//简介
public
String
remark
;
//备注
public
String
cover
;
//封面
// public String appid;//appid
@Override
public
void
initialize
(
HashMap
<
String
,
Object
>
data
)
{
}
@Override
public
HashMap
<
String
,
Object
>
handleInput
(
HashMap
<
String
,
Object
>
data
)
{
// 获取parameter对应的内容
parameter
=
MapUtil
.
getValue
(
"parameter"
,
data
);
package_id
=
MapUtil
.
getParameter
(
parameter
,
"package_id"
).
trim
();
pack_name
=
MapUtil
.
getParameter
(
parameter
,
"pack_name"
).
trim
();
for_year
=
MapUtil
.
getParameter
(
parameter
,
"for_year"
).
trim
();
intro
=
MapUtil
.
getParameter
(
parameter
,
"intro"
).
trim
();
remark
=
MapUtil
.
getParameter
(
parameter
,
"remark"
).
trim
();
cover
=
MapUtil
.
getParameter
(
parameter
,
"cover"
).
trim
();
// appid = MapUtil.getParameter(parameter, "appid").trim();
// timestamp = MapUtil.getParameter(parameter, "timestamp").trim();
if
((!
package_id
.
equals
(
""
))
&&
package_id
.
equals
(
"code"
))
{
package_id
=
"4027483"
;
parameter
=
parameter
.
replace
(
"\"package_id\":code"
,
"\"package_id\":"
+
package_id
);
}
// if ((!timestamp.equals("")) && timestamp.equals("code")) {
// Long timeString= System.currentTimeMillis();
// timestamp = timeString.toString().substring(0, 10);
// parameter = parameter.replace("\"timestamp\":code", "\"timestamp\":" + timestamp);
// }
data
.
put
(
"parameter"
,
parameter
);
return
data
;
}
@Override
public
Response
SendRequest
(
HashMap
<
String
,
Object
>
data
,
String
Url
,
String
Request
)
{
// Map<String,String> m=new HashMap<String,String>();
// m.put("user_info", parameter);
//Response re = RequestDataUtils.Post_cooike_form_data(data, Url,"PHPSESSID",PHPSESSID,m);
// Response re = RequestDataUtils.Get_one_cookie_pre(data, Url, "PHPSESSID",PHPSESSID);
//Response re = RequestDataUtils.Get_one_cookie(data, serviceURL, cookie1Name, cookie1value) //只能无参
// Response re = RequestDataUtils.Get_token(data, Url, "");
Map
<
String
,
String
>
cookies
=
new
HashMap
<
String
,
String
>();
cookies
.
put
(
"PHPSESSID"
,
PHPSESSID
);
/*Map<String,String> token=new HashMap<String,String>();
token.put("Authorization", tk_token);*/
MyRequest
myRequest
=
new
MyRequest
();
myRequest
.
setParameter
(
parameter
);
myRequest
.
setUrl
(
Url
);
myRequest
.
setRequest
(
Request
);
myRequest
.
setCookies
(
cookies
);
Response
re
=
RequestDataUtils
.
RestAssuredApi
(
data
,
myRequest
);
return
re
;
}
@Override
public
String
handleOutput
(
Response
re
,
HashMap
<
String
,
Object
>
data
)
{
JsonPath
jp
=
re
.
body
().
jsonPath
();
System
.
out
.
println
(
"jp===="
+
jp
);
boolean
result
=
true
;
String
failReason
=
""
;
String
json
=
re
.
asString
();
System
.
out
.
println
(
"response=========="
+
StringUtils
.
decodeUnicode
(
json
));
if
((
data
.
get
(
"statusCode"
)
!=
null
)
&&
(!
data
.
get
(
"statusCode"
).
toString
()
.
equals
(
String
.
valueOf
(
re
.
getStatusCode
()))))
{
result
=
result
&&
false
;
failReason
=
failReason
+
"statusCode is expected "
+
data
.
get
(
"statusCode"
).
toString
()
+
" but actually "
+
String
.
valueOf
(
re
.
getStatusCode
())
+
". "
;
}
if
(
json
.
length
()
!=
0
)
{
String
msg
=
StringUtils
.
decodeUnicode
(
getMsg
(
re
));
String
code
=
getCode
(
re
);
if
((
data
.
get
(
"code"
)
!=
null
)
&&
(
code
!=
null
)
&&
(!
code
.
equals
(
data
.
get
(
"code"
).
toString
())))
{
result
=
result
&&
false
;
failReason
=
failReason
+
"code is expected "
+
data
.
get
(
"code"
).
toString
()
+
" but actually "
+
jp
.
getString
(
"retcode"
)
+
"."
;
}
/*System.out.println((data.get("msg") != null));
System.out.println((msg != null));
System.out.println(data.get("msg").toString().length());
System.out.println(msg.length());
*/
if
((
data
.
get
(
"msg"
)
!=
null
)
&&
(
msg
!=
null
)
&&
(!
msg
.
equals
(
data
.
get
(
"msg"
).
toString
())))
{
result
=
result
&&
false
;
failReason
=
failReason
+
"msg is expected "
+
data
.
get
(
"msg"
).
toString
()
+
" but actually "
+
jp
.
getString
(
"msg"
)
+
"."
;
}
if
(
data
.
get
(
"custom"
)
!=
null
&&
json
!=
null
){
//如果自定义结果包含多个希望结果,也就是有逗号,那么就切割,包含比较。
if
(
data
.
get
(
"custom"
).
toString
().
contains
(
","
)){
String
[]
strCustomStrings
=
data
.
get
(
"custom"
).
toString
().
split
(
","
);
System
.
out
.
println
(
strCustomStrings
.
length
);
for
(
int
i
=
0
;
i
<
strCustomStrings
.
length
;
i
++){
if
(!
json
.
contains
(
strCustomStrings
[
i
])){
result
=
result
&&
false
;
failReason
=
failReason
+
"custom is expected "
+
data
.
get
(
"custom"
).
toString
()
+
" but actually "
+
strCustomStrings
[
i
]
+
"."
;
break
;
}
}
}
else
{
//如果只有一个希望结果,就直接包含比较。
if
(!
json
.
contains
(
data
.
get
(
"custom"
).
toString
())){
result
=
result
&&
false
;
failReason
=
failReason
+
"custom is expected "
+
data
.
get
(
"custom"
).
toString
()
+
" but actually "
+
data
.
get
(
"custom"
).
toString
()
+
"."
;
}
}
}
if
(
"0"
.
equals
(
code
)){
/*//是否验证数据库
if (!isProduct) {
template_id=jp.getString("data.id").substring(0,jp.getString("data.id").length());
System.out.println("template_id====="+ template_id );
try {
String sql="SELECT MAX(id) AS id FROM n_template ";
//SELECT id FROM n_template ORDER BY id DESC LIMIT 1
ResultSet rs_bankcard = this.sqlFromDB(sql);
rs_bankcard.last();
System.out.println("after db_templateid============"+ rs_bankcard.getString("id"));
if(Integer.parseInt(rs_bankcard.getString("id")) > Integer.parseInt("1") )
{
if(!template_id.equals(rs_bankcard.getString("id")))
{
result = result && false;
failReason = failReason + "template_id info in DB is wrong;";
}else {
Log.logInfo("template_id info in DB is correct;");
}
}else {
result = result && false;
failReason = failReason + "template_id info in DB is wrong;";
}
} catch (Exception e) {
result = result && false;
failReason = failReason + "cannot verify template_id info in DB;";
e.printStackTrace();
}
}
*/
}
}
if
(
result
)
return
"Pass"
;
else
return
"Fail:"
+
failReason
;
}
}
nwn_Api_auto_test/src/com/offcn/test/APITest_nwn.java
View file @
a5539aba
...
...
@@ -72,6 +72,7 @@ public class APITest_nwn extends NWN{
obj
.
initialize
(
data
);
data
=
obj
.
handleInput
(
data
);
String
parameter
=
MapUtil
.
getValue
(
"parameter"
,
data
);
// System.out.println(!data.get("Request").toString().contains("get"));
...
...
@@ -82,12 +83,22 @@ public class APITest_nwn extends NWN{
data
=
setPublicParameter
(
c
,
object
,
data
);
//静态公共参数
data
=
setDynamicParameter
(
c
,
object
,
data
);
//动态公共参数
String
parameter
=
MapUtil
.
getValue
(
"parameter"
,
data
);
System
.
out
.
println
(
"parameter====="
+
parameter
);
parameter
=
MapUtil
.
getValue
(
"parameter"
,
data
);
System
.
out
.
println
(
"parameter====="
+
parameter
);
String
serviceUrl
=
MapUtil
.
getValue
(
"serviceUrl"
,
data
);
//url后面获取sign值
serviceUrl
=
serviceUrl
+
"/sign/"
+
nwngetsign
.
nwnGetSign
(
parameter
);
data
.
put
(
"serviceUrl"
,
serviceUrl
);
String
request
=
MapUtil
.
getValue
(
"Request"
,
data
);
if
(
request
.
equals
(
"get"
))
{
//url后面获取sign值 get请求
serviceUrl
=
serviceUrl
+
"/sign/"
+
nwngetsign
.
nwnGetSign
(
parameter
);
System
.
out
.
println
(
nwngetsign
.
nwnGetSign
(
parameter
));
data
.
put
(
"serviceUrl"
,
serviceUrl
);
}
else
{
//url后面获取sign值 post请求
serviceUrl
=
serviceUrl
+
"/sign/"
+
nwngetsign
.
nwnPostSign
(
parameter
);
System
.
out
.
println
(
nwngetsign
.
nwnPostSign
(
parameter
));
data
.
put
(
"serviceUrl"
,
serviceUrl
);
}
}
Long
startTime
=
System
.
currentTimeMillis
();
...
...
@@ -131,22 +142,22 @@ public class APITest_nwn extends NWN{
//数据回写
/* //
HashMap<String, Object> ExpectResult=MapUtil.Expect(data);
SheetUtils sheet = new SheetUtils("DataAll.xls", "Output");
sheet.writeExcel(
data.get("NO").toString(),
data.get("TCNO").toString() + "_Step" + data.get("Step").toString(),
data.get("Description").toString(),
parameter,
// JSONObject.fromObject(ExpectResult).toString(),
re.getStatusCode()+"",
// StringUtils.decodeUnicode(re==null?"":re.asString()),
StringUtils.decodeUnicode(body),
codeORerrcode,
msgORerrmsy,
result,
time
);*/
//
HashMap<String, Object> ExpectResult=MapUtil.Expect(data);
//
SheetUtils sheet = new SheetUtils("DataAll.xls", "Output");
//
sheet.writeExcel(
//
data.get("NO").toString(),
//
data.get("TCNO").toString() + "_Step" + data.get("Step").toString(),
//
data.get("Description").toString(),
//
parameter,
//
//
JSONObject.fromObject(ExpectResult).toString(),
//
re.getStatusCode()+"",
//
//
StringUtils.decodeUnicode(re==null?"":re.asString()),
//
StringUtils.decodeUnicode(body),
//
codeORerrcode,
//
msgORerrmsy,
//
result,
//
time
// );
if
(
result
.
indexOf
(
"Fail"
)!=-
1
){
String
Expect1
=
data
.
get
(
"code"
)==
null
?
""
:
data
.
get
(
"code"
).
toString
();
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment