04构建一个网站测试计划

本文介绍如何使用JMeter创建一个基本的测试计划来测试网站。包括添加用户、配置HTTP请求、添加cookie支持等步骤。

04构建一个网站测试计划

Created Tuesday 23 May 2017

本章,你将会学习如何创建一个基本测试计划去测试web站点。你将会创建5个用户,并请求JMeter的web站点的两个页面,你还会让用户运行两次测试。所以总的请求数是(5 users) x (2 requests) x (repeat 2 times) = 20 HTTP请求。为了构造测试计划,你会使用下面元素:线程组,HTTP请求,HTTP请求默认,和图表结果。

为高级的测试计划,查看用户使用:测试计划:构建一个网站高级测试计划。

4.1 添加用户

你想要开始测试计划的第一步是添加线程组元素。线程组告诉JMeter你想要模拟的用户数,用户发送请求多久,它们应该发送多少请求。
要添加线程组,需要先选中测试计划,点击鼠标右键到添加菜单,然后选择添加->线程组。
你应该看看测试计划下面的线程组。如果你看不见线程组,要通过点击测试计划元素来“展开”测试计划树。
下一步,你需要修改默认属性。你如果没有没有选中线程组元素的话,在树中选中它。你应该能在JMeter窗口的右边部分看到线程组的控制板(see Figure 4.1 below)。
这里写图片描述
Figure 4.1. Thread Group with Default Values

先为我们的线程组提供了一个额外的描述名。在名称字段,输出JMeter User。接下来,增加用户数(叫做线程)到5。

下一个字段Ramp-Up Period,保留1s的默认值。这个属性告诉JMeter在启动每个用户之间有多久延迟。例如,如果你输入的Ramp-Up Period是5s,JMeter会在5s后完成你的所有用户的启动。所以,如果我们有5个用户和5s的Ramp-Up Period,那么启动用户之间的延迟是1s(5 users/5 seconds = 1 user per second)。如果你设置值为0,那么JMeter会立即启动所有你的用户。

最后在循环次数字段输入2,这个属性告诉Jmeter重复多少次你的测试。如果你输入循环次数为1,那么JMeter将会只运行你的测试一次。为了让JMeter反复的运行你的测试计划,可以选中永久复选框。

在大部分应用中,你不得不对在控制面板中的修改进行手动的接受。然而,在JMeter,控制面板会在添加它们时自动的接受你的修改。如果你修改了元素名,在你离开控制面板后树将会更新出新的文本(例如,在选中另一个树元素时)。

See Figure 4.2 for the completed JMeter Users Thread Group.
这里写图片描述
Figure 4.2. JMeter Users Thread Group

4.2 添加默认HTTP请求属性

现在我们已经定义了我们的用户,是时候去定义他们要执行的任务了。在本节,你会为你的HTTP请求指定默认配置。然后在对4.3节,你会添加的HTTP请求元素,这些元素使用了你在这里指定的默认设置。

先选择JMeter用户(线程组)元素,右击鼠标进入到添加菜单,选择添加->配置元素->HTTP Request Default。然后选中这个新元素进入到它的控制面板(see Figure 4.3)。
这里写图片描述
Figure 4.3. HTTP Request Defaults

像大多数JMeter元素一样,HTTP Request Default控制面板有一个你可以修改的名称字段。在这个例子中,保留这个字段为默认值。
跳到下一个字段,是网站服务器的服务器名称或者IP。对于你要构建的测试计划,所有HTTP请求都会发送到相同的网站服务器。在这个字段输入这个域名(jmeter.apache.org),这是唯一我们要指定默认值的字段,所以剩下的字段保留他们自己默认值。

  • HTTP Request Defaults元素不会告诉JMeter发送HTTP请求。它仅仅是定义HTTP Request元素发送HTTP请求的默认值。*

See Figure 4.4 for the completed HTTP Request Defaults element
这里写图片描述
Figure 4.4. HTTP Defaults for our Test Plan

4.3 添加cookie支持

几乎所有的网站测试都要使用cookie支持,除非你的应用明确的不使用cookie。为了添加cookie支持,仅需在你的测试计划中添加一个HTTP Cookie Manager到每个线程组。这会确保每个线程有它自己的cookies,但是在所有HTTP Request对象之间共享。

为了添加HTTP Cookie Manager,仅用选中线程组,从编辑菜单,或者从右击弹出菜单选择添加->控制元素->HTTP Cookie Manager。

4.4 添加HTTP请求

