当前位置: 首页 > news >正文

A006-基于Selenium和JMeter的吉屋web端的自动化测试设计与实现

产出:自动测试脚本+测试用例+开题报告+自动化测试报告+论文+jmeter性能测试

--------------------**论文主要内容***-----

第1章 吉屋web端需求分析

1.1 吉屋web端功能需求分析

由于社会对知识获取的需求不断增长,海量繁多的房屋信息已难以依靠传统人工高效处理。在这种情况下,吉屋web端就显得尤为关键。吉屋web端是以通用的信息技术为支撑,其核心目标是为房屋的管理者提供更高效便捷的管理手段。下面将依次介绍吉屋web端管理功能。

(1)新房筛选查询:用户可按区域、按价格区间、按户型筛选、同时按区域、价格筛选等筛选条件操作。

(2)二手房查询:用户可以按区域筛选、按均价筛选、按楼龄筛选、同时按区域、均价筛选等功能

(3)帮我找房:用户可以按期望区域和预算找房、按期望户型、同时按区域、预算和户型找房,可以选择不限进行立即找房。

(4)工具箱:含房贷计算、税费计算。使用者可进行计算贷款,如按面积、公积、组合贷款、商贷、税费、贷款金额为 0 、贷款年限下拉选择等功能。

(5)楼市看点:用户只需输入楼盘名称即可查询。

(6)登录:要输入手机号和验证码登录,也可采用账密登录方式。

第2章 吉屋web端功能测试实施

2.1 功能测试环境准备

在进行自动化测试之前,需要先搭建合适的自动化测试环境。首先,应安装Python并正确配置其环境变量。随后,需安装Pip包管理工具以确保后续依赖项的顺利管理。通过在Cmd命令行中输入Python命令并确认显示正确的版本信息,可以验证安装是否成功。如下图 5.1 验证 Python 安装成功示意图所示。

图5.1 Python安装成功示意图

随后,需要下载 PyCharm 开发环境并安装 Selenium 库。Selenium 的安装可以通过两种方式进行:一是在命令行工具 Cmd 中输入 pip install -U selenium命令来完成;二是在 PyCharm 内部集成的包管理器中直接进行安装。图 5.2展示了 Selenium 安装的具体步骤和界面。

图5.2 Selenium安装示意图

需选与电脑谷歌版本号匹配谷歌驱动 Chromedriver ,将它放到Python的安装文件夹下。如图5.3谷歌驱动存放目录示意图所示。

图5.3 Chromedriver存放目录示意图

2.2 编写测试脚本

本课题自动化测试脚本含用户登录、新房筛选、二手房查询等功能模块,tests存放测试用例,pages存放页面元素,base存放页面元素的二次封装,utils用于存放工具类,reports用于存放报告,screenshot存放截图,run是程序的主入口,其目录结构如下图5.4所示:

图5.4项目目录列表示意图

本次自动化测试脚本,首先对整体进行了一个底层封装,放入一些常用的页面操作,提高代码的可重用性和可维护性。如下图底层封装代码示意图所示

图5.5底层封装代码示意图

  针对登录模块的元素定位和测试数据进行了封装处理。常用的元素定位方法有三种,前文已作详细介绍,此处采用了最为常见的 XPATH 定位方式。随后,对测试数据和测试步骤也进行了封装。具体实现方式如图所示的登录模块封装代码示意图。

图5.6登录模块封装代码示意图

本次课题采用了 Pytest 框架,在执行测试之前,首先打开浏览器并进行登录操作。针对登录功能,共编写了7条测试用例,每条用例根据不同的登录场景进行相应的输入和点击操作。代码中的操作、定位元素及数据都是调用封装的函数实现。具体登录模块的测试代码结构如图所示。

图5.7测试代码结构示意图

本课题的吉屋web端自动化测试总共编写脚本6个,总共15条测试用例,以下是部分主要代码:

图5.8部分代码示意图1

图5.9部分代码示意图2

图5.10部分代码示意图3

2.3 测试结果分析

在本次自动化中,共运行6个测试脚本,15条测试用例。测试未发现Bug。测试结果见下图。

图5.11测试报告示意图

