当前位置:网站首页>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)
        }
    }
}
原网站

版权声明
本文为[Miaomiao boss]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/175/202206241819116070.html