beanshell

作为软件测试的前辈你能不能给我点建议?

梦想的初衷 提交于 2020-08-20 02:49:37
说点实在的。 1.买本java基础啃完。 2.买本jmeter基础啃完。 3.下个ide比如eclipse,然后写几个工具类,比如一些get,post的基本请求,json序列号和反序列化,基本的md5,aes/des基于盐的加解密,jdbc循环插入mysql造数据,xls和csv文件的操作等一些可能用到的东西。 4.把写完的打个jar包用jmeter建个beanshell瞎跑跑。 5.下个docker装点镜像,比如装个tomcat和mysql,正好上面用到 6.随便找个网站用fiddler这种抓包,然后里面找个接口用之前写的工具类请求下试试,用jmeter请求试试。 7.了解下Jenkins,如果有工具看下k8s然后把Jenkins和docker弄个最基本的持续集成环境,然后慢慢加一些工具和自己写的东西做自动化。 8.看看常用架构中mq,redis怎么用工具去连接查看,看看常用中间件和db中线程池,连接池的配置,看看表的索引这些东西。 9.看看selenium,在ide中引用它的包去做做功能自动化 10.看下unit,report工具类然后自己写个接口自动化框架测试技术类的基本就这些东西,剩下的项目经验你得去实际工作去慢慢积累。 原文链接:https://www.zhihu.com/question/392607753/answer/1311247386 来源: oschina

史上最全的 jmeter 获取 jdbc 数据使用的4种方法——(软件测试Python自动化)

爷,独闯天下 提交于 2020-08-19 03:34:05
周五,下班了吗?软件测试人。 明天是周末了!给大家推荐一个技术干货好文。史上最全的 jmeter 获取 jdbc 数据使用的四种方法。我也精剪了jmeter的自动化接口测试的视频放在了同名UP主,周末不加班的话可以抽时间来个小啤酒or咖啡精致的学习一下。 jmeter使用jdbc协议获取数据库中数据,很多人都会用,因为大家在做测试的时候,有时候需要大量的用户进行登录,获取需要数据库中真实的数据用于测试,所以常常会用jdbc来获取数据库数据。 那从数据库获取回来的数据,一般会用什么方式来接收呢? 常见的有两种: Variable names 和 Result variable name 。 相信,大家肯定用的最多的就是第一种Variable names,因为这种,使用Foreach控制器使用最简单。 但是,其他的你懂得如何使用吗? 那今天,我就在这里,把Variable names 和 Result variable name 这两种接收变量,并循环使用的办法做了一个汇总,给大家讲解一下。 我们先看用 Variable names 接收数据库返回值的情况: Variable names为dbmobile,来接收从数据库查询返回回来的100个用户号码,我们可以看下,从数据库中返回回来的数据,是如何被变量接收的。 方法一: 使用foreach控制器,循环的使用这100个手机号,进行登录

Jmeter文件下载测试

*爱你&永不变心* 提交于 2020-08-17 20:07:22
Jmeter下载文件测试, 如果是常见的文本、图片,可以直接用 保存响应到文件 组件保存下载的文件 如果是其他类型文件,二进制流数据,jmeter本身并未提供组件,需要手写代码完成 在文件下载的HTTP请求上添加:后置处理器-- BeanShell后置处理器 ,写入以下代码: import java.io; byte[] result = prev.getResponseData(); //获取请求的响应内容 String path= "d:/liuke.xlsx"; //文件保存路径,使用‘/’或者‘//’ File file = new File(path); FileOutputStream out = new FileOutputStream(file); out.write(result); out.close(); 即可。 来源: oschina 链接: https://my.oschina.net/u/4313604/blog/4458303

【工作Vlog】Jmeter响应结果乱码解决方案

房东的猫 提交于 2020-08-17 08:49:07
资料: https://blog.51cto.com/ydhome/1864340 方法一:使用后置控制器“Beanshell PostProcessor”(动态修改,灵活) 添加后置处理器-Beanshell PostProcessor 设置“BeanShell PostProcessor” 在“Script”中增加“prev.setDataEncoding("UTF-8");” 方法二:修改Jmeter.properties文件中,Jmeter的默认编码格式(永久生效) 进入%JmeterHome%/bin,找到Jmeter.properties,并打开; 搜索“sampleresult”,找到sampler的编码设置代码; 修改编码为“UTF-8”,去掉“#”(注释符号),保存设置,并重启Jmeter; 来源: oschina 链接: https://my.oschina.net/u/4278787/blog/4301040

史上最全的 jmeter 获取 jdbc 数据使用的四种方法