第3章 吉屋web端性能测试实施

3.1 性能测试环境准备

  1. 下载 JDK

下载特定JDK,需要匹配电脑下载后配置环境,最后通过 Cmd 命令java -version查看是否安装成功,如图所示。

图6.1检验安装成功示意图

  1. 下载安装 JMeter

下载指定版本的 JMeter 后,在安装过程中应确保将其放置在纯英文路径的目录中,避免安装目录含空格。进行环境变量的配置:创建名为 JMeter_HOME 的环境变量,值为 JMeter 的安装路径;编辑Path 环境变量,添加两个新变量值。通过运行JMeter.bat文件启动 JMeter。具体环境变量配置步骤如图所示。

图6.2环境变量配置示意图

  1. 安装 Badboy

Badboy是为jmeter做辅助的,jmeter的脚本需要badboy录制

3.2 编写性能测试脚本

  1. Badboy脚本录制

使用Badboy进行录制,如录制脚本示意图所示。

图6.3脚本录制示意图

(2)获取排名性能测试

将线程组命名为获取排名线程组 ,该线程组主要用于获取排名性能测试。测试场景包括用户输入cityid调用接口线程60,持续运行时间3分钟。在“Number of Threads”参数中设置并发用户数,确保每个场景运行 180 秒。

图6.4获取排名创建线程组示意图

获取排名需填写相关的地址、请求路径、方法以及请求参数等详细信息。HTTP Request示意图所示。

图6.5HTTP请求示意图

  为判断输出结果是否符合预期,我们需要为请求设置相应的断言,如图所示:

图6.6HTTP请求断言示意图

要想看测试结果,需添加监听器,常用的监听器是汇总报告,可查看不同的指标下接口的响应时间,吞吐量,错误率等。如图所示:

图6.7汇总报告示意图

3.3 性能测试结果分析

楼市楼盘排名接口与楼盘分组接口,对于3分钟并发数为60的场景测试,平均响应时间小于5秒,错误率却大于80%,不符合预期结果,如图所示:

图6.8楼市楼盘汇总报告示意图

图6.9楼盘分组汇总报告示意图

相关文章:

A006-基于Selenium和JMeter的吉屋web端的自动化测试设计与实现

产出:自动测试脚本测试用例开题报告自动化测试报告论文jmeter性能测试 --------------------**论文主要内容***----- 第1章 吉屋web端需求分析 1.1 吉屋web端功能需求分析 由于社会对知识获取的需求不断增长,海量繁多的房屋信息已难以依靠传统人工高效…...

图像预处理-边缘填充,透视变换和色彩空间基础

一.边缘填充 一般来图片操作之后会有空区域,就是对空出来的区域进行了像素值的填充,(0,0,0)也就是黑色像素值的填充。 # 默认黑色填充 import cv2 as cvimg cv.imread(../images/lena.png) # 先让原图旋转45度 M cv.getRotatio…...

数字化赋能,众趣科技助力智慧园区深化管理运营能力

数字化、网络化和智能化,被公认为是未来社会发展的大趋势。随着全球物联网、云计算等新一代信息技术不断成熟,传统的招商管理运营模式难以满足园区当下所需,以“园区互联网”为理念的“智慧园区”应运而生,同时融入社交、移动、物…...

《AI大模型应知应会100篇》 第16篇:AI安全与对齐:大模型的灵魂工程

第16篇:AI安全与对齐:大模型的灵魂工程 摘要 在人工智能技术飞速发展的今天,大型语言模型(LLM)已经成为推动社会进步的重要工具。然而,随着这些模型能力的增强,如何确保它们的行为符合人类的期…...

MCP的另一面

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗?订阅我们的简报,深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同,从行业内部的深度分析和实用指南中受益。不要错过这个机会,成为AI领…...

Golang|锁相关

文章目录 并发安全性与原子操作读写锁分布式锁 并发安全性与原子操作 普通数据类型在并发读写中是会出现问题的,有时候操作会被吞,导致脏写,比如上面n加了两次应该为2,但是由于并发,n最后还是只加了一次 读写锁 sync.…...

