当前位置:网站首页>Websocket long link pressure test
Websocket long link pressure test
2022-06-24 23:24:00 【Miaomiao boss】
package Script
import okhttp3.FormBody
import okhttp3.MediaType
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.Response
import org.slf4j.Logger
import sun.misc.BASE64Encoder
import javax.crypto.BadPaddingException
import javax.crypto.Cipher
import javax.crypto.IllegalBlockSizeException
import javax.crypto.NoSuchPaddingException
import javax.crypto.spec.IvParameterSpec
import javax.crypto.spec.SecretKeySpec
import java.security.InvalidAlgorithmParameterException
import java.security.InvalidKeyException
import java.security.NoSuchAlgorithmException
import java.util.concurrent.TimeUnit
import java.util.concurrent.atomic.AtomicInteger
@TestSuite
class live {
public final Logger logger = TestUtils.LOGGER;
public static AtomicInteger incrKey = new AtomicInteger(1);
public final OkHttpClient client;
public final Request.Builder builder;
public static String transname = ""
public static String iv = ""
public final MediaType MEDIA_TYPE = MediaType.parse("application/json; charset=utf-8");
live() {
client = new OkHttpClient().newBuilder()
.connectTimeout(6, TimeUnit.SECONDS)
.readTimeout(6, TimeUnit.SECONDS)
.writeTimeout(6, TimeUnit.SECONDS)
.followRedirects(false)
.build();
builder = new Request.Builder();
logger.info("TestRunner init...");
}
public static String encrypt(String sSrc,String sKey){
Cipher cipher = null;
try {
cipher = Cipher.getInstance("");
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
}
byte[] raw = sKey.getBytes();
SecretKeySpec skeySpec = new SecretKeySpec(raw, "");
IvParameterSpec iv = new IvParameterSpec(iv.getBytes());// Use CBC Pattern , We need a vector iv, It can increase the strength of encryption algorithm
try {
cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (InvalidAlgorithmParameterException e) {
e.printStackTrace();
}
byte[] encrypted = new byte[0];
try {
encrypted = cipher.doFinal(sSrc.getBytes("utf-8"));
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return new BASE64Encoder().encode(encrypted);// Use here BASE64 Transcoding .
}
static int increment() {
return incrKey.getAndIncrement();
}
@TestCase(record = false)
void test() {
int resultCode
String s = String.format("{\"random\":\"123456\",\"clientType\":\"ios\",\"secretKey\":\"\",\"pin\":\"\",\"appId\":\"\",\"groupId\":\"\",\"timestamp\":%d}",increment().toString(),System.currentTimeMillis())
logger.info(" Before encryption content The ginseng --------{}",s)
String content = encrypt(s,"").replaceAll("[\\s*\t\n\r]", "");
String json = String.format("{\"appId\":\"\",\"content\":\"%s\"}",content)
logger.info("json--------{}",json)
FormBody requestBodyPost = new FormBody.Builder()
.add("body",json)
.build();
Request requesturl = builder
.url("")
.post(requestBodyPost)
.build()
TestUtils.transactionBegin(transname)
try {
Response response = client.newCall(requesturl).execute();
String result;
resultCode =response.code();
result=response.body().string()
response.close();
if ((resultCode==200) & (result.contains(" Authentication success "))){
logger.info("response ==============:[ "+result +" ]")
TestUtils.transactionSuccess(transname)
}
else if ((resultCode==302)||(resultCode==301 || resultCode==500)){
logger.error(" Before encryption content The ginseng --------{}",s)
logger.error("result code error ===============:[ " + resultCode + " ]")
logger.error("request.url========"+ requesturl)
logger.error("response ERROR==========:[ "+result +" ]")
TestUtils.transactionFailure(transname)
}
else {
logger.error(" Before encryption content The ginseng --------{}",s)
logger.error("result code error ===============:[ " + resultCode + " ]")
logger.error("url ERROR ===============:[ "+requesturl +" ]")
logger.error("response ERROR==========:[ "+result +" ]")
TestUtils.transactionFailure(transname)
}
}catch (Exception e) {
e.properties;
logger.error(" Before encryption content The ginseng --------{}",s)
logger.error("errorException---:{}",e.getMessage())
TestUtils.transactionFailure(transname)
}
}
}
边栏推荐
猜你喜欢
随机推荐
01_ Getting started with the spingboot framework
Laravel creates a service layer
laravel 添加helper文件
idea创建模块提示已存在
. Net 7 Preview 1 has been officially released
[basic knowledge] ~ half adder & full adder
UNION ALL UNION FULL JOIN
Selection (027) - what is the output of the following code?
基本数据类型
Force deduction solution summary 515- find the maximum value in each tree row
Use of laravel verifier
Main cause of EMI - mold current
372. 棋盘覆盖
【js】-【数组应用】-学习笔记
Second IPO of Huafang group: grown up in Zanthoxylum bungeanum, trapped in Zanthoxylum bungeanum
Detailed explanation of online group chat and dating platform project (servlet implementation)
laravel用户授权
[JS] - [linked list - application] - learning notes
华为机器学习服务语音识别功能,让应用绘“声”绘色
Building Survey [1]