1. ${__time(yyyy-MM-dd HH:mm:ss,)}

2.

import use.GetRsaContent;

String pfxPath = "pfx";
String key_password = "111111";

String content = "{\"member_id\":\"${member_id}\",\"terminal_id\":\"${terminal_id}\",\"member_trans_date\""+":\"${__time(yyyyMMddHHmmss,)}${__Random(1,1000000,)}\",\"member_trans_id\":"+ "${__time(yyyyMMddHHmmss,)}${__Random(1,1000000,)}" +",\"account\":\"${account}\",\"real_name\":\"${name}\",\"password\":\"${pwd}\",\"user_id\":\"xy_jmeter_test\",\"id_card\":\"${id_card}\",\"login_type\":\"pwd\",\"origin\":\"3\",\"notify_url\":\"\"}";
log.info("content = " + content);

String data_content = new GetRsaContent().getRsaContent(pfxPath, key_password, content);

vars.put("data_content", data_content);
log.info("data_content = " + data_content);

import use.GetVerifyCode;
import org.apache.jmeter.samplers.SampleResult;

String input = new GetVerifyCode().getVerifyCode("${account}", "${receive_date}");
vars.put("input", input);
int count = 1;
vars.put("count", String.valueOf(count));
FailureMessage = "input=" + input;

import use.GetVerifyCode;
import org.apache.jmeter.samplers.SampleResult;

String input = new GetVerifyCode().getVerifyCode("${account}", "${receive_date}");
vars.put("input", input);
log.info("input=="+ input);
int count = Integer.parseInt("${count}") + 1;
vars.put("count", String.valueOf(count));
FailureMessage = "input=" + input;

3.

(.+?)

$1$

1

4. if

${__javaScript( "${input}"  ==  "")}

5. while

${__javaScript("${count}" != "${sms_count}")}

6.

import java.sql.*;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

String response = prev.getResponseDataAsString();

//log.info("response = "+response);
String tag = vars.get("tag");
//System.out.println("tag = "+tag);
String uri = vars.get("uri");
String versions = vars.get("versions");
String case_id = vars.get("num");
String jdbc_url = vars.get("jdbc_url");
String jdbc_user = vars.get("jdbc_user");
String jdbc_pass = vars.get("jdbc_pass");
String id_name = vars.get("id_name");
String id_no = vars.get("id_no");
String Describe = vars.get("Describe");
String phone_no = vars.get("phone_no");
String bankcard_no = vars.get("bankcard_no");
String product_type = vars.get("product_type");
String txn_type = vars.get("txn_type");
String number_type = vars.get("number_type");
String trans_id = "";
String trade_no = "";
String response_success = "";
String response_data = "";

JsonParser parser = new JsonParser();
JsonObject responseObj = (JsonObject) parser.parse(response);
if(responseObj.get("success").getAsString() == "true"){
JsonObject resp_data = responseObj.getAsJsonObject("data");
trans_id = resp_data.get("trans_id").getAsString();
trade_no = resp_data.get("trade_no").getAsString();
resp_data.remove("trans_id");
resp_data.remove("trade_no");
response_data = resp_data.toString();
responseObj.remove("data");
response_success = responseObj.toString();
}else {
response_success = responseObj.toString();
}
String insert = "insert into result_history (`tag`,`case_id`, `id_name`, `id_no`, `phone_no`,`bankcard_no`,`uri`, `Describe`,`versions`,`number_type`,`product_type`,`txn_type`, `trans_id`, `trade_no`, `response_success`, `response_data`) " + "values('"+ tag +"','"+ case_id +"','"+id_name +"','"+ id_no+"','"+ phone_no+"','"+ bankcard_no+"','"+uri+"', '"+ Describe +"', '"+ versions +"', '"+ number_type +"', '"+ product_type +"', '"+ txn_type +"', '"+ trans_id +"', '"+ trade_no +"', '"+ response_success +"', '"+ response_data +"');\n";
// log.info("insert = "+insert);