大模型面经 | 介绍一下大模型微调方法Prefix Tuning、Prompt Tuning、P-Tuning和P-Tuning v2

大家好,我是皮先生!! 今天给大家分享一些关于大模型面试常见的面试题,希望对大家的面试有所帮助。 往期回顾: 大模型面经 | 春招、秋招算法面试常考八股文附答案(RAG专题一) 大模型面经 | 春招、秋招算法面试常考八股文附答案(RAG专题二) 大模型面经 | 春招、秋招算法…...

JMeter的高并发和高频率和分布式

性能测试 模拟各种正常的、峰值的测试环境,检测程序的各项性能指标是否能够达标 高并发 JMeter中内置了定时器,可以实现时间模式相关的性能测试 需求1:同一时刻100个同学去访问学生管理系统的查询所有学院信息功能,统计高并发情况下平均响…...

设计模式-模板模式

设计模式-模板模式,不用重复写大的逻辑,父类定义好不变的模板方法,子类使用,当框架是父类的框架时可以继承...

手机端可部署的开源大模型; 通义千问2.5训练和推理需要的内存和外存

手机端可部署的开源大模型 目录 手机端可部署的开源大模型Qwen2.5 0.5B 7b 推理采用手机内存需要多少Qwen2.5 0.5B不同量化精度下的内存需求Qwen2.5 7B不同量化精度下的内存需求通义千问2.5训练和推理需要的内存和外存推理阶段1. Qwen2.5 - 7B2. Qwen2.5 - 14B3. Qwen2.5 - 72B…...

记录学习的第二十五天

今天终于又开始更新了。实在是星期六的蓝桥杯给了我一个大大的打击,今天终于好不容易缓过来了,可以好好学算法了。 还是老规划,力扣的每日一题。不过今天的每日一题我之前做过了,就又提交了一次来签到。 之后三道哈希表题目。 我一…...

leetcode03 -- 武汉旅游查询系统

武汉旅游查询系统 1 界面展示 1.首页地图界面 2.查找功能 在查找框内输入查找的景点名称 查找到的景点在地图上进行定位,右侧展示景点的详细信息。 3.添加景点功能 在地图上点击某个位置,系统弹出一个输入框供用户填写景点的名称和描述。 在弹出的输入框中输入景点名…...

R 语言科研绘图第 39 期 --- 饼状图-旭日

在发表科研论文的过程中,科研绘图是必不可少的,一张好看的图形会是文章很大的加分项。 为了便于使用,本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中,获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.…...

R语言操作练习2

加载tidyr包,探索table1,table2,table3,table4a, table4b维度和结构 将table4a进行宽转长操作,列名为country,year,population 基于题2,以country为横坐标,population为纵坐标,fillyear,采用dodge形式作柱…...

【秣厉科技】LabVIEW工具包——OpenCV 教程(19):拾遗 - imgproc 基础操作(上)

文章目录 前言imgproc 基础操作(上)1. 颜色空间2. 直方图3. 二值化4. 腐蚀、膨胀、开闭运算5. 梯度与轮廓6. 简易绘图7. 重映射 总结 前言 需要下载安装OpenCV工具包的朋友,请前往 此处 ;系统要求:Windows系统&#x…...

python中,sort(reverse=True)与列表.reverse的区别