在我们的测试计划,我们需要制作两个HTTP请求。第一个是JMeter主页(http://jmeter.apache.org/),第二个是变更页(http://jmeter.apache.org/changes.html)。
JMeter sends requests in the order that they appear in the tree.JMeter按照他们出现在树中的顺序发送请求。

首先是在JMeter用户元素添加HTTP请求(Add->Sampler->HTTP Request)。然后在树中选择HTTP请求元素并编辑下面的属性(see Figure 4.5):

  • 修改Name字段为”主页”
  • 设置Path字段为“/”,推荐你不去设置Server Name字段因为你已经在HTTP Request Defaults中指定这个值。

这里写图片描述
Figure 4.5. HTTP Request for JMeter Home Page

下一步,添加第二个HTTP请求并编辑下面的属性(see Figure 4.6):

  • 修改Name字段为“变更”。
  • 设置Path字段为”/changes.html”。

这里写图片描述
Figure 4.6. HTTP Request for JMeter Changes Page

4.5 添加一个监听器查看保存的测试结果

你需要添加到你的测试计划的最后元素是一个监听器。这个元素负责将你的HTTP请求的所有的结果保存到文件,并将这些数据呈现一个可视模型。

选中JMeter用户元素并添加一个图标结果监听器(Add->Listerner->Graph Results)。下一步,你需要制定输出文件的目录和文件名。你可以填写文件名字段或者选择浏览按钮,浏览目录并输入一个文件名。
这里写图片描述
Figure 4.7. Graph Results Listener

4.6 登录web站点

这里不是这样的,但是一些网站在允许你执行一些动作之前需要你先登录。在一个web浏览器中,登录会被展示为一个有用户名和密码的表单,和一个按钮提交表单。这个按钮产生一个POST请求,将表单项的值作为参数传递。

为了在JMeter中做这些,需要添加一个HTTP Request,并设置方式为POST。你需要知道表单使用的字段名和目标页。这些可以通过查看登录页的代码找到。[如果有些困难,你可以使用JMeter Proxy Recorder去记录登录请求。]设置提交按钮的目标为path。点击添加按钮两次并输入用户名和密码的详细。有时候登录表单包含了附加的隐藏字段,这些也要加上。
这里写图片描述
Figure 4.8. Sample HTTP login request

<think>### 运维系统开发计划 **项目目标**:构建自动化运维系统,实现服务器监控、部署、报警一体化管理 **技术栈选择**: - **后端**:Python Flask(轻量级API开发) - **前端**:Vue.js + Element UI(响应式管理界面) - **数据库**:MySQL(业务数据) + InfluxDB(时序监控数据) - **基础设施**:Docker容器化部署 **核心模块开发计划**: ```mermaid gantt title 运维系统开发里程碑 dateFormat YYYY-MM-DD section 基础框架 认证授权模块 :done, des1, 2024-01-01, 15d API网关构建 :active, des2, 2024-01-16, 10d section 核心功能 服务器监控模块 : des3, 2024-01-26, 20d 自动化部署模块 : des4, 2024-02-15, 25d 日志分析引擎 : des5, 2024-03-10, 30d section 测试上线 压力测试 : des6, 2024-04-10, 15d 生产环境部署 : des7, 2024-04-26, 7d ``` **关键实施步骤**: 1. **环境准备**(第1周) - 搭建GitLab代码仓库 - 配置Jenkins持续集成流水线 2. **最小化产品开发**(第2-8周) - 实现基础主机监控(CPU/内存/磁盘) - 开发WebSSH终端接入功能 - 构建邮件/短信报警模板 3. **高级功能迭代**(第9-12周) - 集成Prometheus监控指标 - 添加Kubernetes集群管理 - 实现智能故障预测(基于历史数据) **风险控制**: - 安全风险:采用JWT令牌认证 + 操作审计日志 - 性能风险:监控数据采样频率动态调整机制 - 兼容风险:支持Linux/Windows混合环境 §§相关问题§§ 1. 在运维系统中如何设计高可用的监控数据存储方案? 2. 如何实现WebSSH的浏览器直连服务器技术? 3. 自动化部署模块如何兼容Ansible/SaltStack等不同运维工具? 4. 在资源有限的情况下,应该优先开发哪些运维功能模块? 5. 如何设计有效的报警策略避免"报警疲劳"问题? </think> ### 运维系统开发计划 #### **一、系统目标** 1. **核心功能** - 实时监控:服务器资源(CPU/内存/磁盘/网络) - 自动化部署:支持CI/CD流水线 - 故障预警:阈值触发邮件/短信报警 - 日志管理:集中收集与分析(ELK集成) - 配置管理:统一管理服务器配置 #### **二、技术架构** ```mermaid graph LR A[前端] --> B(Nginx负载均衡) B --> C[Python Flask API] C --> D[MySQL 业务数据库] C --> E[Redis 缓存] C --> F[Prometheus 监控数据] F --> G[Grafana 可视化] ``` #### **三、阶段计划** | 阶段 | 周期 | 交付内容 | |------|------|----------| | 1. 基础框架 | 2周 | 用户权限系统、API网关、监控探针部署 | | 2. 核心模块 | 4周 | 监控告警系统、自动化部署引擎 | | 3. 高级功能 | 3周 | 日志分析平台、安全审计模块 | | 4. 测试上线 | 1周 | 压力测试、文档编写、生产部署 | #### **四、关键实现细节** 1. **监控模块** ```python # 示例:CPU使用率监控脚本 import psutil def check_cpu(threshold=80): usage = psutil.cpu_percent(interval=1) if usage > threshold: send_alert(f"CPU过载: {usage}%") ``` 2. **自动化部署** - 使用Ansible Playbook实现批量操作 - 集成GitLab Webhook触发自动发布 3. **安全设计** - 双向SSL认证 - 操作日志全量审计 #### **五、资源需求** - 人力:2后端 + 1前端 + 1运维 - 服务器:4核8G×3(生产/测试/备份)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值