String drive = "com.mysql.jdbc.Driver";
Connection Mycon = null;
Statement Mystmt = null;
int insertFlag = -1;
try {
Class.forName(drive);
Mycon = DriverManager.getConnection(jdbc_url, jdbc_user, jdbc_pass);
Mystmt = Mycon.createStatement();
insertFlag = Mystmt.executeUpdate(insert);
Mystmt.close();
Mycon.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
// log.info("insertFlag = " + insertFlag);

7.

import java.sql.*;

String uri = "";
String versions = "";
String id_name = "";
String id_no = "";
String phone_no = "";
String bankcard_no = "";
String product_type = "";
String txn_type = "";
String Describe = "";
String number_type = "";
String history = "";
String history_success = "";
String history_trans_id = "";
String history_trade_no = "";
String tag = vars.get("tag");
String case_id = vars.get("num");
String jdbc_url = vars.get("jdbc_url");
String jdbc_user = vars.get("jdbc_user");
String jdbc_pass = vars.get("jdbc_pass");
String whereTagCause = "tag = '"+ tag + "'";
String whereCaseIdCause = "case_id = '"+ case_id + "'";
String whereCause = whereTagCause + "AND " + whereCaseIdCause;

// String query = "SELECT * From result_history Where " + whereCause + " and ( response_data LIKE '%成功%' OR response_data LIKE '%确认%' OR response_data LIKE '%拉黑%' OR response_data LIKE '%洗白%');";

String query = "SELECT * From result_history Where " + whereCause + ";";

// log.info("query = "+query);
String drive = "com.mysql.jdbc.Driver";

Connection Mycon = null;
Statement Mystmt = null;
ResultSet myResultSet = null;

try {
Class.forName(drive);
Mycon = DriverManager.getConnection(jdbc_url, jdbc_user, jdbc_pass);
Mystmt = Mycon.createStatement();
myResultSet = Mystmt.executeQuery(query);
while (myResultSet.next()){
uri = myResultSet.getString("uri");
id_name = myResultSet.getString("id_name");
id_no = myResultSet.getString("id_no");
phone_no = myResultSet.getString("phone_no");
bankcard_no = myResultSet.getString("bankcard_no");
product_type = myResultSet.getString("product_type");
txn_type = myResultSet.getString("txn_type");
Describe = myResultSet.getString("Describe");
number_type = myResultSet.getString("number_type");
versions = myResultSet.getString("versions");
history = myResultSet.getString("response_data");
history_success = myResultSet.getString("response_success");
history_trans_id = myResultSet.getString("trans_id");
history_trade_no = myResultSet.getString("trade_no");
}
myResultSet.close();
Mystmt.close();
Mycon.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}

vars.put("uri", uri);
vars.put("versions", versions);
vars.put("id_no", id_no);
vars.put("id_name", id_name);
vars.put("phone_no", phone_no);
vars.put("bankcard_no", bankcard_no);
vars.put("product_type", product_type);
vars.put("txn_type", txn_type);
vars.put("Describe", Describe);
vars.put("number_type", number_type);
vars.put("history", history);
vars.put("history_success", history_success);
vars.put("history_trans_id", history_trans_id);
vars.put("history_trade_no", history_trade_no);
FailureMessage = "tag = " + tag+ "\ncase_id=" + case_id + "\nid_name=" + id_name +"\nuri=" + uri;

8.

import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonArray;
import com.google.gson.JsonNull;
import java.util.Iterator;
import java.util.Set;
import java.sql.*;

public static String compareJson(JsonObject json1, JsonObject json2,String key) {
String result = "";
Set i = json1.entrySet();
Iterator it = i.iterator();
while (it.hasNext()) {
String tmp = it.next().toString();
key = tmp.substring(0, tmp.indexOf("="));
result += compareJson(json1.get(key), json2.get(key),key);
}
return result;
}
public static String compareJson(Object json1,Object json2,String key) {
String result = "";
if ( json1 instanceof JsonObject ) {
result += compareJson((JsonObject) json1 ,(JsonObject) json2, key);
}else if ( (json1 instanceof JsonNull) && (json1 instanceof JsonArray)) {
result += compareJson((JsonArray) json1 ,(JsonArray) json2,key);
}else if(json1 instanceof String ){
result += compareJson((String) json1 ,(String) json2,key);
}else {
result += compareJson(json1.toString(), json2.toString(), key);
}
return result;
}
public static String compareJson(JsonArray json1, JsonArray json2, String key) {
String result = "";
Iterator i1= json1.iterator();
Iterator i2= json2.iterator();
while ( i1.hasNext()) {
result += compareJson(i1.next(), i2.next(),key);
}
return result;
}
public static String compareJson(String str1,String str2,String key) {
String result = "";
if (!str1.equals(str2)) {
str1= str1.replace("^","]");
str2= str2.replace("^","]");
result = key + " 不一致\n当前测试返\t" + str1 + "\n历史数据返\t" + str2 + "\n";
}
return result;
}

String response = prev.getResponseDataAsString();
String history = vars.get("history");
String history_success = vars.get("history_success");
String history_trans_id = vars.get("history_trans_id");
String history_trade_no = vars.get("history_trade_no");
String failure_msg = "";

String tag = vars.get("tag");
String uri = vars.get("uri");
String versions = vars.get("versions");
String case_id = vars.get("num");
String id_name = vars.get("id_name");
String id_no = vars.get("id_no");
String jdbc_url = vars.get("jdbc_url");
String jdbc_user = vars.get("jdbc_user");
String jdbc_pass = vars.get("jdbc_pass");
String data_content_src = vars.get("data_content_src");
String trans_id = "";
String trade_no = "";
String response_success = "";
String response_data = "";
String all_history_resp = "";
String exception_msg = "";
try{
response = response.replace("\\","");
response = response.replace("\"{","{");
response = response.replace("}\"","}");
response = response.replace("\"[","[");
response = response.replace("]\",","^\",");
response = response.replace("]\"}","^\"}");
response = response.replace("]\"","]");
JsonParser parser = new JsonParser();
JsonObject responseObj = (JsonObject) parser.parse(response);
JsonParser parser1 = new JsonParser();
JsonObject history_successObj = (JsonObject) parser1.parse(history_success);

JsonObject historyObj = null;
JsonObject resp_data = null;

if(history != "") {
history = history.replace("\\","");
history = history.replace("\"{","{");
history = history.replace("}\"","}");
history = history.replace("\"[","[");
history = history.replace("]\",","^\",");
history = history.replace("]\"}","^\"}");
history = history.replace("]\"","]");
JsonParser parser2 = new JsonParser();
historyObj = (JsonObject) parser2.parse(history);
}

if(responseObj.get("success").getAsString() == "true"){
resp_data = responseObj.getAsJsonObject("data");
trans_id = resp_data.get("trans_id").getAsString();
trade_no = resp_data.get("trade_no").getAsString();
resp_data.remove("trans_id");
resp_data.remove("trade_no");
response_data = resp_data.toString();
responseObj.remove("data");
response_success = responseObj.toString();
}else {
response_success = responseObj.toString();
}

if(resp_data != null && historyObj != null){
if(resp_data.equals(historyObj) == false){
failure_msg = compareJson(resp_data, historyObj, null);
}
historyObj.addProperty("trans_id", history_trans_id);
historyObj.addProperty("trade_no", history_trade_no);
history_successObj.add("data", historyObj);
}else{
if(responseObj.equals(history_successObj) == false){
responseObj.remove("data");
failure_msg = compareJson(responseObj, history_successObj, null);
}
}

if(failure_msg != "" && failure_msg.length() != 0){
Failure = true;
all_history_resp = history_successObj.toString();
all_history_resp = all_history_resp.replace("^","]");
response = response.replace("^","]");
FailureMessage = "\n\n请求明文:\n" + data_content_src + "\n\n返回数据和历史数据不匹配, 具体字段如下:\n" + failure_msg + "\n当前报文:\n" + response + "\n历史报文:\n" + all_history_resp + "\n\n" + uri + "\n" + id_name + "_" + id_no;

String update = "UPDATE result_history SET current_trans_id = '"+ trans_id + "', current_trade_no = '"+ trade_no + "', current_response_success = '"+ response_success + "', current_response_data = '"+ response_data + "', FailureMessage = '"+failure_msg + "', UpdatedAt = NOW() WHERE tag = '"+ tag + "' AND case_id = '"+ case_id + "';\n";

String drive = "com.mysql.jdbc.Driver";
Connection Mycon = null;
Statement Mystmt = null;
int updateFlag = -1;
try {
Class.forName(drive);
Mycon = DriverManager.getConnection(jdbc_url, jdbc_user, jdbc_pass);
Mystmt = Mycon.createStatement();
updateFlag = Mystmt.executeUpdate(update);
Mystmt.close();
Mycon.close();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
// log.info("updateFlag = " + updateFlag);
}

}catch (Exception e){
exception_msg = e.getMessage();
// log.info("exception_msg = " + exception_msg);
}

if(exception_msg != ""){
Failure = true;
all_history_resp = history;
all_history_resp = all_history_resp.replace("^","]");
response = response.replace("^","]");
FailureMessage = "\n\n请求明文:\n" + data_content_src + "\n\n解析返回字段出错, 错误信息如下:\n" + exception_msg + "\n\n当前报文:\n" + response + "\n历史报文:\n" + all_history_resp + "\n\n" + uri + "\n" + id_name + "_" + id_no;
}

9.

import org.apache.jmeter.samplers.SampleResult;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;

SampleResult result = ctx.getPreviousResult();

String requestHeaders = result.getRequestHeaders();
Long time = result.getTime();

log.info("time: "+ time);
log.info("RequestHeaders: "+requestHeaders);

String card= "dddd";
try{
File file = new File("D:\\yace\\card.txt");
if (!file.exists()){
file.createNewFile();
}
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(new FileInputStream(file.getAbsolutePath()), "UTF-8"));
String str="";
boolean isExist=false;
while ((str=bufferedReader.readLine())!=null){
if (str.trim().equals(card)){
isExist=true;
break;
}
}
bufferedReader.close();
if (isExist){
FileOutputStream fos = new FileOutputStream(file.getAbsoluteFile(),true);  
fos.write(card.getBytes());
fos.write("\n".getBytes());
fos.close();
}
}catch(IOException e){
e.printStackTrace();
}

10

String requestHeaders= "trans_id: 20181214094348040610532\n" +
"Content-Type: application/x-www-form-urlencoded\n" +
"Content-Length: 840\n" +
"Host: api.xinyan-ai.com\n" +
"User-Agent: Apache-HttpClient/4.5.3 (Java/1.8.0_181)"; String[] array = requestHeaders.split("\n");
String trans_id = "";
for (int i = 0; i < array.length; i++) {
if(array[i].contains("trans_id")){
trans_id = array[i].substring(10);
break;
}
}
try{
File file = new File("D:\\yace\\card.txt");
if (!file.exists()){
file.createNewFile();
}
FileOutputStream fos = new FileOutputStream(file.getAbsoluteFile(),true);//true表示在文件末尾追加  
fos.write(trans_id.getBytes());
fos.write("\n".getBytes());
fos.close();
}catch(IOException e){
e.printStackTrace();
}
} 11