python中,sort(reverseTrue)与列表.reverse的区别 在 Python 中,sort(reverseTrue) 和 列表.reverse() 是两种不同的操作,主要区别如下: 1. sort(reverseTrue) 作用: 对列表进行降序排序(即从大到小排列…...

Java【多线程】(8)CAS与JUC组件

目录 1.前言 2.正文 2.1CAS概念 2.2CAS两种用途 2.2.1实现原子类 2.2.2实现自旋锁 2.3缺陷:ABA问题 2.4JUC组件 2.4.1Callable接口 2.4.2ReentrantLock(与synchronized对比) 2.4.3Semaphore信号量 2.4.4CountDownLatch 3.小结 1…...

MATLAB仿真多相滤波抽取与插值的频谱变化(可视化混叠和镜像)

MATLAB画图仿真多相滤波抽取与插值的频谱变化 可视化多速率信号处理抽取与插值的频谱变化 实信号/复信号 可视化混叠和镜像 目录 前言 一、抽取的基本原理 二、MATLAB仿真抽取运算 三、内插的基本原理 四、MATLAB仿真内插运算 总结 前言 在多速率系统中增加信号采样率的运…...

Docker 与 Podman常用知识汇总

一、常用命令的对比汇总 1、基础说明 Docker:传统的容器引擎,使用 dockerd 守护进程。 Podman:无守护进程、无root容器引擎,兼容 Docker CLI。 Podman 命令几乎完全兼容 Docker 命令,只需将 docker 替换为 podman。…...

Spark-SQL简介

Spark-SQL: Spark SQL 是 Spark 用于结构化数据(structured data)处理的 Spark 模块。 Hive and SparkSQL: Drill,Impala.Shark Shark 是伯克利实验室 Spark 生态环境的组件之一. Shark 的出现,使得 SQL-on-Hadoop 的性能比 Hive 有了 10-100 倍的提高。 Spark-S…...

第十八讲 | 支持向量机(SVM):在地类识别与遥感影像分类中的应用

在遥感影像分类与地类识别中,我们经常面临高维特征、多样地表类型以及样本噪声等挑战。**支持向量机(Support Vector Machine,SVM)**作为一种强大的监督分类方法,因其在小样本、高维特征下依然保持良好泛化能力,被广泛用于遥感影像分析、地类判别及环境监测等领域。 📌…...

5.6 GitHub PR分析爆款方案:分层提示工程+LangChain实战,准确率飙升22%

GitHub Sentinel 分析报告核心模块:Pull Request 提示工程设计与实现 关键词:Pull Request 分析、大模型提示工程、分层结构设计、动态参数注入、LangChain 集成 1. PR 分析需求与技术挑战 在 GitHub 开源项目管理中,Pull Request 分析需满足三个核心需求: #mermaid-svg-…...

centos yum install environment-modules

在 CentOS 系统中,environment-modules 是一个非常有用的包,它允许用户管理和动态地加载环境变量,这对于使用特定模块(例如软件库或编译器工具链的路径)非常方便。如果你想通过 yum 安装 environment-modules&#xff…...

Spring Boot + ShardingSphere 分库分表实战:电商订单场景案例

摘要:本文通过电商系统中订单表分库分表的实际案例,结合Spring Boot和ShardingSphere框架,详细讲解如何实现水平分库分表,解决海量数据存储与查询性能问题。 一、场景分析 在电商系统中,订单表随着业务增长可能面临以…...

C++ 指针从入门到精通实战:全面掌握指针的概念与应用

C 指针从入门到精通实战:全面掌握指针的概念与应用 指针(Pointer)是C中一个极其重要且强大的概念,它赋予了程序员直接操作内存的能力,从而实现高效的代码和复杂的数据结构。然而,指针的使用也伴随着诸多挑…...

C++ 智能指针底层逻辑揭秘:优化内存管理的核心技术解读

目录 0.为什么需要智能指针? 1.智能指针的使用及原理 RAII: 智能指针的原理: 2.智能指针有哪些? std::auto_ptr std::unique_ptr std::shared_ptr std::weak_ptr 0.为什么需要智能指针? 想要回答这个问题&…...

Android基础入门、Android常见界面布局基础练习

第1章 Android基础入门、第2章Android常见界面布局 一. 填空题 1. (填空题)如果希望在XML布局文件中调用颜色资源,可以使用_____调用。 正确答案: (1) color 2. (填空题)Android程序入口的Activity是在_____文件中注册的。 正确答案: (1…...

Spring Cloud主要组件介绍

一、Spring Cloud 1、Spring Cloud技术概览 分为:服务治理,链路追踪,消息组件,配置中心,安全控制,分布式任务管理、调度,Cluster工具,Spring Cloud CLI,测试 2、注册中心:常用注册中心(Euerka[AP]、Zookeeper[CP]) 1)Euerka Client(服务提供者)=》注册=》Eue…...

【7】深入学习Buffer缓冲区-Nodejs开发入门

深入学习Buffer缓冲区 前言ASCII码GBK/GB2312UnicodeJavascript转换 BufferBuffer的作用Buffer的创建Buffer.allocBuffer.allocUnsafe(size)Buffer.allocUnsafeSlow(size)Buffer.from(array)Buffer.from(arrayBuffer[, byteOffset[, length]])Buffer.from(buffer)Buffer.from(s…...

酶动力学参数预测,瓶颈识别……中科院深圳先进技术研究院罗小舟分享AI在酶领域的创新应用

蛋白质,作为生命的基石,在生命活动中发挥着关键作用,其结构和功能的研究,对创新药物研发、合成生物学、酶制剂生产等领域,有着极其重要的意义。但传统蛋白质设计面临诸多难题,蛋白质结构复杂,序…...

Dockerfile

Dockerfile Dockerfile 是一个文本文件,其内包含了一条条指令,每一条指令构建镜像的一层,因此每一条指令的内容,就是描述该层应当如何构建。 定制镜像,可以将镜像制作的每一层的修改、安装、构建、操作的命令&#xf…...

Redis高频面试题(含答案)

当然可以,Redis 是面试中非常常见的高频考点,尤其在后台开发、分布式系统、缓存设计等方向,面试官常常通过 Redis 来考察你的高并发处理能力、系统设计能力和对缓存一致性理解。 以下是一些典型 Redis 的面试场景题目类型和你可以如何回答的…...

#3 物联网 的标准

商业化的技术都有标准, 标准的本质就是 可以重复多次实现的方法。而这些方法都是设定物联网的那些人布局的,当然在保证按方法操作的结果是属于物联网这个基本的操作里面,藏着的是对某些利益团队的维护,这里大家知道就可以了。 除 …...

Moviepy 视频编辑的Python库,可调整视频分辨率、格式

MoviePy简介 MoviePy 是一个用于视频编辑的Python库,支持视频剪辑、和合成、转码等多种操作,主要有点: 基于 FFmpeg:能够处理几乎所有常见的视频格式。 修改视频分辨率 方法一:指定新的宽度和高度 from moviepy.editor import V…...

【LeetCode 热题 100】哈希 系列

📁1. 两数之和 本题就是将通过两层遍历优化而成的,为什么需要两层遍历,因为遍历 i 位置时,不知道i-1之前的元素是多少,如果我们知道了,就可以通过两数相加和target比较即可。 因为本题要求返回下标&#xf…...

蓝光三维扫描:汽车冲压模具与钣金件全尺寸检测的精准解决方案

随着汽车市场竞争日趋激烈,新车型开发周期缩短,安全性能要求提高,车身结构愈加复杂。白车身由多达上百个具有复杂空间型面的钣金件,通过一系列工装装配、焊接而成。 钣金件尺寸精度是白车身装配精度的基础。采用新拓三维XTOM蓝光…...

鲲鹏+昇腾部署集群管理软件GPUStack,两台服务器搭建双节点集群【实战详细踩坑篇】

前期说明 配置:2台鲲鹏32C2 2Atlas300I duo,之前看网上文档,目前GPUstack只支持910B芯片,想尝试一下能不能310P也部署试试,毕竟华为的集群软件要收费。 系统:openEuler22.03-LTS 驱动:24.1.rc…...

面试篇 - GPT-1(Generative Pre-Training 1)

GPT-1(Generative Pre-Training 1) ⭐模型结构 Transformer only-decoder:GPT-1模型使用了一个12层的Transformer解码器。具体细节与标准的Transformer相同,但位置编码是可训练的。 注意力机制: 原始Transformer的解…...

探索机器人创新技术基座,傅利叶开源人形机器人 Fourier N1

一.傅利叶为什么要开源? 2025年3月17日,傅利叶正式开源全尺寸人形机器人数据集Fourier ActionNet。 2025年4月11日,傅利叶正式发布首款开源人形机器人 Fourier N1。 傅利叶为什么要做这些开源工作呢?4月11日&#x…...

正则表达式和excel文件保存(python)

正则表达式 import re data """ <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8" /> <title>测试页面</title> </head> <body> <h1>《人工智能的发展趋势分析报…...

无人船 | 图解基于视线引导(LOS)的无人艇制导算法

目录 1 视线引导法介绍2 LOS制导原理推导3 Lyapunov稳定性分析4 LOS制导效果 1 视线引导法介绍 视线引导法&#xff08;Line of Sight, LOS&#xff09;作为无人水面艇&#xff08;USV&#xff09;自主导航领域的核心技术&#xff0c;通过几何制导与动态控制深度融合的机制&am…...

大腾智能获邀出席华为云2025生态大会,携全栈工业软件助力产业智能升级

4月10日-4月11日&#xff0c;以“聚力共创&#xff0c;加速行业智能跃迁”为主题的华为云生态大会2025在安徽芜湖召开。大腾智能受邀出席此次盛会&#xff0c;与众多行业精英、生态伙伴齐聚一堂&#xff0c;深度参与前沿技术演示、生态伙伴签约及商业场景共创&#xff0c;与行业…...

Java基础关键_037_Java 常见新特性

目 录 一、新语法 1.JShell 2.try-with-resources &#xff08;1&#xff09;jdk 7 之前 &#xff08;2&#xff09;jdk 7 之后 &#xff08;3&#xff09;jdk 9 之后 3.局部变量类型判断&#xff08;不推荐&#xff09; 4.instanceof 的模式匹配 &#xff08;1&a…...

鸿蒙公共通用组件封装实战指南:从基础到进阶

一、鸿蒙组件封装核心原则 1.1 高内聚低耦合设计 在鸿蒙应用开发中&#xff0c;高内聚低耦合是组件封装的关键准则&#xff0c;它能极大提升代码的可维护性与复用性。 从原子化拆分的角度来看&#xff0c;我们要把复杂的 UI 界面拆分为基础组件和复合组件。像按钮、输入框这…...

IntelliJ 配置(二)配置相关类库(2)LineMarkerProvider

一、介绍 LineMarkerProvider 是 IntelliJ 平台插件开发中的一个接口&#xff0c;它的作用是在编辑器左侧的“行标记区域”&#xff08;就是代码行号左边那一栏&#xff09;添加各种图标、标记或导航链接。比如Java 类中看到的&#xff1a; 小绿色三角形&#xff08;可以点击运…...

红宝书第四十二讲:Angular核心特性精讲:依赖注入 RxJS整合

红宝书第四十二讲&#xff1a;Angular核心特性精讲&#xff1a;依赖注入 & RxJS整合 资料取自《JavaScript高级程序设计&#xff08;第5版&#xff09;》。 查看总目录&#xff1a;红宝书学习大纲 一、依赖注入&#xff08;Dependency Injection&#xff09;&#xff1a;快…...

AD917X系列JESD204B MODE7使用

MODE7特殊在F8&#xff0c;M4使用2个复数通道 CH0_NCO10MHz CH1_NCO30MHZ DP_NCO50MHz DDS1偏移20MHz DDS2偏移40MHz...

软考高级系统架构设计师-第11章 系统架构设计

【本章学习建议】 根据考试大纲&#xff0c;本章不仅考查系统架构设计师单选题&#xff0c;预计考12分左右&#xff0c;而且案例分析和论文写作也是必考&#xff0c;对应第二版教材第7章&#xff0c;属于重点学习的章节。 软考高级系统架构设计师VIP课程https://edu.csdn.net/…...

中和农信的“三农”服务密码:科技+标准化助力乡村振兴

作为中国农村市场最大的专注服务农村小微客户的“三农”综合服务机构&#xff0c;中和农信凭借多年积累的农村服务经验&#xff0c;成功从单一小额信贷机构转型为覆盖金融、生产、生活及生态服务的综合型“三农”服务平台。近期&#xff0c;中和农信在由中保保险资产登记交易系…...

【Redis】布隆过滤器应对缓存穿透的go调用实现

布隆过滤器 https://pkg.go.dev/github.com/bits-and-blooms/bloom/v3 作用&#xff1a; 判断一个元素是不是在集合中 工作原理&#xff1a; 一个位数组&#xff08;bit array&#xff09;&#xff0c;初始全为0。多个哈希函数&#xff0c;运算输入&#xff0c;从而映射到位数…...