给你一囗甜甜゛ 提交于 2020-08-16 21:54:55
jmeter使用jdbc协议获取数据库中数据,很多人都会用,因为大家在做测试的时候,有时候需要大量的用户进行登录,获取需要数据库中真实的数据用于测试,所以常常会用jdbc来获取数据库数据。 那从数据库获取回来的数据,一般会用什么方式来接收呢? 常见的有两种: Variable names 和 Result variable name 。 相信,大家肯定用的最多的就是第一种Variable names,因为这种,使用Foreach控制器使用最简单。 但是,其他的你懂得如何使用吗? 那今天,我就在这里,把Variable names 和 Result variable name 这两种接收变量,并循环使用的办法做了一个汇总,给大家讲解一下。 我们先看用 Variable names 接收数据库返回值的情况: Variable names为dbmobile,来接收从数据库查询返回回来的100个用户号码,我们可以看下,从数据库中返回回来的数据,是如何被变量接收的。 方法一: 使用foreach控制器,循环的使用这100个手机号,进行登录 看到上图, 输入变量前缀,输入的是Variable names的变量名称; 然后开始循环和介绍循环值(上面图中我其实只用98个值,不是100个值); 再看输入变量名称,我自定义了一个变量;再勾选了数字之前加下划线。 这个图,我们就看到,登录接口中

【Jmeter】jmeter提取response中的返回值,并保存到本地文件--BeanShell后置处理器

柔情痞子 提交于 2020-08-16 19:14:40
有个需求,需要在压测环境中,创建几十万的账号数据,然后再根据创建结果,查询到某些账号信息。 按照之前我的做法,直接Python调用API,然后再数据库查询; 但是近期所有开发人员的数据库访问权限被限制,我也不能例外。没法访问数据库,但是有没有查询的API,不好弄。 后来我想到了一个解决办法,试验了一下,可行。简要记录如下: 拿到创建数据的 post API,用Jmeter实现以下,然后提取返回值,并保存到本地文件。 顺便说一下,其实这个用Python实现也没问题,选择哪个,其实都行。 我之前用Python弄得多一些,这里把用Jmeter实现,也给做一下简要的简要记录。如下: 步骤如下: 一.新建TestPlan 二.增加如下组件: 1.TestPlan 2.增加setUp Thread Group 3.增加 HTTP HTTP信息头管理器 配置:Content-Type:application/json 4.增加HTTP Request POST http://haochuangtest.com/api/rest/internal/v1/en/XXXenterprise/${具体参数}/cloudXXXXX POST data: { "id": "", "XXXXXNumber": "", "displayName": "HAO-TEST", "password": "",

JMeter-BeanShell写数据到CSV文件

与世无争的帅哥 提交于 2020-08-16 14:16:17
前言 BeanShell后置处理器的其中一个用法是把返回数据写入到文件中 需求 1、调用登录接口,获取token值 2、将token值保存到一个文件里token 一:添加一个登录http请求,填写登录接口地址,以及参数,参数值需要参数化,变量名为userName,password 二:添加后置处理器-JSON提取器,提取登录返回的data值,变量名为token 三:添加配置元件-CSV数据文件设置,导入测试数据文件,变量名为userName,password 四:添加后置处理器-BeanShell PostProcessor,写入以下代码 FileWriter fstream = new FileWriter("G:\\output.csv", true ); // 写入数据到文件 BufferedWriter out = new BufferedWriter(fstream); // ","体现在csv文档中就是向右移一个单元格 out.write(vars.get("userName")+","+ vars.get("password") +"," + vars.get("token")+","); // 获取userNamer,password,token的值 // 换行 out.write(System.getProperty("line.separator" ));

Jmeter系列(31)- 获取并使用 JDBC Request 返回的数据

大兔子大兔子 提交于 2020-08-11 10:57:45
如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html 前言 Jmeter 使用 JDBC Request 获取数据库中数据,很多人都会用,因为测试中,有时候需要大量的用户进行登录,然后 获取数据库中真实的数据用于测试 前面也详细讲到 JDBC Request 的具体使用,一般是通过 Variable names 和 Result variable name 来获取返回的数据 这篇文章主要讲的就是把 Variable names 和 Result variable name 获取到的数据 提取 出来,给到 HTTP 请求使用 Variable names + Foreach控制器 线程组结构树 JDBC Request 调试取样器运行结果 有 100 条记录 ForEach控制器 循环运行的结果( mobile:${mobile} ) Variable names + 循环控制器 和上面的栗子只是换了个控制器而已,没太大变化 线程组结构树 循环控制器 填写 100,是代表循环100次 计数器 从 1 开始,递增加到 100为止,每次递增 1 初始值=1 每次增加 1 最大的值=100(包含) 新变量 num 循环控制器内的 Debug Sampler ${__V()}

Jmeter用beanshell将相应中的参数写入到本地文件中

一个人想着一个人 提交于 2020-08-10 11:32:54
实现效果: 将每次请求的指定参数写入到本地csv文件中。 实际场景: 将登录请求中,服务器返回的token值获取并写入到本地csv文件中,供其他接口调用。 这样在压测单接口时,不需要再进行登录,避免压测单接口时,登录接口对服务器造成额外影响 代码: FileWriter fstream = new FileWriter("/Users/kk999/Desktop/token.csv", true ); // 定义本地文件路径 BufferedWriter out = new BufferedWriter(fstream); out.write( "${access_token}"); // 写入token out.write(","); // 换列 out.write("${phone}"); // 写入手机号 out.write(System.getProperty("line.separator")); // 换行 out.close(); fstream.close(); 来源: oschina 链接: https://my.oschina.net/u/4360916/blog/4287806