import org.apache.jmeter.samplers.SampleResult;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStreamReader;

SampleResult result = ctx.getPreviousResult();

String requestHeaders = result.getRequestHeaders();
Long time = result.getTime();

String trans_id = vars.get("trans_id");
String saveFile = vars.get("saveFile");
String timeout = vars.get("timeout");
if(time > Long.parseLong(timeout)){
try{
File file = new File(saveFile);
if (!file.exists()){
file.createNewFile();
}
FileOutputStream fos = new FileOutputStream(file.getAbsoluteFile(),true);
fos.write((time.toString()+",").getBytes());
fos.write(trans_id.getBytes());
fos.write("\n".getBytes());
fos.close();
}catch(IOException e){
e.printStackTrace();
}
}

jmeter随笔的更多相关文章

  1. jmeter随笔(23)--在csv中维护变量参数

    点击标题下「蓝色微信名」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是 ...

  2. jmeter随笔(29)-关于自己的jar包和beanshell的使用

    点击标题下「蓝色微信名」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是 ...

  3. jmeter随笔(11)--上传文件接口出错

    点击标题下「飞测」可快速关注 坚持的是分享,搬运的是知识,图的是大家的进步,没有收费的培训,没有虚度的吹水,喜欢就关注.转发(免费帮助更多伙伴)等来交流,想了解的知识请留言,给你带来更多价值,是我们期 ...

  4. jmeter随笔(4)--中文url编码问题

    最近在工作中,对jmeter实践的点滴的记录,这里分享交流,不一定正确,仅供参考和讨论,有想法的欢迎留言.谈论,手机上图片如果不清晰,请点击[阅读原文]查看. 技巧1:中文url编码问题 问题:我们抓 ...

  5. jmeter随笔(3)-从csv中获取带引号的数据详情

    最近在工作中,对jmeter实践的点滴的记录这里分享,不一定正确,仅供参考和讨论,有想法的欢迎留言.谈论. 1技巧1:从csv中获取带引号的数据详情 背景:我们从csv中获取数据,在jmeter中使用 ...

  6. jmeter随笔(10)-中文url编码问题

    坚持分享,坚持总结,技术需要时间的积累和练习,对jmeter实践的点滴的记录,这里分享交流,仅供参考和讨论,有想法的欢迎留言.谈论,手机上图片如果不清晰,请点击[阅读原文]查看. 1技巧1:后台数据h ...

  7. jmeter随笔(9)--有两种编码风格,导致数据乱码

    问题:在一个网站,有两种编码风格,导致数据乱码 解决办法: 1.首先设置jmeter的配置文件 2.针对要求是utf-8格式的这样的请求,做单独的编码处理(beanshell处理) 3.运行,在htm ...

  8. jmeter随笔(5)--断言中正则表达式的特殊字符问题和中文乱码显示问号的问题

    最近在工作中,对jmeter实践的点滴的记录,这里分享交流,不一定正确,仅供参考和讨论,有想法的欢迎留言.谈论,手机上图片如果不清晰,请点击[阅读原文]查看. 问题:今天QQ群一朋友遇到jmeter的 ...

  9. jmeter随笔(2)--上传接口报错

    黑夜小怪(2016-8-24  23:45) 微信订阅号: 问题:今天同事遇到问题,一个图片上传接口,单独跑是ok的,但是放在和其他接口一起就跑不通,如图 分析:查看该接口fiddler的抓包,发现请 ...

  10. jmeter随笔(1)-在csv中数据为json格式的数据不完整

    昨天同事在使用jmeter遇到问题,在csv中数据为json格式的数据,在jmeter中无法完整的取值,小怪我看了下,给出解决办法,其实很简单,我们一起看看,看完了记得分享给你的朋友. 问题现象: 1 ...

