并发测试

记一次用Jmeter测试并发的步骤

﹥>﹥吖頭↗ 提交于 2019-12-01 07:52:20
1、首先要安装JVM,确认是不是安装和配置成功,可以用命令输入 “java -version”查询 2、从官网下载Jmeter,解压 3、录制脚本或者自己根据接口文档/抓包获取接口编写测试的脚本(注:本质就是通过接口协议模拟浏览器访问服务器) 4、配置线程数,每个线程数代表一个模拟操作的人,如果电脑的配置不是很高,或者要测试的并发数很大,那就需要用到分布式方法压测。分布式压测的原理就是在一个网段内,用一部电脑作为操控机,控制另外几部电脑去执行测试脚本。分布式压测的配置操作其实挺简单的,就是主要配置jmeter.properties文件和启动远程的jmeter-server,但是如果对于第一次操作的人来说,可能会有点吃力,因为我觉得官方教程有点难懂,主要分三步 (1)打开jmeter.properties ,搜索remote_hosts=,把原本的IP改成需要远程控制的agent的ip,(注:如果你本机也需要参与测试,那可以填上本机的IP),把server.rmi.ssl.disable=False改成server.rmi.ssl.disable=true (2) 启动jmeter-server (3)启动操控的jmeter,打开要测试的脚本,如果有参数化的文件,需要注意路径的问题,因为参数文件是需要放在agent机上的,点击【运行】-远程启动所有所有 5、如果是对于新项目的性能测试

使用Gearman+Calabash并行测试手机APP

巧了我就是萌 提交于 2019-11-30 23:05:27
摘要 :使用任务分发系统Gearman分布式执行Calabash的自动化测试用例,可以达到并行测试手机APP的目的。 背景介绍 Gearman Gearman是一个分发任务的程序框架,可以用在各种场合,与Hadoop相比,Gearman更偏向于任务分发功能。它的 任务分布非常简单,简单得可以只需要用脚本即可完成。 Calabash Calabash-android是支持android的UI自动化测试框架,PC端使用了cucumber框架,通过http和json与模拟器和真机上安装的测试apk通信,测试apk调用robotium的方法来进行UI自动化测试,支持webview操作。 calabash脚本以 使用calabash测试开源中国Android客户端 为例。 Gearman安装和执行测试 Ubuntu上安装Gearman $ sudo apt-get install gearman-job-server $ gearmand -V gearmand 1.0.6 - https://bugs.launchpad.net/gearmand $ sudo apt-get install gearman-tools $ gearman -H 运行Gearman并发执行Calabash测试用例 启动gearman job server,作为后台服务运行: $ gearmand -d

性能测试报告模板

筅森魡賤 提交于 2019-11-30 19:04:07
性能测试报告 Performance Test Report 项目 XXX项目 二期 版本 V1.00 作者 dayu 日期 2019.9.31 1. 测试概述 1.1 测试目标 描述本次测试的意义和目标 本次测试的目的在于探查 XXX项目 二期重构环境的系统业务处理性能,以及在高负载情况下的系统表现。 1.2 指标和术语 描述本次测试中涉及到的性能指标术语 术语 释义 并发数 测试时同时系统发出事务请求的数量,并发线程数用以模拟同时与系统建立连接的用户。 TPS (每秒事务数) 在每秒时间内系统可处理完毕的事务数。 TPS 很大程度体现系统性能能力。 错误率 经系统处理的事务出现错误的概率,对应着实际用户使用系统功能失败的情况。理想情况下错误率应保持极低水平。 资源占用率 服务器端各关键资源的使用比例,用于衡量系统硬件能力 2. 环境、工具 列出本次测试所涉服务器、客户机和测试工具 2.1 测试环境 服务器: 应用 机器 CPU、内存配置 API ip地址 16 核 CPU 、内存 16G MYSQL ip地址 16 核 CPU 、内存 16G 客户机: 操作系统 CPU 内存 Windows10 专业版 I3- 4170 3.70GHZ 8G 2.2 测试工具 核心工具 版本 备注 Jmeter 3.3 提供并发请求能力 PerfMon Metrics Collector 2

