问题思考 接口测试过程中经常需要接口之间关联调用,比如获取上一个接口的返回值,作为另一个接口的请求参数,那么该如何从处理呢? 这里需要使用 Jmeter 的正则表达式提取器,通过对响应的数据来提取指定的数据. 操作案例 从请求 get请求 的响应数据中匹配username的值,然后创建请求 get-name 来引用 username 的值作为请求参数. 设置步骤: 选中请求——添加——后置处理器——正则表达式提取器,将提取器名称改为 提取username 根据 get请求 的响应,提取返回值中的…
这里主要记录一下A接口的返回结果经过md5加密之后作为另外B接口的参数,这个问题困扰了很久,找了不少资料,现在把解决方法记录如下: 环境 ①JMeter 3.0 ②前置条件:将fastjson.jar包置于..\apache-jmeter-3.2\lib\下,并将该jar包添加到测试计划的Library中:否则会报:Typed variable declaration : Class: JSONObject not found in namespace的错误: fastjson.jar包下载地址…
我们在做接口测试过程中,往往会遇到以下几种情况 每次发送请求,都需要更改参数值为未使用的参数值,比如手机号注册.动态时间等 上一个接口的请求体参数用于下一个接口的请求体参数 上一个接口的响应体参数用于下一个接口的请求体参数,比如:sessionId.token 上一个接口的响应体参数用于下一个接口的url接口地址中 上一个接口的响应头参数用于下一个接口的请求体参数,比如:token ...... 针对以上种种情况,我们都可以通过参数化和正则提取的方式来解决 一.参数化 举例演示,提供一个注册和登…
Jmeter接口测试实战-数据传递 接口与接口之间没有关联的测试是缺乏意义和没有灵魂的,只有数据在不同接口之间传递才能勾画出业务场景重要的链路. 我们用较为通用的http/https协议,接口普遍返回json方式为例. 举例场景: 比如电商平台,用户登录后产生令牌token, 其他接口拿着这个token判断用户是否登录才能进行相关操作, 当用户将商品加入购物车支付完成后,系统按照规则生成订单号, 同时会在该用户的全部订单列表中查到全部订单和相应状态. 要点分析: 1. login接口登录后生成t…
Jmeter 使用也有很长时间了,但是一直没有做一下知识梳理,近期会对公司同事做一下这方面的培训,借此机会,把使用过程中应用到的知识,或是遇到的问题,整理出来,方便大家学习! Jmeter 接口测试知识梳理——应用基础篇 Jmeter主要元件 测试计划(Test Plan)是使用 JMeter 进行测试的起点,它是其它 JMeter 测试元件的容器.线程组(Thread Group)代表一定数量的并发用户,它可以用来模拟并发用户发送请求.取样器(sampler)定义实际的请求内容,被线程组包含,…
一.Jmeter简介 ​ Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试. Jmeter具备高移植性,可以实现跨平台运行. Jmeter可以实现分布式负载. Jmeter采用多线程,允许通过多个线程并发取样或通过独立的线程对不同的功能同时取样. Jmeter具有较高扩展性. 二.Jmeter安装 1.安装JDK,必须JDK1.7以上的版本,推荐1.8的版本 2.进入官网:http://jmeter.apache.org/download_…
运用Jmeter正则提取器,可以从请求的响应结果中取到需要的内容,从而实现关联. jmeter之关联 的个人理解: 关联是请求与请求之间存在数据依赖关系,需要从上一个请求获取下一个请求需要回传回去的数据…
此文章作为工作中用到的jmeter接口测试相关内容简述,方便日后查阅参考,如有理解描述有误之处,欢迎指出. 首先Jmeter环境准备网上有很多教程,在此不多做赘述: 1.接口简述 接口可理解为从客户端到服务器的通道,客户端发送请求到服务器是通过接口实现的: 2.抓包 在无接口文档或文档描述清晰度不够,验证请求入参及相应信息时,web端可直接在浏览器使用F12查看network信息:需勾选Presever log选项:抓取页面所有的HTTP.HTTPS的请求:pc客户端或app可借助Charles…
JMeter接口测试和压力测试 JMeter可以做接口测试和压力测试.其中接口测试的简单操作包括做http脚本(发get/post请求.加cookie.加header.加权限认证.上传文件).做webservice脚本.参数化.断言.关联(正则表达式提取器和处理json-json path extractor)和jmeter操作数据库等等. 一.接口测试 1,JMeter-http接口测试 一般分五个步骤:(1)添加线程组 (2)添加http请求 (3)在http请求中写入接入url.路径.请求…
一.Jmeter简介 Jmeter是apache公司基于java开发的一款开源压力测试工具,体积小,功能全,使用方便,不像loadrunner那样体积大,是一个比较轻量级的测试工具,使用起来非常的简单,深受测试人员的喜爱,但是它的测试报告没有loadrunner的那么详细,看起来没有那么的直观.因为它是java开发的,所以运行的时候必须要安装jdk才可以,jmeter是免安装的,拿到安装包之后直接解压就可以使用了,它也是跨平台的在linux.windows.macos上都可以使用. 二.Jmet…
目的 jmeter很早就接触了,最近又在接触项目的时候整了一下.写这篇博客主要有两个目的 1,为了给自己搭建jmeter做一个总结. 2,在部署过程中遇到过一些坑,在这分享出来,也希望能给需要的人一个参考. 接口测试概述 详细介绍jmeter接口测试环境之前,先简单介绍下接口测试 API testing is a type of software testing that involves testing application programming interfaces (APIs) dir…
jmeter接口测试实战-创建用户 相信大多数看到标题的同学都会有疑问, 创建用户不是很简单吗, 调用一下创建用户接口, 传入指定入参, 用户即可创建成功, 今天我们的实战来讲讲创建场景.通过接口创建用户前面的想法没有问题, 但在实际项目并不是那么简单的. 场景: 在企业中, 多数会有很多管理系统如CMS, CRM, 中台等各种管理系统, 这些有一个共同点就是区分用户权限, 如: 张三是管理员权限, 李四是部门经理权限, 王五是普通权限. 这个场景的要点是: 用户名唯一. 不同用户不同权限. 按…
JMeter接口测试实战-动态数据验证 说到验证就不得不说断言, 先来看下JMeter官方给出断言(Assertion)的定义, 用于检查测试中得到的响应数据等是否符合预期,用以保证测试过程中的数据交互与预期一致. 使用断言的目的: 在request的返回层面增加一层判断机制, 因为request成功了,并不代表结果一定正确.一个Sampler可以添加多个不同形式的断言,根据你的检查需求来添加相应的断言,当Sampler下所有的断言都通过了, 那才算request成功. 那么问题来了, 要判断的…
介绍下性能测试很重要的一个知识点---关联, 很多时候程序会在上一个请求随机生成一串字符串, 作为下一个请求的入参验证点, 其实就是动态的入参, 这个时候就需要用到关联, 常用的关联技术就是正则表达式, 有时候如果是HTML, 可以使用xpath去匹配. 1. 正则, Add--> Post Processors--> Regular Expression Extractor, 具体的正则匹配的规则在这里不详细说了, 网上随便找一个网址都有 2. xpath, Add--> Post P…
一.Jmeter介绍 (一)Jmeter简介 Apache JMeter 是 Apache 组织的开放源代码项目,是一个纯 Java 桌面应用,用于压力测试和性能测试.它最初被设计用于 Web 应用测试但后来扩展到其它测试领域. (二)Jmeter功能 能够对 HTTP 和 FTP 服务器进行压力和性能测试, 也可以对任何数据库进行同样的测试(通过 JDBC). 完全的可移植性和 100% 纯 java. 完全 Swing(Java 设计的 GUI 工具包)和轻量组件支持. 完全多线程 框架允许…
Shell grep正则匹配中文 测试文本 demo_exe.c,内容如下,需要注意保存的编码格式,对输出到终端有影响: 我们中文操作系统ASNI默认是GBK的. #include<stdio.h> #include<stdlib.h> #include <string.h> #include <errno.h> #include <locale.h> #include <dlfcn.h> /* * export LD_LIBRARY…
·Jmeter脚本增强·性能测试的脚本增强技术:参数化.关联.事务.检查点.思考时间和集合点. ·参数化:在Jmeter中,实现参数化的方式很多.本质上来说,参数化的实现方式有两种:·文件方式:一般建议通过配置元件--CSV DATA SET CONFIG组件来实现.·函数方式:一般通过调用Jmeter内置的.第三方插件.自定义的函数来实现.一般通过函数助手来生成调用的字符串. ·调用方式:在jmeter中,任何鼠标点击可以输入的地方(输入字符串),都可以实现参数化操作,在Jmeter中,参数.…
1.jmeter——参数化 三种方式: ${变量名} 1.1用户定义的变量 比如注册,登录都得用到手机号码,那就把手机号码自定义为变量 1)添加一个线程组--注册.登录HTTP请求--察看结果树--用户定义的变量(http请求步骤见上一篇随笔https://www.cnblogs.com/liyongmei/p/11044466.html) 2)添加用户定义的变量 3)引用用户定义的变量,格式为:${变量名} 4)察看结果树--点击运行 1.2配置文件CSV Data Set Config(如果…
前言 如何实现循环读取数据库的用户信息,并传递到下一个登录请求呢,下面我们一起来学习吧!在之前我们已经学会了利用JMeter连接数据库了,具体操作可以看我之前的随笔JMeter接口测试-JDBC测试 一:添加jdbc Request 二:添加ForEach控制器(右键线程组-->逻辑控制器-->ForEach控制器) (1)输入变量的前缀:mobilephone: 从jdbc request设置的变量得知,我们要取的值为mobilephone_1.mobilephone_2.mobilepho…
10 jmeter之动态关联   jmeter中关联是通过之前请求的后置处理器实现的,具体有两种方式:XPath Extractor(一般xml的时候用的多)和正则表达式提取器. 以webtours登录为例进行演示login.jmx 1.Web Tours开启关联.注册账号在开始菜单找到并点击Start HP Web Tours Server(或者在本机安装loadRunner的路径下找到\HP\LoadRunner\WebToursStartServer.bat,双击运行).在开始菜单找到并点…
任何复杂的正则表达式都是由简单的子表达式组成的,要想写出复杂的正则来,一方面需要有化繁为简的功底,另外一方面,我们需要从正则引擎的角度去思考问题.关于正则引擎的原理,推荐<Mastering Regular Expression>中文名叫<精通正则表达式>.挺不错的一本书. OK,先确定我们要解决的问题--从一段Html文本中找出特定id的标签的innerHTML. 这里面最大的难点就是,Html标签是支持嵌套的,怎么能够找到指定标签相对应的闭合标签呢? 我们可以这样想,先匹配最前…
这里不多作解释了,只要提供方法,如果想了解正则匹配,就去百度. 第一条是,匹配出所有的隐藏输入域 $patern = "/<input(.*?)type=\"hidden\"(.*?)name=\"(.*?)\"(.*?)value=\"(.*?)\"(.*?)>/im"; if(preg_match_all($patern,$content,$hidden_match)){ for($i=0;$i<coun…
应用实例 1 /** 将段落中的 \n 转换为 <p></p>, 规范存储 */ 2 function formatParagraphForStore(val) { 3 var formatText = ""; 4 var list = val.split('\n'); 5 if (list.length == 0) { 6 return val; 7 } 8 for (var i = 0; i < list.length; i++) { 9 format…
这里给大家详细讲解一下一个匹配IP地址的正则表达式, 有关正则方面的知识,会在详细的讲解中提到. 在讲解之前,我先给大家介绍一下,ip地址的生成规则. IP地址,是由32位数字二进制转为四个十进制的字符串组成. 怎么转化?下面讲解: 二进制:11111111111111111111111111111111 分为四部分:11111111.11111111.11111111.11111111 转化:2^7+2^6+2^5+2^4+2^3+2^2+2^1+2^0=255 转为十进制范围:0~255.0…
正则匹配中 ^ $ 和 \b 的区别     ^和$分别代表字符串的开始和结束,因此^\d$只能匹配包含一个数字的字符串\b代表单词边界,其前后必须是不同类型的字符,可以组成单词的字符为一种类型,不可组成单词的字符(包括字符串的开始和结束)为另一种类型因此\b\d\b可以匹配"%3%"中的3,但不能匹配"23"中的任意一个数字…
我使用正则表达式来匹配中问的时候,出现了无法匹配的问题,问题如下 PCRE does not support \L, \l, \N{name}, \U, or \u at offset 2 我原来的匹配公式是: /[\u4e00-\x9fa5]/ 然后我在网上找的,下面的解决方案 解决后的匹配方案是: /^[\x{4e00}-\x{9fa5}]+$/u 下面是具体文章 在做表单验证时对用户姓名的验证规则有以下要求 要求:输入的内容需要满足的条件是:   1.允许输入字符:数字(0-9).字母(a…
php中变量的声明? 由于php声明变量的时候, 不支持使用 var关键字, 又不能直接写一个变量名字, 孤零零的放在那里, 所以, 在php中声明变量的方式, 同时也是给变量初始化的形式, 即: "$var = 0; $var2 = array(); " markdown中, 如何写 "$": 直接使用$, 会被表示成 "( )", 又不支持转义, 那么就是用 引号来表示$ : "$" subject: 的读音 我们就读成这…
摘要: 最近做的项目需要测试很多接口,上网查一查,发现完整讲述接口测试的资料太少,所以最近自己做完这个项目,把测试的东西整理一下和大家分享一下,希望对看到的人有所帮助     一.测试需求描述 1. 本次测试的接口为http服务端接口 2. 接口的主要分成两类,一类提供给查询功能接口,一类提供保存数据功能接口,这里我们举例2个保存数据的接口,因为这两个接口有关联性,比较有代表性: 3.接口描述: 保存信用卡账户信息接口: 传入参数: args={ "clientNo":"43…
要使用正则匹配任意字符的话,通常有以下几种方法,这里我分别对每一种方法在使用的过程中做一个总结: 第一种方式:[.\n]*? 示例 ? PHP preg_match_all('/<div class="list">[.\n]*?<\/div>/i', $content, $data); 按道理这种方式应该是可以的,但我测试发现不行,因为这里中括号里面的“.”被当作一个普通的英文句号去处理了,而不是通配符,因此这里只能匹配到包含英语句号及换行符在内的任意内容了.…
一.Jmeter接口测试步骤: 1.添加线程组…