wespten
悦分享
网上搜索资料的朋友,一定都会有这样一个感受,那就是知识点有时太过零散,有时又存在误区,有时又太过简短,而有时又缺乏深度,一个系统又详细的分享小天地,为真正想去学习或了解某些事情的朋友,持续提供有价值且有深度的内容。
展开
-
大厂高级测试开发工程师面试题(750道)整理汇总
了发现程序中的错误而执行程序的过程。首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助项目管理者发现当前所采用的软件过程的缺陷,以便改进。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。详细而严谨的可靠性增长模型可以证明这一点。测试的目的是按照用户所需软件的质量,检查开发软件过程出现的bug,使得开发人员及时修改,可以避免在开发结束的时候发现软件存在质量问题,避免公司不必要的损失原创 2023-03-09 19:16:42 · 903 阅读 · 0 评论 -
360道软件测试面试必问点与经典笔试题汇总
局域网(Local Area Network,LAN)是一个局部范围的计算机组,一般覆盖范围比较有限,比如一座楼房或一个单位内部的网络。局域网内的通信,传输距离短,传输的速率比较高。比如学校的机房就是一个局域网,里面有几百几千台计算机,当机房无法上外网时,内部的计算机之间仍可以通信。广域网(Wide Area Network,WAN)指的是连接不同地区局域网或城域网计算机通信的远程网,距离远、范围大。原创 2023-02-28 19:13:59 · 836 阅读 · 0 评论 -
Python Web自动化测试开发环境搭建(附安装包与虚拟机环境)
虚拟机环境:Web自动化测试环境:官网下载:Download Python | Python.org安装注意事项:选择安装包管理工具:默认全都安装。建议全勾选,选择安装路径:开始安装:安装成功:测试: 进入jetbrains官网:JetBrains: Essential tools for software developers and teams点击此处下载:下载最新版本: 下载需要的版本(非最新版本):下载完成后点击打开,下一步:选择需要安装的位置进行安装:全部勾选并点击下一步:点击安装:安装后重启,完原创 2024-12-01 14:23:09 · 106 阅读 · 0 评论 -
自动化平台MeterSphere实战(附VMWware安装包及虚拟机环境)
MeterSphere 是一站式开源持续测试平台,涵盖测试跟踪、接口测试、UI 测试和性能测试等,全面兼容 JMeter、Selenium 等主流开源标准,有效助力开发和测试团队在线共享协作,实现端到端的测试管理跟踪可视化、自动化测试、性能测试及融入持续交付 DevOps 体系,并充分利用云弹性进行高度可扩展的自动化测试,从而加速高质量的软件交付,推动中国测试行业整体效率的提升。开源:基于开源、兼容开源,按月发布新版本、日均下载安装超过100次、被大量用户验证。一站式。原创 2024-11-25 07:45:54 · 160 阅读 · 0 评论 -
RobotFramework搭建实战(附VMWare安装包及RF虚拟机环境)
Robot Framework 的架构是一个通用的验收测试和验收测试驱动开发的自动化测试框架(ATDD),它 具有易于使用的表格来组织测试过程和测试数据。Robot Framework使用关键字驱动的测试方法。对于上面的例子来说,open browser 、input text、click button 和 close browser,都是“关键 字”,这些关键字由 robotframework-selenium2library 类库所提供。当然,我们也可以自定义关键字。原创 2024-11-25 08:39:59 · 123 阅读 · 0 评论 -
全栈性能测试企业级实战
全栈工程师能够完成产品设计,技术选型,架构落地;可以开发前端和后台程序,并部署到生产环境。一人多用,省成本,完全没有多人配合时的工作推诿和沟通不畅等情况发生,这是创业公司找工程师时,全栈工程师是首选的原因。大互联网公司的系统平台更复杂,需要更多的角色通力协作完成任务。那是不是全栈工程师在大企业就没有存在的必要了呢?当然有必要。大企业需要从全局考虑来做顶层设计,对于做顶层设计的人来说知识面宽尤为重要。原创 2022-11-02 11:35:37 · 1539 阅读 · 0 评论 -
系统整体架构性能优化企业级实战
目前企业级应用系统的开发多数会使用Java语言,并且使用Oracle J2EE(收购Sun后的)架构。Java程序运行在HotSpot VM(就是我们常说的JVM,也包括OpenJDK)之上,通过对JVM的监控,我们可以度量Java程序效率,分析程序性能问题。对于JVM的监控,并不需要我们借助第三方工具,JDK自带的监控命令就已经很强大,这些工具随JDK一起发布,随时可以用它们监控JVM,而且这些工具也比较好用,下面讲解几个常用的监控命令和一个可视化监控工具(JvisualVM)。对于Java的应用来讲,J原创 2023-12-29 07:04:58 · 1105 阅读 · 0 评论 -
安卓APP性能测试实战
图中可以看到每个时间点的内存数据消耗详情,所示界面中选中某个时间点,再单击鼠标,即可查看到当前时间点下的内存实例对象详情列表,在列表中列出了实例对象的Allocations(对象实例分配的内存个数)、Deallocations(对象实例回收的内存个数)、Total Count(对象实例的数量)、Shallow Size(所有对象实例持久的内存大小)等分析数据。使用浏览器打开跟踪报告,如下图所示,报告中显示了非常多的图形数据来辅助进行性能分析定位,通过下拉右侧的滚动条,还可以获取到更多的图形数据。原创 2023-12-29 07:13:13 · 1003 阅读 · 0 评论 -
Web中间件与应用中间件性能分析与调优实战
在一般情况下,Web中间件最大的作用就是负责对请求进行分发,也就是我们常说的起到负载均衡的作用。当然负载均衡只是Nginx的作用之一,Nginx常见的负载均衡策略一般包括轮询、指定权重(weight)、ip_hash、least_conn、fair、url_hash等六种。其中默认执行的策略为轮询,fair和url_hash属于第三方策略,这两种策略不是Nginx自带支持的策略,需要安装第三方的插件来辅助支持。原创 2023-12-29 07:08:04 · 1141 阅读 · 0 评论 -
WEB前端性能调优
使用浏览器缓存策略的网站在更新静态资源时,应采用逐量更新的方法,比如需要更新10个图标文件,不宜把10个文件一次全部更新,而是应该一个文件一个文件逐步更新,并有一定的间隔时间,以免用户浏览器忽然大量缓存失效,集中更新缓存,造成服务器负载骤增、网络堵塞的情况。由于CDN部署在网络运营商的机房,这些运营商又是终端用户的网络服务提供商,因此用户请求路由的第一跳就到达了CDN服务器,当CDN中存在浏览器请求的资源时,从CDN直接返回给浏览器,最短路径返回响应,加快用户访问速度,减少数据中心负载压力。...原创 2022-07-23 14:39:29 · 296 阅读 · 0 评论 -
前端性能测试实战
Web应用是利用浏览器(手机中的浏览器)进行访问,运行在浏览器上,不再是直接运行在操作系统上,资源一般在网络上(浏览器可以缓存),Web应用的性能除了受到后台响应的影响,也受页面渲染影响。当然,前端程序不是只有运行在浏览器中的,我们把处理用户请求,渲染响应数据的程序都叫前端。WebPageTest 是在线前端性能分析网站,除了可以分析前端性能,也可以模拟移动设备上的性能,还可以做云测试(利用分布在全球的资源来访问用户的页面,帮助用户监听页面在当地的性能表现,以决定是否要在当地增加服务器来提高性能)。原创 2023-12-29 07:11:28 · 901 阅读 · 0 评论 -
前端性能调优
腾讯出品的性能工具,无需root或者越狱。PerfDog支持移动平台所有应用程序(游戏、APP应用、浏览器、小程序、小游戏、H5、后台系统进程等)。安装,使用教程等参考官网详细介绍一般关注①pss内存(实际使用的物理内存)的大小(ios和andriod机器一般都是分三档机器,每档机器的pss内存标准不一样,标准数值随着硬件设备提升也在逐渐而变高)。②内存泄漏(内存泄漏后,内存越来越大,可能会因为申请分配内存越来越慢导致的卡顿,或者crash等)。...原创 2022-07-23 14:32:05 · 485 阅读 · 0 评论 -
Java面试题合集
实现通过类的权限定名获取该类的二进制字节流的代码块叫做类加载器。主要有一下四种类加载器:原创 2024-05-21 08:02:54 · 105 阅读 · 0 评论 -
Java应用程序性能分析与调优实践
JVM是Java Virtual Machine(Java虚拟机)的英文简写,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java编程语言在引入了Java虚拟机后,使得Java应用程序可以在不同操作系统平台上运行,而不需要再次重新编译。Java编程语言通过使用Java虚拟机屏蔽了与具体操作系统平台相关的信息,保证了编译后的应用程序的平台兼容性,使得Java应用程序只需编译生成在Java虚拟机上运行的目标代码(字节码),就可以在不同的操作系统上部署和运行。原创 2022-11-01 18:24:18 · 700 阅读 · 0 评论 -
Java GC性能分析与调优实战
在Thread Dump中,有一些 JVM内部的后台线程来执行,譬如垃圾回收或者低内存的检测等等任务,这些线程往往在 JVM初始化的时候就存在,如下所示:1. HotSpot VM Thread被HotSpot VM管理的内部线程为了完成内部本地操作,一般来说不需要担心它们,除非CPU很高。2. HotSpot GC Thread当使用HotSpot parallel GC,HotSpot VM默认创建一定数目的GC thread。当面对过多GC,内存泄露等问题时,这些是关键的数据。使用nati原创 2022-07-22 14:33:50 · 665 阅读 · 0 评论 -
Java Tread Dump性能分析与调优实战
CPU核心数和线程数的关系 核心数:线程数=1:1 ;使用了超线程技术后---> 1:2。CPU时间片轮转机制 又称RR调度,会导致上下文切换。什么是进程和线程 进程:程序运行资源分配的最小单位,进程内部有多个线程,会共享这个进程的资源。 线程:CPU调度的最小单位,必须依赖进程而存在。澄清并行和并发 并行:同一时刻,可以同时处理事情的能力。 并发:与单位时间相关,在单位时间内可以处理事情的能力。高并发编程的意义、好处和注意事项 好处:充分利用cpu的资源、加快用户响应的时间,程序模块化,异步原创 2023-12-29 07:55:29 · 916 阅读 · 0 评论 -
Java Thread dump 排障案例
方案*一个请求过程中多次dump。*对比多次dump文件的runnable线程,如果执行的方法有比较大变化,说明比较正常。如果在执行同一个方法,就有一些问题了。方案*使用命令top-H-ppid(pid为被测系统的进程号),找到导致cpu高的线程id。上述Top命令找到的线程id,对应着dumpthread信息中线程的nid,只不过一个是十进制,一个是十六进制。*在threaddump中,根据top命令查找的线程id,查找对应的线程堆栈信息。方案方案。...原创 2022-07-22 15:58:03 · 575 阅读 · 0 评论 -
Java应用导致CPU负载过高调优案例
综合分析得出如下结论:要获得更高、更稳定的性能,单一的Tomcat应用服务器有时会无法满足需求,因此要结合Mod_JK模块运行基于Tomcat的负载均衡系统,这样前端由Apache负责用户请求的调度,后端又多个Tomcat负责动态应用的解析操作,通过将负载均分配给多个Tomcat服务器,网站的整体性能会有一个质的提升。Tomcat底层是通过JVM运行的,JVM在操作系统中是作为一个进程存在的,而java中的所有线程在JVM进程中,但是CPU调度的是进程中的线程。两块2TB磁盘做数据盘。原创 2022-12-29 10:27:50 · 829 阅读 · 0 评论 -
java性能优化实践
避免HashMap多次进行了hash重构,扩容是一件很耗费性能的事,在默认中initialCapacity只有16,而loadFactor是 0.75,需要多大的容量,你最好能准确的估计你所需要的最佳大小,同样的Hashtable,Vectors也是一样的道理。尽量避免在经常调用的方法,循环中new对象,由于系统不仅要花费时间来创建对象,而且还要花时间对这些对象进行垃圾回收和处理,在我们可以控制的范围内,最大限度地重用对象,最好能用基本的数据类型或数组来替代对象。clone()方法不会调用任何类构造函数。原创 2019-06-29 10:47:04 · 466 阅读 · 1 评论 -
JVM性能检测工具与调优案例实战
为了验证自己的猜想,于是准备登录后台去测试下,结果在测试的过程中发现到处订单的按钮前端居然没有做点击后按钮置灰交互事件,结果按钮可以一直点,因为导出订单数据本来就非常慢,使用的人员可能发现点击后很久后页面都没反应,结果就一直点,结果就大量的请求进入到后台,堆内存产生了大量的订单对象和EXCEL对象,而且方法执行非常慢,导致这一段时间内这些对象都无法被回收,所以最终导致内存溢出。解决方式除了调整本地内存大小之外,也可以在出现此异常时进行捕获,手动触发GC(System.gc())。转载 2022-09-08 10:39:08 · 2666 阅读 · 1 评论 -
JVM垃圾收集器详解
GC是Garbage Collection,即垃圾回收。新生成的对象首先存放在生成区,当生成区满了,触发Minor GC,存活下来的对象转移到Survivor0,即FromSpace,Survivor0区满后触发执行Minor GC,存活对象移动到Suvivor1区,即ToSpace,经过多次Minor GC仍然存活的对象转移到老年代。所以老年代存储的是长期活动的对象,当老年代满了会触发Major GC。原创 2023-12-29 12:54:41 · 886 阅读 · 0 评论 -
JVM类加载过程详解
除了上面三个自带的以外,用户还能制定自己的类加载器,但是所有自定义的类加载器都应该继承自java.lang.ClassLoader。比如热部署、tomcat都会用到自定义类加载器。在java的日常应用程序开发中,类的加载几乎是由上述3种类加载器相互配合执行的,在必要时,我们还可以自定义类加载器,来定制类的加载方式。为什仫要自定义类加载器?1. 隔离加载类2. 修改类加载的方式3. 扩展加载源4. 防止源码泄露用户自定义类加载器实现步骤:原创 2023-12-29 09:57:35 · 1088 阅读 · 0 评论 -
JVM内存结构详解
Java程序在运行时,会为JVM单独划出一块内存区域,而这块内存区域又可以再次划分出一块运行时数据区,运行时数据区域大致可以分为五个部分:JVM逻辑内存模型:JDK1.8 内存模型: JVM内存会划分为堆内存和非堆内存,堆内存中也会划分为年轻代和老年代,而非堆内存则为永久代。新生代Young和老年代Old默认占比是1:3。年轻代又会分为Eden和Survivor区,Survivor也会分为FromPlace和ToPlace,Eden、FromPlace和ToPlace的默认占比为 8:1:1。内存模型要点:原创 2023-12-29 13:44:04 · 1157 阅读 · 0 评论 -
JVM虚拟机技术原理与实现
Java是Sun公司推出的Java语言和Java平台的总称,在操作系统中安装Java平台后Java应用程序即可直接运行。Java程序被编译成字节码解释执行,使Java程序与平台无关。Java是一种技术,由Java编程语言、Java类文件格式、Java虚拟机(JVM)和Java API组成。JVM是Java 技术的核心,必须在指定的机器或者设备中安装部署JVM后才能够运行Java 程序。原创 2023-01-17 07:03:39 · 568 阅读 · 0 评论 -
JVM概述与JVM常用命令
JVM是Java Virtual Machine(Java虚拟机)的缩写,简单来说JVM是用来解析和运行Java程序的。虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚拟机屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。原创 2023-12-29 09:55:52 · 950 阅读 · 0 评论 -
Flame Graphs 火焰图安装与使用
火焰图(flamegraph)是性能分析的利器,通过它可以快速定位性能瓶颈点。perf命令(performance的缩写)是Linux系统原生提供的性能分析工具,会返回CPU正在执行的函数名以及调用栈(stack)。原创 2022-07-23 15:38:55 · 651 阅读 · 0 评论 -
jmeter+influxdb+grafana压测实时监控平台搭建
然后重启jmeter,选择rocks.nt.apm.jmeter.JMeterinfluxDBBackendListenerClient,输入influxDB的host和端口,之前创建Influxdb的用户名和密码,然后保存。修改之后还是没有解决,因为用的是阿里云服务器,需要去阿里云开启对应的端口,设置端口如下图,我这里是外网访问,端口一定开放公网入方向才可以,可以是内网则需要在内网入方向下开放2003端口。使用JMeter+Influxdb+Grafana可以实现实时监控。...原创 2022-07-23 23:34:10 · 1333 阅读 · 0 评论 -
JMeter二次开发实践
ThreadGroup用来帮助我们设置负载的加载方式,ThreadGroup 继承自AbstractThreadGroup。AbstractThreadGroup暴露几个接口需要由基类实现。原创 2023-12-28 12:22:59 · 897 阅读 · 0 评论 -
JMeter使用技巧与常见问题处理详解
作为一个后置处理器,正则表达式提取器在每一个样本请求之后,仅在它的作用域内执行(使用正则表达式),提取请求的值(生成模板字符串),最后把结果存储在一个给定的变量中,用于测试计划中后续的步骤。当你想基于正在运行的线程提取一个或一组动态变化的变量时,你可以灵活地测试并调整你的正则表达式,直到你找到符合要求的结果。在之前的例子中,假设我们为/itunes/charts取样器添加了一个正则表达式提取器,将结果存储到了一个变量中,我们可以查看这个变量的值,更重要的是,如果有多个匹配结果,可以获取不同的值。原创 2023-12-28 12:25:43 · 813 阅读 · 0 评论 -
JMeter性能测试实战案例
RPC(Remote Procedure Call)俗称远程过程调用,是常用的一种高效的服务调用方式,也是性能压测时经常遇到的一种服务调用形式。常见的RPC有GRPC、Thrift、Dubbo等。这里以GRPC为例介绍在JMeter中如何添加自定义的Sample来对GRPC服务进行压测,JMeter中提供的Sample如图所示,从中可以看到并没有我们需要进行压测GRPC的Sampler。原创 2023-12-28 12:22:17 · 1380 阅读 · 0 评论 -
JMeter容器集群部署实战
整体的部署结构如图所示,可以看到有比较多的组件,但是利用K8S配置文件,可快速启动以及更新所有的组件。JMeter集群通过分布式进行部署,并且每个节点在K8S集群中都是一个Pod。Slave的Pod通过Deployment控制器进行部署,其可以进行统一的部署、更新和销毁,并且Deployment可以自如扩展Slave节点。原创 2023-12-28 12:21:07 · 1079 阅读 · 0 评论 -
JMeter分布式测试实战
当然,这个影响并不是说被测系统的性能受到了影响,例如,响应时间变大之类,而是影响了负载量的生成,例如,非GUI方式下100个线程可以产生100TPS的负载,而GUI方式下可能只产生80TPS的负载。然而,你完全可以在其他的物理机器上运行提供的Vagrant脚本来模拟更多的负载,而不用担心资源受限。如果这样JMeter产生的负载不够大,你的机器配置又不错,可以启动多个JMeter实例(在同一台机器上启动多个JMeter,每一台启动的JMeter都是一个独立的进程,端口会自动分配,不用担心端口冲突)。原创 2023-12-28 12:20:02 · 1019 阅读 · 0 评论 -
JMeter命令行压测与资源监控实战
成功与失败的请求占比,KO 指失败率,OK 指成功率。具体的测试结果数据统计,可检查哪些脚本执行失败。原创 2023-12-28 12:19:04 · 1342 阅读 · 0 评论 -
JMeter TCP取样器报文发生实战
2. SYN_RECV 服务器端回应客户端,这是三次握手中的第2个报文,这个报文同时带ACK标志(表示服务器准备好了数据通信)和SYN标志。如果TCP客户发起的请求滞留到达,此时TCP服务器会进入连接已建立状态,而TCP客户端仍为关闭状态,会导致TCP服务器的资源浪费。2. 服务器收到这个FIN,它发回一个ACK,确认序号为收到的序号加1,即报文段5,和SYN一样,一个FIN将占用一个序号;这是三次握手过程中的报文1;1. TCP客户端发送一个FIN,用户关闭客户端到服务器的数据传送,即报文段4;原创 2024-11-28 08:46:50 · 153 阅读 · 0 评论 -
JMeter企业级实战(附JMeter数据生成插件)
通常情况下,用户在成功登录后,会在登录接口中会返回token,返回的token信息会放在后续业务接口的请求头中,用来验证用户是否已登录。这里需要注意的是,仅一次控制器,是根据线程数的数量来执行的,如何我们线程组设置为2个,并且循环两次,实际上登录的接口就会执行2次。在需要观察结果的相同层级下(例如,与调试取样器同一控制器内),右键添加“监听器”(Listener) > “查看结果树”。jmeter做接口测试时,业务接口需要在登录后才能操作,需要配置全局token,进行不同接口之间的参数传递。原创 2024-11-29 07:08:47 · 91 阅读 · 0 评论 -
JMeter结合Fiddler制造测试数据实战(附Fiddler安装包)
代替,截取部分代码,例如需要提取true,整个代码较短,可全部写上,{"code":0,"msg":"success","success":(.*?也可以查看每条接口的请求数据,哪条请求数据是自己输入的登录信息,哪条就是登陆接口。若运行结果符合断言,则查看结果树处无显示,聚合报告中异常为0,若执行结果不符合断言,查看结果树处会显示错误信息,聚合报告中异常显示正确占比。点击http代理服务器的启动按钮,去火狐浏览器进行对应操作,录制完成后点击停止,筛选制到的内容,找出需要使用的复制到自己的线程组即可。原创 2024-11-28 08:34:49 · 109 阅读 · 0 评论 -
JMeter脚本开发实战
JUnit是一个Java单元测试框架,多数Java集成开发环境已经集成了JUnit作为单元测试工具,例如Eclipse。由于JUnit能够测试程序,所以我们可以利用它作为性能测试脚本进行性能测试。JUnit 4全面引入了注解,更加方便用例开发。常用的注解如下。原创 2023-12-28 12:18:03 · 907 阅读 · 0 评论 -
JMeter元件详解
向服务器发送HTTP请求时,HTTP请求取样器可以完成这个请求,此类请求取样器称为元件。正常启动JMeter即进入如图所示的工作区,JMeter工作区可以分为3个区域。区域1为菜单栏,位于最上方,下图所示为菜单快捷方式。新建测试计划;选择测试计划模板,创建一个新的测试计划;选择并打开已经存在的测试计划;保存测试计划;剪切选定的元件,如果元件是父节点,那么其子节点元件也一同被剪切;复制选定的元件及子元件;粘贴复制的元件及子元件;展开目录树;收起目录树;原创 2023-12-28 12:16:17 · 983 阅读 · 0 评论 -
JMeter快速入门
Meter 是轻量级的接口性能测试工具,同时具备一定程度的接口自动化测试能力。JMeter 支持多协议,其中较适合测试使用公有协议(如 HTTP、JDBC 等)的服务或模块,特别适合 B/S 结构的后台性能系统。JMeter 有大量第三方插件,也可以比较方便的编写适合自己使用的插件。Java 应用(依赖 JDK),可以运行在任何 Java 支持的系统上。对比 LoadRunner,JMeter 有开源、免费、使用简单、安装简便的特点。虽然功能不如 LR 完善,但是也足够支撑性能测试工作。原创 2022-11-03 13:12:36 · 1514 阅读 · 0 评论 -
JMeter性能测试工具安装及配置详解(附Java、JMeter安装包)
Apache JMeter 是Apache组织的开放源代码项目,是一个100%纯Java桌面应用,用于压力测试和性能测量。它最初被设计用于Web应用测试但后来扩展到其它测试领域。Apache JMeter可以用于对静态的和动态的资源(文件,Servlet,Perl脚本,Java对象,数据库和查询,FTP服务器或是其它资源)的性能进行测试。JMeter可以用于在服务器,网络或对象模拟繁重的负载来测试它们提供服务的受压能力或者分析不同压力条件下的总体性能情况。原创 2024-11-28 08:13:13 · 115 阅读 · 0 评论