1、ant自身缺陷,返回结果中有特殊字符,乱码字符,无法识别,jtl文件转换时报错。

2、jtl文件过大转换成html文件时出现内存溢出。

针对以上情况:可考虑使用BeenShell Sampler:对返回结果的乱码、特殊字符进行处理,返回结果内容过大,通过代码进行截取,但是会对性能测试结果又小许影响。

引入的外部java文件代码如下:

import java.net.URI;
import org.apache.http.HttpHost;
import org.apache.http.HttpResponse;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;

public class GetRequest {
public static String doGet(String url, String keyValueParam,String proxy,String port){
// 构建htpp客户端对象
CloseableHttpClient client = HttpClientBuilder.create().build();
HttpGet get = new HttpGet();
RequestConfig requestConfig = RequestConfig.custom()
.setSocketTimeout(20000)
.setConnectTimeout(20000)
.setConnectionRequestTimeout(20000)
.build();
if(!proxy.equals("")){
requestConfig = RequestConfig.custom()
.setSocketTimeout(20000)
.setConnectTimeout(20000)
.setConnectionRequestTimeout(20000).setProxy(new HttpHost(proxy, Integer.valueOf(port)))
.build();
}

get.setConfig(requestConfig);
// 将url和键值对参数拼接成新的url地址
get.setURI(URI.create(url + keyValueParam));
HttpResponse response;
String strResponse ="No HttpResponse";
try {
response = client.execute(get);
// 获取返回主体
strResponse = EntityUtils.toString(response.getEntity());
} catch (Exception e) {
// TODO Auto-generated catch block
//e.printStackTrace();
strResponse ="Send Request,But HttpResponse is error";
}finally {

try {
client.close();
} catch (IOException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
}

}

return strResponse;
}

public static String doGet(String url, String keyValueParam, String header,String proxy,String port){
// 构建htpp客户端对象
CloseableHttpClient client = HttpClientBuilder.create().build();

HttpGet get = new HttpGet();
RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(20000).setConnectTimeout(20000)
.setConnectionRequestTimeout(20000).build();
if (!proxy.equals("")) {
requestConfig = RequestConfig.custom().setSocketTimeout(20000).setConnectTimeout(20000)
.setConnectionRequestTimeout(20000).setProxy(new HttpHost(proxy, Integer.valueOf(port))).build();
}
get.setConfig(requestConfig);
// 将url和键值对参数拼接成新的url地址
get.setURI(URI.create(url + keyValueParam));
get.addHeader("Cookie", header);

HttpResponse response;
String strResponse="No HttpResponse";
try {
response = client.execute(get);
strResponse = EntityUtils.toString(response.getEntity());
} catch (Exception e) {
// TODO Auto-generated catch block
//e.printStackTrace();
strResponse="Send Request,But HttpResponse is error";
}finally {

try {
client.close();
} catch (IOException e) {
// TODO Auto-generated catch block
//e.printStackTrace();
}

}
// 获取返回主体

return strResponse;
}
}

BeenShell  Sampler的代码如下:

source("D:/Jmeter/运营平台核心性能场景/java/GetRequest.java");
String actualResponse = GetRequest.doGet("${Agreement}://${Host}:${Port}","${qualityCertificationUrl}","${Cookie}","${ProxyHost}","${ProxyPort}");
String sonStr= "<h3>初级认证2.0</h3>";
String response="";
//判断是否包含期望的字符串
if(actualResponse.indexOf(sonStr)!=-1){
response = "<h3>初级认证2.0</h3>";
}else{
response = actualResponse;
}
//为jmeter响应结果赋值
ResponseMessage=response;

