当前位置:网站首页>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)
}
}
}
边栏推荐
- 华为机器学习服务语音识别功能,让应用绘“声”绘色
- Websocket learning
- Actipro WPF Controls 2022.1.2
- 376. 機器任務
- 376. 机器任务
- HarmonyOS访问数据库实例(3)--用ORM Bee测下HarmonyOS到底有多牛
- Notes for laravel model
- R语言使用glm函数构建泊松对数线性回归模型处理三维列联表数据构建饱和模型、使用summary函数获取模型汇总统计信息、解读模型系数交互作用及其显著性
- 案例解析:用「度量」提升企业研发效能|ONES Talk
- Dig deep into MySQL - resolve the non clustered index of MyISAM storage engine
猜你喜欢

Pseudo original intelligent rewriting API Baidu - good collection

03_SpingBoot 核心配置文件

Laravel pagoda security configuration

Actipro WPF Controls 2022.1.2

伪原创智能改写api百度-收录良好

Ningde times will increase RMB 45billion: Hillhouse subscribes RMB 3billion and Zeng Yuqun still controls 23% of the equity

File contains vulnerability issues

22map introduction and API

选择类排序法

Fibonacci
随机推荐
Building Survey [2]
EMI的主要原因-工模电流
07_ Springboot for restful style
docker-mysql8-主从
376. Tâches mécaniques
Accounting standards for business enterprises application [5]
372. 棋盘覆盖
安装IBM CPLEX学术版 academic edition | conda 安装 CPLEX
Actipro WPF Controls 2022.1.2
OpenSSL SSL_read: Connection was reset, errno 10054
UNION ALL UNION FULL JOIN
#22Map介绍与API
Notes for laravel model
Tech talk activity review kubernetes skills of cloud native Devops
01_ Getting started with the spingboot framework
Laravel study notes
常用正则表达式
Laravel pagoda security configuration
03_SpingBoot 核心配置文件
Laravel add helper file