性能测试
程序员-小枫
这个作者很懒,什么都没留下…
展开
-
性能测试JMeter工具必知必会知识系列(15): JMeter测试关系数据库
JMeter测试关系数据库15.1 JDBC连接JDBC介绍JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的JavaAPI,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。JDBC驱动类型及原理JDBC驱动类型及原理使用JDBC连接操作数据库步骤总共有7个步骤:1....原创 2020-09-10 14:20:54 · 332 阅读 · 0 评论 -
性能测试JMeter工具必知必会知识系列(14) :JMeter测试Web服务
JMeter测试Web服务14.1 Web服务简介什么是Web服务Web服务即Web Service。Web服务是一种服务导向架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作。根据W3C的定义,Web服务(Web service)应当是一个软件系统,用以支持网络间不同机器的互动操作。网络服务通常是许多应用程序接口(API)所组成的,它们透过网络,例如国际互联网(Internet)的远程服务器端,执行客户所提交服务的请求。Web服务三要素SOA...原创 2020-09-10 14:19:13 · 159 阅读 · 0 评论 -
性能测试JMeter工具快速入门知识系列(13):JMeter常用监听器
JMeter常用监听器13.1 监听器的作用监听器可以动态的监控JMeter测试执行的过程,实时查看测试结果。大部分监听器提供了查看,保存以及从文件中读取已保存测试结果的方法。默认情况下,测试结果将被存储为XML格式的文件,文件的扩展名为“.jtl”;还可存储为CSV格式的文件,提供更高效率的文件读写能力,但记录的信息不如XML格式的文件详细。通常情况下,监听器有以下5种类型:1.树(Tree)2.表(Table)3.图(Graph)4.日志(Log)5.报...原创 2020-09-10 14:15:50 · 322 阅读 · 0 评论 -
性能测试JMeter工具必知必会知识系列(12) :JMeter集合点
12.1 集合点的定义在性能测试过程中,为了真实模拟多个用户同时进行操作以度量服务器的处理能力,可以考虑同步虚拟用户以便恰好在同一时刻执行操作或发送请求。通过插入集合点可以较真实模拟多个用户并发操作。(注意:虽然通过加入集合点可以约束请求同时发送,但不能确保请求同时到达服务器,所以只能说是较真实模拟并发)在JMeter中可以通过同步定时器来设置集合点。12.2 同步定时器Synchronizing Timer的目的是阻塞线程,直到N个线程被阻塞,然后它们全部被释放。因此,S...原创 2020-09-10 14:11:11 · 455 阅读 · 1 评论 -
性能测试JMeter工具快速入门知识系列(11):JMeter事务
11.1 事务的定义在做性能测试的时候,有些操作或请求是逻辑上依赖相关的一个整体,不可分割;或者是为了方便度量我们关注的一组操作或请求的性能,将要将其看做一个整体。基于这些原因,我们把这些操作或请求放在一个事务控制器下。事务控制类似于简单控制器,不仅提供了元素分组的功能;除此之外,还可以度量其包含的所有测试元素执行的响应时间。只有当事务控制器所有的取样器都成功时,事务控制器才成功。11.2 事务控制器使用事务控制器的典型场合:1.当要度量生成某个页面的整体性能时,...原创 2020-09-10 14:06:44 · 254 阅读 · 0 评论 -
性能测试JMeter工具必知必会知识系列(10): JMeter关联之JSON提取器
10.1 JSON提取器若响应数据格式为JSON,也可以用JSON提取器来提取需要关联的数据。配置项Apply to:与正在表达式提取器中用法相同,不再赘述。Names of created variables:将JSONPath提取的内容保存到指定变量,多个变量之间用“;”分隔(注意不是用,号)。JSON Path expressions:用于提取响应数据的JSONPath表达式,多个JSONPath表达式之间用“;”分隔(注意不是用,号)。Match N...原创 2020-09-09 18:58:40 · 174 阅读 · 0 评论 -
性能测试JMeter工具快速入门知识系列(9):JMeter关联之正则表达式提取器
9.1 关联的定义在客户端与服务器通信过程中,多个请求/响应间的数据会有相互依赖的关系。比如上一个请求返回的某些响应数据在后续的请求中需要用到。下面是一些典型的例子:1)比如第一次访问网站获取的session id在后续的请求都会将其传给网站;2)服务器生成token返回给用户,在后续的请求中要带上token;3)根据条件查询某记录,在查询结果集中选择记录进行操作(比如删除)…但是有些通信协议是无状态的,不存在上下文相关性。多个请求/响应之间的数据不能直接进行传递;并且...原创 2020-09-09 18:57:35 · 247 阅读 · 0 评论 -
性能测试JMeter工具快速入门知识系列(8):JMeter断言之JSON断言
若服务器返回的Response Body为JSON格式的数据,使用JSON断言来判断测试结果是较好的选择。首先需要根据JSON Path从返回的JSON数据中提取需要判断的实际结果,再设置预期结果,两者进行比较得出断言结果。下面首先介绍JSON与JSON Path相关的基础知识。8.1 JSON与JSONPath什么是JSONJSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式。JSON容易理解,便于阅读和...原创 2020-09-09 18:55:53 · 338 阅读 · 0 评论 -
性能测试JMeter工具必知必会知识系列(7): JMeter断言之响应断言
7.1 断言的定义断言用于验证取样器请求或对应的响应数据是否返回了期望的结果。可以是看成验证测试是否预期的方法。对于接口测试与性能测试来说,就是测试Request/Response,断言即可以针对Request进行,也可以针对Response进行。但大部分是对Response做断言。JMeter常见的断言元件如下:1.响应断言2.JSON Assertion7.2 响应断言配置项Apply to:(免费领取Python自动化学习资料 工具,面试宝典面试技巧,加QQ...原创 2020-09-09 18:54:30 · 534 阅读 · 0 评论 -
性能测试JMeter工具快速入门知识系列(6):JMeter参数化之__CSVRead()
JMeter快速入门知识系列(6)JMeter参数化之__CSVRead()使用文件别名(免费领取Python自动化学习资料 工具,面试宝典面试技巧,加QQ群,1140267353,群内还会大佬技术交流)从不同数据文件读取数据可以设置不同的线程读取不同的数据文件。假设有n个线程,准备对应好的n个csv文件: testdata1.csv,testdata2.csv,… ,testdatan.csv线程1读取testdata1.csv中的数据,线程2读取testda...原创 2020-09-09 18:53:13 · 173 阅读 · 0 评论 -
性能测试JMeter工具必知必会知识系列(5): JMeter参数化之CSV Data Set Config
JMeter必知必会系列(5) JMeter参数化之CSV Data Set Config 5.1 参数化的定义 所谓参数化,就是将客户端发送给服务器处理的数据预先保存到一个参数中的过程。 一般来说,对于功能测试,当用不同的数据测试相同的功能时,我们可以使用参数化来精简测试;对于性能测试,为了 真实模拟多个用户的操作行为或应对系统对多个用户同时操作的特殊限制(比如数据唯一性要求),需要使用参数化来 解决这些问题。 JMeter提供了非常多的参数...原创 2020-09-09 18:51:34 · 282 阅读 · 0 评论 -
性能测试JMeter工具快速入门知识系列(4):JMeter测试HTTP POST请求
4.1 HTTP Request(POST)参见JMeter系列(3) 3.2章节内容,不再赘述。4.2 应用案例测试案例说明1.接口说明:加入商品到购物车接口。2.请求方式:HTTP POST请求。3.接口地址:/ecshop/upload/flow.php?step=add_to_cart4.请求参数:1)请求参数:(免费领取Python自动化学习资料 工具,面试宝典面试技巧,加QQ群,1140267353,群内还会大佬技术交流)2)请...原创 2020-09-09 18:49:54 · 450 阅读 · 0 评论 -
性能测试JMeter工具快速入门知识系列3:JMeter测试HTTP GET请求
3.1 HTTP协议简介超文本传输协议(英语:HyperText Transfer Protocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的RFC,其中最著名的是1999年6月公布的RFC 2616,定义了HTTP...原创 2020-09-09 18:48:05 · 265 阅读 · 0 评论 -
测试工程师做性能测试JMeter工具必知必会知识系列2:JMeter安装部署
2.1 JMeter环境需求JMeter是纯Java应用程序,因此有Java运行环境的要求。不同版本JMeter对Java版本的要求不尽相同。比如:JMeter3.3仅支持Java 8JMeter4.0要求Java 8+(表示大于等于Java 8版本)JMeter5.1.1要求Java 8+Java版本一般指的是JDK版本,这两个概念可以无差别对待。目前JDK可以分为Oracle JDK与Open JDK两类,其中Open JDK是Oracle JDK的开源免费版。从201...原创 2020-09-09 18:44:23 · 166 阅读 · 0 评论 -
测试工程师做性能测试JMeter工具必知必会知识系列1:JMeter基础
1 JMeter基础1.1 JMeter概述JMeter简介Apache JMeter™是Apache组织开发的一款开源软件,是典型的纯Java开发的应用程序,可以在不同平台比如Windows、Linux或macOS系统上进行软件测试。JMeter主要用于应用程序的功能负载测试以度量软件的性能,也可以用于其他类型的测试比如接口测试,API测试等。JMeter版本JMeter不同的版本,功能有所差异,对JDK的支持也不尽相同。新的JMeter版本有些功能会逐渐改进完善,还会...原创 2020-09-09 18:41:13 · 214 阅读 · 0 评论 -
JavaScript 测试系列实战(一):使用 Jest 和 Enzyme 测试 React 组件
你或许早已经知道“单元测试”“端到端测试”这些名词,但从未真正付诸实践。在这一系列实战教程中,我们将手把手带你掌握 Jest、Enzyme、Cypress 等测试利器,帮助我们从 bug 的沼泽中挣脱出来,成为一个无往不利的高阶前端开发者!本篇教程是 JavaScript 测试系列实战 的第一篇教程,首先介绍了测试的类型,然后主要通过一个 React 项目教会你如何使用 Jest 编写第一个测试,然后使用 Enzyme 对 React 组件进行浅层渲染,以方便对不同层次的组件进行细粒度测试,当学习了这篇原创 2020-08-31 19:07:04 · 421 阅读 · 0 评论 -
软件测试系列——冒烟测试(Smoke Test,ST)
1.核心冒烟测试就是完成一个新版本的开发后,对该版本最基本的功能进行测试,保证基本的功能和流程能走通。 如果不通过,则打回开发那边重新开发; 如果通过测试,才会进行下一步的测试(功能测试,集成测试,系统测试等等)。简化:门槛测试,一个开关而不是一个阶段。目的:版本验证测试BVT(Build Verification Testing)。时间:开发转测试,历时半至一个小时,很短。对象:需求覆盖,主功能路径。优点:节省测试时间,防止build失败。缺点:覆盖率还是比较低。.原创 2020-08-29 20:27:56 · 21578 阅读 · 1 评论 -
JUnit 5和Selenium基础(三)
在这一部分教程中,将介绍JUnit 5的其他功能,这些功能将通过并行运行测试,配置测试顺序和创建参数化测试来帮助减少测试的执行时间。还将介绍如何利用Selenium Jupiter功能,例如通过系统属性进行测试执行配置,单个浏览器会话测试以加快测试执行速度或捕获测试中的屏幕截图,AssertJ库的基本Demo。使用JUnit 5并行测试执行JUnit 5带有内置的并行测试执行支持。下面的命令将并行运行TodoMvcTests的测试方法:./gradlew clean test --test.原创 2020-08-26 19:16:03 · 212 阅读 · 0 评论 -
JUnit 5和Selenium基础(二)
使用Selenium内置的PageFactory实现页面对象模式 JUnit 5和Selenium基础(一) 在这一部分中,将通过Selenium的内置PageFactory支持类来介绍Page Object模式的实现。PageFactory提供一种机制来初始化任何声明WebElement或List<WebElement>带有@FindBy注释的字段的Page Object。由于不可描述的原因,我已经将测试网页打包,需要的请留意文末信息。介绍页面对象模式页面对象模式的目.原创 2020-08-26 19:10:10 · 187 阅读 · 0 评论 -
开源测试服务
多线程多线程处理用例参数和执行用例场景下,线程池的引入。这个首先解决了多用例运行的耗时太多的问题,其次也解决了每次处理任务新建线程对于性能的消耗。具体的方案就是新建一个全局的线程池,然后把所有多线程任务包装成一个线程对象,通过将任务丢到线程池中,然后通过CountDownLatch这个类实现等待执行结束,然后进行下一步操作。具体可参考:-CountDownLatch类在性能测试中应用。核心代码如下:线程池package com.okay.family.common.threadpoo.原创 2020-08-21 21:06:25 · 121 阅读 · 0 评论 -
挑战全网最全面的性能测试学习笔记(强力建议收藏!!!)
快照测试实际上,您想要确保自己的UI不会有意外的改变,快照测试是非常有用的工具。一个典型的快照测试用例将呈现一个UI组件,拍摄一个快照,然后将其与存储在测试中的参考快照文件进行比较。如果两个快照不匹配,则测试将失败:更改是意外的,或者参考快照需要更新为UI组件的新版本。用Jest进行快照测试测试React组件时可以采用类似的方法。您可以使用测试渲染器快速为React树生成可序列化的值,而不是渲染需要构建整个应用程序的图形UI。考虑以下针对链接组件的示例测试:import React原创 2020-08-18 21:04:48 · 338 阅读 · 0 评论 -
快速测试 API 接口的新技能
在日常开发过程中,我们或多或少都涉及到 API 接口的测试。例如,有的小伙伴使用 Chrome 的 Postman 插件,或者使用火狐的 restclient 等工具。事实上,这些工具是测试 API 接口非常有效的方式之一,笔者之前也一直使用 Postman 完成 API 接口的测试工作。今天,小枫推荐另外一个非常好用的小工具,能够帮助读者快速测试 API 接口。这个工具就是 IDEA 的 Editor REST Client。IDEA 的 Editor REST Client 在 IntelliJ.原创 2020-08-15 22:07:41 · 210 阅读 · 0 评论 -
从一次性能优化看Vue的一个“feature”
使用过 Vue 的人都知道,Vue 数据驱动视图是基于getter和setter的实现的依赖收集,实现数据变动精准更新视图,然后修改 DOM 节点,但是实际上真的那么“精准”吗?背景知识首先,我们都知道Vue或者React得以高效更新的一个核心是使用了virtual dom(下面称vdom),当有数据变动的时候,通过对组件新旧vdom的diff操作,计算出需要实际修改的 DOM 节点然后进行增删改操作。从这可以知道,diff的准确性和性能,是整体更新性能的一个关键环节。而...原创 2020-08-15 20:45:29 · 892 阅读 · 0 评论 -
拼多多面试官没想到我会统一接口测试的功能、自动化和性能测试用例,人直接愣了
服务端的测试,大多数内容都围绕着接口展开。对于接口测试,无非也是功能、自动化、性能测试为主,偶然想到一个问题,如果能写一个用例,在功能、自动化、性能三者的测试场景中重复使用,肯定能省去非常多的时间。总体思路跟之前的接口和性能框架一样,通过总的测试项目中把接口功能封装好,留出来测试参数。功能测试就写方法调用然后人肉检查,自动化的话把接口响应拿出来,然后验证各种数据,性能直接使用性能框架直接调用该方法即可。花了点时间,做了一个Demo,分享给大家。这是一个简易的接口请求方法,其中main方法里面是功原创 2020-08-14 21:14:05 · 697 阅读 · 0 评论 -
自动化需要避免这些坑,工作效率杠杠的上升(下)
H:维护测试设计测试设计是将测试目标转换为实际测试用例和条件的过程。作为一个初学者,我不了解测试设计的重要性,这可能是我作为自动化测试员的最大错误。随时进行任何测试都是荒谬的想法。为了有效地进行测试,测试人员需要设计测试,然后对它们进行编码。设计测试有助于创建有意义的测试,并使整个测试过程非常有效。I:避免误报当测试结果错误地表明测试通过但实际上没有通过时,就会出现误报。反之亦然。在测试人员中盲目相信测试报告是一个非常普遍的错误。例如,假设您正在使用使用不同测试用例编写的测试脚本来测试.原创 2020-08-13 18:49:13 · 118 阅读 · 0 评论 -
腾讯面试官:你有做过单点登录性能测试方案? 收到offer的那一刻真爽。
项目登录系统升级,改为单点登录:英文全称Single Sign On。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。之前有的统一登录方式被废弃,由于单点登录比较之前的登录系统复杂很多。之前的方案请求一个接口即可获得用户校验令牌。先分享一下单点登录的技术方案的时序图:单点登录时序图然后发一下我梳理的前端调用接口的时序图:(1140267353)一起成长一起加油的伙伴群!软件测试,与你同行!单点登录时序图性能测试分成了两个场景:性能压测场景分析:跳原创 2020-08-12 15:07:06 · 726 阅读 · 0 评论 -
阿里HR: 你会 Android 实现侧滑菜单-design吗? CN看了,原来这么简单呀!
google提供的Design开发包里,有很多实用好看的新控件,这里介绍下使用DrawerLayout+NavigationView实现侧滑菜单效果要使用Design包,只要在项目的build.gradle中添加下依赖就好(记得更新SDK到最新版本)dependencies { compile 'com.android.support:design:23.4.0'}使用起来很简单,我们基本上只需要写写布局就好了布局文件<?xml version="1.0" enco原创 2020-08-10 14:31:26 · 1937 阅读 · 1 评论 -
Selenium自动化:有代码测试与无代码测试
大多数测试人员认为Selenium是满足其测试自动化需求的自动化框架。作为全球测试人员使用的开放源框架,Selenium无疑是测试人员适应日趋敏捷的公司的一种好方法。实际上,Selenium仍然被认为是最普遍的开源代码,已在世界范围内采用,并且用户群体不断增长。但是许多质量检查团队发现,尽管Selenium是开源的,但在实际编写,执行和维护测试时,使用Selenium作为基于代码的测试框架还有其他隐藏的成本。这导致测试人员考虑使用其他工具作为辅助选项,尤其是无代码测试自动化工具,这些工具都可以利用Sel原创 2020-08-08 21:25:23 · 654 阅读 · 0 评论 -
B站面试官:你对性能测试框架理解多少?
之前写过一个性能测试框架,只是针对单一的HTTP接口的测试,对于业务接口和非HTTP接口还无非适配,刚好前端时间工作中用到了,就更新了自己的测试框架,这次不再以请求为基础,而是以方法为基础,这样就可以避免了单一性,有一个base类,然后其他的各种单一性请求在单独写一个适配类就好了,如果只是临时用,直接重新实现base即可。下面分享:package com.fun.frame.thead;import com.fun.frame.SourceCode;import com.fun.frame.excu原创 2020-08-07 22:00:25 · 264 阅读 · 0 评论 -
实例入门 Vue.js 单元测试(二)
II. Vue.js 中的单元测试工具2.1 Jest不同于"传统的"(其实也没出现几年)的 jasmine / Mocha / Chai 等前端测试框架;Jest的使用更简单(也许就是这个单词的本意“俏皮话、玩笑话”的意思),并且提供了更高的集成度、更丰富的功能。Jest 是一个由 Facebook 开发的测试运行器,相对其他测试框架,其特点就是就是内置了常用的测试工具,比如自带断言、测试覆盖率工具,实现了开箱即用。此外, Jest 的测试用例是并行执行的,而且只执行发生改变的文件所对应的原创 2020-08-06 16:56:38 · 441 阅读 · 0 评论 -
测试人生开启 Jmeter 数据库测试 + web测试(详细干货,强力建议收藏!)
前言最近要用到Jmeter做负载测试,于是学习了一下Jmeter做数据库并发测试和web测试,这里做一个记录总结。文章面向新人,高手请无视。Jmeter是什么JMeter也称为“Apache JMeter”,它是一个开源的,100%基于Java的应用程序,带有图形界面(虽然比较丑)。 它旨在分析和衡量Web应用程序和各种服务的性能和负载功能行为。JMeter主要用于测试Web应用程序或FTP应用程序,但目前,它适用于功能测试,JDBC数据库连接,Web服务,通用TCP连接和OS本机进程。..原创 2020-08-05 18:40:56 · 276 阅读 · 0 评论 -
Linux中Chrome无界模式动态代理IP的配置(Selenium)
Python 爬虫设置代理的方式有很多, 比如给urlib、request、selenium等方式设置代理,这部分的细节代码在网上一搜一大堆。那么问题来了,比如你要抓取淘宝或模拟验证码操作登录,是不是要采用这种方式(Selenium + Chromedriver + Chrome)实现呢?以上就是结合(Selenium + Chromedriver + Chrome)实现的淘宝商品数据爬取,在该实例代码中,并没有设置代理ip的部分代码, 说明当爬取超过一定次数之后,将无法访问淘宝,也就是..原创 2020-08-01 21:37:24 · 8061 阅读 · 0 评论 -
跟女票说Python异步编程的基本原理,她说懂了
一些例子第一个例子假设你需要用电饭煲煮饭,用洗衣机洗衣服,给朋友打电话让他过来吃饭。其中,电饭煲需要30分钟才能把饭煮好,洗衣机需要40分钟才能把衣服洗好,朋友需要50分钟才能到你家。那么,是不是你需要在这三件事情上面消耗30 + 40 + 50 = 120分钟?实际上,在现实中你只需要消耗50分钟就可以了————先给朋友打电话,让他现在出门 把衣服放进洗衣机并打开电源 把米淘洗干净,放进电饭煲并打开电源然后,你要做的就是等待。第二个例子现在,你需要完成语文试卷,数学试卷和英语原创 2020-07-31 20:56:14 · 141 阅读 · 0 评论 -
为什么你需要少看垃圾博客以及如何在Python里精确地四舍五入
今天又有一个Python初学者被中文技术博客中的垃圾文章给误导了。这位初学者的问题是:在Python中,如何精确地进行浮点数的四舍五入,保留两位小数?如果你在Google或者百度上搜索,你会发现大量的来自CSDN、百家号、头条号或者简书上面的文章讲到这一点,但是他们的说法无外乎下面几种:连例子都不举的垃圾文章如下图所示,懒得吐槽。使用round函数他们举的例子为:>>> round(1.234, 2)1.23复制代码这种文章,他只演示.原创 2020-07-31 20:42:34 · 170 阅读 · 0 评论 -
阿里十年的性能测试学习笔记,分享给还在不知怎样学习的你!(一)
目录:性能测试概念性能测试针对系统的性能指标,建立性能测试模型,制定性能测试方案,制定监控策略,在场景条件之下执行性能场景,分析判断性能瓶颈并调优,最终得出性能结果来评估系统的性能指标是否满足既定值。性能指标指标包括:时间指标、容量指标和资源利用率指标 时间指标指的是接口响应时间、业务响应时间 容量指标指的是接口容量、业务容量 资源利用率指标指的是操作系统(CPU、IO、Mem、Disk、Network、System)、JVM等 指标的由来:可以是根据业务场景,同团队成原创 2020-07-30 15:14:32 · 277 阅读 · 0 评论 -
阿里十年的性能测试学习笔记,分享给还在不知怎样学习的你!(二)
目录:性能分析思路总体思路 瓶颈的精准判断 线程递增的策略 性能衰减的过程 响应时间的拆分 构建分析决策树 场景的比对 瓶颈的精准判断 TPS曲线 假设线程是等比例递增的,对于上面那个图,我们可以看到在第二阶梯已经出现性能瓶颈了,因为理论来说第二阶梯的TPS应该是第一阶梯的两倍,然而实际并不是,所以出现了性能瓶颈 TPS的意义(从TPS曲线得到的信息) 有没有瓶颈:其实准确说所有的系统都有性能瓶颈,只看我们在哪个量级在做性能测试 了。 瓶颈和压力有原创 2020-07-30 15:14:37 · 203 阅读 · 0 评论