如何使用JMeter进行并发测试

坚强是说给别人听的谎言 提交于 2019-11-29 19:21:16
JMeter下载地址 1、下载最新版的JMeter的文件压缩包到本地 2、解压出来得到如下文件夹 3、打开bin文件夹找到jmeter.properties文件,打开它 4、找到第37行修改(添加)此条代码修改为中文 language=zh_CN 5、然后找到jmeter.bat文件,双击打开 6、新建测试计划,选中“测试计划”鼠标右击,选择添加->线程(用户)->线程组 7、光标选中线程组,鼠标右击,添加->取样器->HTTP请求 8、单击http请求,显示详情页填写需要进行测试的api的URL和需要一同传过去的数值,这里要注意的是URL里不要含有http或者https,可以填在协议这一栏,如果是http可以为空,另一个是请求方法,要确定是post形式还是get形式,至于路径其实是可以和IP地址写在一起的,如果有端口号的话,那就分开写看的更明白。下方参数就是要拼接到url中的参数比如:http://baidu.com?name=summer&id=888这样的数据,?后面的即为要传的参数,点击下方添加按钮将其添加到参数栏里。 9光标移到HTTP请求->添加->配置元件->HTTP信息头管理器 10、在HTTP信息头管理器中添加需要回传的token和Cookie等放在 Header中的内容 11、完成了内容配置工作后、我们还需要配置结果查看工具,光标移到测试计划->添加->监听器-

测试技术-应用负载压力测试

天大地大妈咪最大 提交于 2019-11-29 10:06:28
** 应用负载压力测试 ** 1 概述 系统的负载压力是指系统在某种指定软件、硬件以及网络环境下承受的流量,例如并发用户数、持续运行时间、数据量等,其中并发用户数是负载压力的重要体现。当有大量用户同时使用时,可能会出现功能失效、性能衰减、甚至系统崩溃的现象。 负载压力测试是指在一定约束条件下测试系统所能承受的并发用户量、运行时间、数据量,以确定系统所能承受的最大负载压力。负载压力测试有助于确认被测系统是否能够支持性能需求,以及预期的负载增长等。负载压力测试不只是关注不同负载场景下的响应时间等指标,它也要通过测试来发现在不同负载场景下会出现的。 载压力测试包括并发性测试、疲劳强度测、大数据量测试等内容。 2 测试设计方法 2.1 负载测试 负载测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的测试。 2.2 压力测试 压力测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并以此来获得系统能提供的最大服务级别的测试。通俗地讲,压力测试是为了发现在什么条件下系统的性能变得不可接受。压力测试是一种特定类型的负载测试。例如,访问一个页面的响应时间规定为不超过1秒,负载测试就是测试在响应时间为1秒时,系统所能承受的最大并发访问用户的数量,而压力测试就是测试系统在多大的并发访问用户数量下

一个高并发的测试websocket脚本

蹲街弑〆低调 提交于 2019-11-29 01:28:05
一个高并发的测试websocket脚本 根据最近公司上线一个直播项目,但是有一天测试那边一脸苦逼的来找到我,问我有什么好工具可以实现高并发的测试,他使用jmeter限制了400个并发数(个人没去研究过不知道是否真的限制),后来我第一时间想到python写一个脚本,也没想多小就答应帮他搞一个测试脚本。 首先整理思: 要实现高并发不到两点 多进程 多线程 首先安装先要环境: pip install websocket pip install threadpool pip install websocket-client pip install multiprocessing 直接上脚本: #!/usr/bin/python #-*- coding:utf-8 -*- #__author__ == 'chenmingle' import websocket import time import threading import json import multiprocessing from threadpool import ThreadPool, makeRequests #修改成自己的websocket地址 WS_URL = "wss://ws.test.com/" #定义进程数 processes=5 #定义线程数(每个文件可能限制1024个,可以修改fs.file等参数)

性能测试基础