随机推荐

  1. shell 从文件中读取批量文件名并做命令行操作

    222文件内容: /home/zhangsuosheng/Desktop/9-30/9_30/1bak/1538291162.png /home/zhangsuosheng/Desktop/9-30/ ...

  2. docker-compose部署zk集群、kafka集群以及kafka-manager,及其遇到的问题和解决

    zk集群docker-compose.yml 1.新建网络 docker network create --driver bridge --subnet --gateway 172.23.0.1 zo ...

  3. (2.1)备份与还原--sql server文件的概念及操作

    概述:sql server是以文件形式存储数据与日志 1.数据文件 sql server数据文件分为2类 (1)主数据库文件 主数据库文件包含数据库的启动信息.系统对象,并指向数据库的其他文件(从数据 ...

  4. Linux系统的SVN客户端使用技巧详解

    忽略文件/文件夹 假设想忽略文件temp,cd到temp所在的目录下: $ svn propedit svn:ignore . [注意:请别漏掉最后的点(.表示当前目录),如果报错请看后面] 打开的文 ...

  5. R语言之多重共线性的判别以及解决方法

    多重共线性(Multicollinearity)是指线性回归模型中的解释变量之间由于存在精确相关关系或高度相关关系而使模型估计失真或难以估计准确.   1.可以计算X矩阵的秩qr(X)$rank,如果 ...

  6. genymotion——在虚拟机中当中安装genymotion,启动已经新增好的设备时,提示:the virtual device got no ip address

    1.启动已经新增好的设备时,提示:the virtual device got no ip address,于是在网上搜索该问题,便得到提示,先启动virtual box中的该模拟设备,于是便启动,出 ...

  7. Android 常用adb shell 命令

    原文地址http://blog.csdn.net/rain_butterfly/article/details/40894807 调试Android程序有时需要adb shell 命令,adb全称An ...

  8. FMX 高手博客

    http://www.cnblogs.com/weii 苹果系统,很详细http://blog.sina.com.cn/s/articlelist_1157240623_0_1.html 红鱼,资料很 ...

  9. 1-CommonJs

    诞生背景JS没有模块系统.标准库较少.缺乏包管理工具:前端端没有模块化编程还可以,因为前端逻辑没那么复杂,可以工作下去,在服务器端逻辑性那么强必须要有模块为了让JS可以在任何地方运行,以达到Java. ...

  10. 《UML和模式应用》读书笔记(一)面向对象分析和设计简单示例

    在开始进行对象分析和设计之前,先通过“扔骰子”这个软件(游戏者扔两个骰子,如果总是是7,则赢,否则输),来简单分析下这个过程. 1:用例 需求分析,可能包括人们如何应用的场景或情节,这些都可以被编写成 ...