关于jmeter+ant+jenkins性能自动化将测试结果文件jtl转换成html文件遇到的问题。的更多相关文章

  1. Jmeter+ant+Jenkins接口自动化框架搭建

    摘自:https://testerhome.com/topics/13389 一.背景  上一篇讲了Jmeter 接口自动化-脚本数据分离实例,我们知道怎么利用Jmeter去编写接口自动化脚本,但是接 ...

  2. jmeter+ant+jenkins实现自动化接口测试

    一.安装前准备 1.JDK:jdk-8u121-windows-x64 2.jmeter工具:apache-jmeter-2.13 3.ANT工具:apache-ant-1.9.7-bin 4.jen ...

  3. Jmeter+Ant+Jenkins接口自动化框架

    最近应公司要求,搭建一套接口自动化环境.看到通知邮件,没有多想就确定了Jmeter路线.可能有些人会 说,为啥不用python,相对而言高大上一些.因为公司内部现在项目有用到Jmeter,正好可以结合 ...

  4. Jmeter+Ant+Jenkins接口自动化持续集成环境搭建(Linux)

    一.安装说明 系统环境:CentOS release 6.4 JDK版本:jdk1.8.0_181 Jmeter版本:apache-jmeter-3.0 Ant版本:apache-ant-1.9.13 ...

  5. jmeter+ant+jenkins接口自动化环境搭建

    一.准备   1.安装jdk  --->点击查看安装教程 2.安装jmeter  ,官网下载jmeter解压,配置jmeter环境: JMETER_HOME (解压jdk路径) Path (;% ...

  6. Jmeter+Ant+Jenkins 接口自动化之简单demo

    之前的文章我们已经分享过了 Jmeter+Ant 的批量执行 ,并且搭建好了Jenkins部署平台,如何再将三者完美结合呢? 1.首先打开Jenkins主页面,进入“系统管理-插件管理”,安装相关的插 ...

  7. jmeter+ant+jenkins的自动化接口测试

    一.Jenkins安装配置 1.安装配置JDK1.7+环境变量: 2.下载jenkins.war,放入D:\jenkins目录下,目录位置随意: Jenkins启动方法: cmd进入Jenkins目录 ...

  8. 关于Jmeter+Ant+Jenkins作为接口、性能自动化框架的误区

    说明:Apach-Jmeter有完善的桌面客户端,关联数据的处方方式,各种参数化的方式,各种Jar包的扩展,也可以用作抓包工具使用,当然最重要的是它是[开源!开源!开源!],重要的事说三遍,目前也有基 ...

  9. 【此处有干货~】jmeter+ant+jenkins持续集成配置及过程中问题解决思路

    本人是一枚工作近三年的小测试,大学正好专业为软件测试,在工作中用到最多的是功能测试.接口测试.压力测试.偶尔会涉及到性能测试......(小白,很多观念技术跟大佬差距太大,勿喷) 在接口测试过程当中, ...

随机推荐

  1. ReLU激活函数

    参考:https://blog.csdn.net/cherrylvlei/article/details/53149381 首先,我们来看一下ReLU激活函数的形式,如下图: 单侧抑制,当模型增加N层 ...

  2. JavaScript003,用法

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  3. 【VS Code】中node.js代码自动补全的方法

    原文链接: https://blog.csdn.net/qq_39189819/article/details/91347484

  4. sqlserver内存、会话、连接查询

    1.连接查询 select * from sysprocesses where dbid in (select dbid from sysdatabases where name='dbname') ...

  5. LeetCode 308. Range Sum Query 2D - Mutable

    原题链接在这里:https://leetcode.com/problems/range-sum-query-2d-mutable/ 题目: Given a 2D matrix matrix, find ...

  6. pstmt.getGeneratedKeys()更换jar包后报错

    改成: pstmt=conn.prepareStatement(sql,Statement.RETURN_GENERATED_KEYS); rs=pstmt.getGeneratedKeys(); 即 ...

  7. PHP全栈学习笔记27

    数组概述,类型,声明,遍历,输出,获取数组中最后一个元素,删除重复数组,获取数组中指定元素的键值,排序,将数组中的元素合成字符串. 数组概述,数组是存储,管理和操作一组变量. 数组类型为一维数组,二维 ...

  8. 递归回溯生成和解决数独问题c/c++

    数独 程序地址https://github.com/papicheng/blog/tree/master/%E6%95%B0%E7%8B%AC 一.游戏规则介绍: 数独是源自18世纪瑞士的一种数学游戏 ...

  9. CF786E ALT

    题意 有一棵 \(n\) 个点的树和 \(m\) 个人,第 \(i\) 个人从 \(u_i\) 走到 \(v_i\) 现在要发宠物,要求一个人要么他自己发到宠物,要么他走的路径上的都有宠物. 求最小代 ...

  10. zabbix 定义触发器,并使用邮件,微信消息报警。

    触发器可根据监控项获取到的值来进行一些操作,如监控项获取到的values为0,触发器可判断为正常,如果获取到了1,就触发报警. 定义报警方式比较简单,但是用shell脚本实现起来,总是有格式问题,所以 ...