假装没事ソ 提交于 2019-11-28 23:58:55
一、 软件性能描述 软件性能:指软件运行过程中的响应时间与系统资源消耗情况是否满足用户需求 二、 性能测试相关术语 1.响应时间:客户端发出请求开始到客户端接收到所有数据所消耗的时间 (网络传输时间 + 应用服务器处理时间 + 数据库服务器处理时间) 2.并发用户数: 同一时刻 与服务器进行 数据交互 的所有用户数量 如何确定并发用户数:参考其他同类产品;分析历史数据;试上线运行 3.吞吐量:单位时间内服务器处理的数据量(服务器处理数据的效率)。 指在一次性能测试过程中网络上传输的数据量的总和 单位 B/S ,体现服务器承载能力 F = N VN *R / T F: 吞吐量; N VN :虚拟用户个数; R :在 T 时间内每个虚拟用户发出的请求字节数 T: 性能测试所用时间 4. 吞吐率:单位时间内服务器返回的的数据量 吞吐率 = 吞吐量 / 测试时间 5.TPS :服务器每秒处理的事务数 6. 点击率 : 每秒用户向服务器提交的服务请求数量,点击率值越大,服务器承受压力越大 7. 资源利用率 : 服务器系统中不同硬件资源被使用的程度 资源利用率 = 资源实际使用量 / 总可用资源量 8. 性能计数器 : 描述服务器或操作系统性能的一些数据指标。主要通过添加计数器来观察系统资源的使用情况 9. 思考时间 : 模拟用户在操作系统时,发送请求的时间间隔 思考时间函数 lr_think

postman批量调用接口并发测试

◇◆丶佛笑我妖孽 提交于 2019-11-28 20:13:47
本文出自: https://www.cnblogs.com/2186009311CFF/p/11425913.html 接口测试在开发中很容易遇到,下面是请教别人学会的并发测试,希望能帮到需要用到的你,以下是postman批量调用接口并发测试步骤: 总体思路就是建立一个请求,保存后,再去批量那边运行,设置保存并发的请求,然后多运行几个框就会形成并发 一、单个请求: 保存单个请求 二、建立批量请求 三、重复步骤二多次,即可实现简单的并发测试 来源: https://www.cnblogs.com/2186009311CFF/p/11425913.html

Jmeter之仿真高并发测试(集合点)

我的梦境 提交于 2019-11-28 08:20:53
场景: 大家在使用Jmeter测试的时候应该发现了, (1)线程启动了就会直接发送测试请求;–如果要模拟在一瞬间高并发量测试的时候,需要调高线程数量,这很耗测试机器的性能,往往无法支持较大的并发数,无法控制每次测试的瞬间并发量; (2)如果使用了constant throughput timer,可以模拟较长时间的并发测试,但是仍无法满足稳定的瞬间高并发测试; 解决: 1、使用集合点; 作用:阻塞线程,直到指定的线程数量到达后,再一起释放,可以瞬间产生很大的压力。 引用虫师的话“红军排长说:等一等!集结了所有战友后,大家再一起冲啊!这样给敌人的压力是最大的。” 操作步骤 添加集合点,在Jmeter里是synchronized timer; 面板说明及设置 (1)面板说明 1)名称:自定义名称 2)[Number of Simulated Users to Group by] Define how many simulated users trigger the release of the synchronizing block(default value of '0'means all users). 即a.每集合够多少个模拟用户(线程)后发送一次测试请求; b.如果设置为0,等同于设置为线程租中的线程数; c.确保设置的值不大于它所在线程组包含的用户数(线程数)--

Ningx的基本使用

岁酱吖の 提交于 2019-11-26 19:36:00
Ningx的基本使用 user www; worker_processes 2; error_log logs/error.log info; pid logs/nginx.pid; events { worker_connections 1024; // 控制允许接受的并发连接数 } http { // 定义与web服务相关的 include mime.types; default_type application/octet-stream; .... } 一、部署web服务 每一个server { } 定义一个网站 例子: http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root html; # 定义网站的根目录 index index.html index.htm index.php; # 定义目录的默认页面 } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } location ~ \.php$ { # 匹配所有以