Python学习之路-接口测试:工具使用

Python学习之路-接口测试:工具使用

Jmeter

概念

Jmeter:是Apche公司使用Java平台开发的一款测试工具。

作用

  • 接口测试
  • 性能测试
  • 压力测试
  • Web自动化测试
  • 数据库测试
  • JAVA程序测试

优点:

  • 开源、免费
  • 支持多协议
  • 小巧
  • 功能强大

缺点

  • 不支持IP欺骗
  • 使用JMeter无法验证JS程序,也无法验证页面UI,所以要须要和Selenium配合来完成Web2.0应用的测试

Jmeter工具安装

下载

官网下载地址

http://jmeter.apache.org/download_jmeter.cgi

注意:下载后,解压文件到任意目录,避免在一个有空格的路径安装Jmeter,这将导致远程测试出现问题。

启动JMeter的两种方式

进入bin目录

  • 双击 ApacheJMeter.jar文件;

  • 双击 Jmeter.bat文件;

  • 两种打开方式的区别

  • 发送桌面快捷方式

常用目录文件介绍

Bin目录

存放可执行文件和配置文件

  • Jmeter.bat:windows系统中JMeter的启动文件
  • ApacheJMeter.jar Java环境下的JMeter启动文件
  • Jmeter.log:日志文件
  • Jmeter.sh:linux系统中JMeter的启动文件
  • Jmeter.properties:系统配置文件
  • Jmeter-server.bat:windows分布式测试要用到的服务器配置
  • Jmeter-serve:linux分布式测试要用到的服务器配置
docs目录

docs:是JMeter的java Doc,可打开api\index.html页面来查看;

printable_docs目录

printable_docs的usermanual子目录下的内容是JMeter的用户手册文档,其中usermanual下component_reference.html是最常用到的核心元件帮助文档。

工具功能界面布局

界面布局

JMeter的主界面布局分为标题栏、菜单栏、工具栏、树形标签栏和内容栏

标题栏:主要显示计划信息及JMeter版本。
菜单栏:全部的功能的都包含在菜单栏中。
工具栏:工具栏中的按钮在菜单栏都可以找到,工具栏就相当于菜单栏常用功能的快捷按钮
树形标签栏:树形标签栏通常用来显示测试用例(计划)相关的标签。
内容栏:配合树形标签栏显示,树形标签中点击哪个标签,内容栏中就显示相应的内容和操作。

使用JMeter进行接口测试
遗留的问题:
  • 需求对我们学院查询执行100次,如何去做?
  • 50个请求同时请求如何操作?
使用JMeter的解决方案
  • 添加【测试计划
  • 基于添加的测试计划添加【线程组】,循环次数设置为100次
  • 在【取样器】中基于线程组添加HTTP请求
  • 在【监听器】基于线程组添加【察看结果树】
  • 在监听器基于线程组添加【聚合报告】
Test Plan
作用:
  • 本次测试所需要的【组件】都是基于测试计划添加;
  • 本次测试所有组件的设置与执行都基于测试计划;

组件:完成指定功能代码段的封装;

选项
  • 独立运行每个线程组:

    进程:是每个正在运行的应用程序。
    线程:按照进程的指令去执行指定的代码。
    线程组(多线程):多个线程的组合。
    线程组(多线程)的执行顺序是并行的。

    勾选:让本次测试计划中所有线程组保持从上到下顺序执行

  • Add directory or jar to classpath:

    加载第三方jar包;比如:测试数据库时使用,加载数据库驱动jar包。
    
Threads(User)线程组
thread group(线程组)
作用

添加测试中使用的大多数组件

线程属性
  • 线程数:虚拟用户数
  • Ramp-Up Period(in serconds):启动虚拟全部用户数所需要的时间
  • 循环次数 :指定次数或勾线永远
  • 调度器:勾选后,调度器配置才能使用;
调度器配置
  • 持续时间(秒):设置脚本压测持续时间
  • 启动延迟(秒):启动延迟时间
组件详解
HTTP请求
作用
  • 模拟前端或第三方软件向服务器发送请求;
  • 设置请求时的方法和参数数据;
参数详解
  • 名称:本属性用于标识一个取样器,建议使用一个有意义的名称。
  • 服务器名称或IP :HTTP请求发送的目标服务器名称或IP地址。
  • 端口号:目标服务器的端口号,默认值为80 。
  • 协议:向目标服务器发送HTTP请求时的协议,可以是http或者是https ,默认值为http 。
  • 方法:发送HTTP请求的方法,可用方法包括GET、POST、PUT、DELETE。
  • Content encoding :内容的编码方式,默认值为iso8859;一般设置【UTF-8】
  • 路径:目标URL路径(不包括服务器地址和端口)
  • 同请求一起发送参数:请求时需要传递参数
Body Data选项作用:
  • 新增或更新时需要传递JSON报文;

  • 新增和更新时传入报文也需要设置Content-Type:application/json,告诉服务器我传的数据格式为JSON格式;设置地点:配置元件–>HTTP信息头管理器

察看结果树
作用:
  • 查看请求服务器时的请求信息;
  • 查看服务器响应数据;
  • 记录信息到指定文件;
说明:
  • 文件名:存放服务器响应后的状态信息; 如:e:\查询所有response.txt
  • 取样结果:服务器响应的信息头信息;比如:响应代码,响应数据大小
  • 请求:查看向服务器请求时的信息;比如:请求地址、方法、数据等
  • 响应数据:查看服务器响应的数据;比如:获取资源时,返回的JSON数据
察看结果树总结:
  • 查看请求
  • 查看响应
  • 存储请求状态信息

元件

概念

相同类似功能组件的集合称之为元件

  1. 逻辑控制器
  2. 配置元件
  3. 定时器
  4. 前置处理器
  5. Sampler
  6. 后置处理器
  7. 断言
  8. 监听器

元件结论

只学重要的、常用的

各元件中需要掌握元件

配置元件(config Element)
  • CSV Data Set Config
  • HTTP请求默认值
  • HTTP信息头管理器
前置处理器(Per Processors)

用户参数

定时器(Timer)

Synchronizing Timer

取样器(sample)
  • HTTP请求
  • JDBC Request
  • Debug Sampler
后置处理器(Post Processors)
  • 正则表达式提取器
  • XPath Extractor

####断言(Assertions)
响应断言

监听器(Listener)
  • 察看结果树
  • 聚合报告
  • 断言结果
逻辑控制器
  • 如果(If)控制器
  • ForEach控制器
  • 循环控制器
  • Include Controller
  • 模块控制器
总结:

正常来说,应该开始按照顺序一个组件一个组件的进行讲解。
问题:每个组件都不能独立执行。都需要多个组件进行配合,才能够解决实际问题。
解决方案:按照JMeter主要解决的问题点来讲解组件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/672319.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

React+Antd+tree实现树多选功能(选中项受控+支持模糊检索)

1、先上效果 树型控件,选中项形成一棵新的树,若父选中,子自动选中,子取消,父不取消,子选中,所有的父节点自动取消。同时支持模糊检索,会检索出所有包含该内容的关联节点。 2、环境准…

centos 7.6 安装cas 对接ldap 单点登录实战

centos 7.6 安装cas 对ldap 单点登录实战 1、安装前准备工作1.1、centos 7.6 安装JDK 1.81.2、centos 7 安装tomcat 9.0.841.3、windows10 安装JDK 1.81.4、windows10 安装打包工具 maven 3.9.6 2、下载cas 5.3 并打包成war包3、部署cas到tomcat4、cas对接ldap 1、安装前准备工…

LCP 30. 魔塔游戏

LCP 30. 魔塔游戏 难度: 中等 题目: 小扣当前位于魔塔游戏第一层,共有 N 个房间,编号为 0 ~ N-1。每个房间的补血道具/怪物对于血量影响记于数组 nums,其中正数表示道具补血数值,即血量增加对应数值;负数表示怪物造…

回归预测 | Matlab实现POA-BP鹈鹕算法优化BP神经网络多变量回归预测

回归预测 | Matlab实现POA-BP鹈鹕算法优化BP神经网络多变量回归预测 目录 回归预测 | Matlab实现POA-BP鹈鹕算法优化BP神经网络多变量回归预测预测效果基本描述程序设计参考资料 预测效果 基本描述 1.Matlab实现POA-BP鹈鹕算法优化BP神经网络多变量回归预测(完整源码…

【UE】游戏运行流程的简单理解

流程图 官方的游戏流程图: 一般顺序为初始化引擎、创建并初始化 GameInstance、加载关卡,最后开始游戏。 总的来说就是: 开始游戏-》游戏实例-》关卡-》游戏模式-》玩家控制器-》Pawn、玩家状态、HUD、UMG(可有可无) …

Linux 服务管理两种方式service和systemctl

配置文件位置不同: service命令使用/etc/init.d/目录下的脚本文件, 而systemctl命令使用/lib/systemd/system/目录下的unit文件。 状态信息不同:service命令通过执行脚本来获取服务状态信息,而systemctl命令通过systemd的状态管理…

RabiitMQ延迟队列(死信交换机)

Dead Letter Exchange(死信交换机) 在MQ中,当消息成为死信(Dead message 死掉的信息)后,消息中间件可以将其从当前队列发送到另一个队列中,这个队列就是死信队列。而 在RabbitMQ中,由…

二、SSM 整合配置实战

本章概要 依赖整合和添加控制层配置编写(SpringMVC 整合)业务配置编写(AOP/TX 整合)持久层配置编写(MyBatis 整合)容器初始化配置类整合测试 2.1 依赖整合和添加 数据库准备 数据库脚本 CREATE DATABASE mybatis-example;USE mybatis-example;CREATE TABLE t_emp(emp_id INT…

【C#】MVVM架构

示例结果展示 前提了解 MVVM是Model-View-ViewModel的缩写形式,它通常被用于WPF或Silverlight开发。 Model——可以理解为带有字段,属性的类。例如学校类,教师类,学生类等 View——可以理解为我们所看到的UI。前端界面。 View Model在View和Model之间,起到连接的作用,…

Linux:Cache之 Cache Invalidate和Cache Flush

1. Cache Invalidate 该操作主要为解除内存与Cache的绑定关系。 例如,操作DMA进行数据搬移时,如果目标内存配置为可Cache,那么后续通过CPU读取该内存数据时候,若Cache命中,则可能读取到的数据不是DMA搬移后的数据&…

2024-02-06(Sqoop)

1.Sqoop Apache Sqoop是Hadoop生态体系和RDBMS(关系型数据库)体系之间传递数据的一种工具。 Sqoop工作机制是将导入或者导出命令翻译成MapReduce程序来实现。在翻译出的MapReduce中主要是对inputformat和outputformat进行定制。 Hadoop生态包括&#…

Swift Combine 从入门到精通一

1. Combine 简介 用 Apple 官方的话来说,Combine 是: a declarative Swift API for processing values over time. Combine 是 Apple 用来实现函数响应式编程的库, 类似于 RxSwift。 RxSwift 是 ReactiveX 对 Swift 语言的实现。 Combine 使用了许多可以…

8868助力意甲尤文图斯足球俱乐部 寻求冬窗阵容补强

意甲的尤文图斯足球俱乐部是8868合作体育球队之一,根据意大利天空体育的消息,尤文图斯希望在冬季转会窗口通过引援来加强球队的实力,特别是在中场位置。但尤文必须卖掉一部分人来筹集资金,而伊林就在名单的最前面。 尤文想要提高自…

openssl3.2 - update debian12‘s default openssl to openssl3.2

文章目录 openssl3.2 - update debian12s default openssl to openssl3.2概述笔记回到debian12自带的openssl版本从源码编译安装最新版的openssl配置ssl访问END openssl3.2 - update debian12’s default openssl to openssl3.2 概述 在debian12虚拟机中编译了openssl3.2(ope…

Android.mk 语法详解

一.Android.mk简介 Android.mk 是Android 提供的一种makefile 文件,注意用来编译生成(exe,so,a,jar,apk)等文件。 二.Android.mk编写 分析一个最简单的Android.mk LOCAL_PATH : $(call my-dir) //定义了…

常见web安全漏洞和解决思路

一、常见安全漏洞 服务器类安全漏洞: 服务器含服务器软件类型较多,此次不再一一列举; WEB访问类安全漏洞: XSS漏洞检测 (key: xss) SQL 注入检测 (key: sqldet) 命令/代码注入检测 (key: cmd-injection) …

解决计算机“缺失ffmpeg.dll”报错?修复ffmpeg.dll文件方案

在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是“ffmpeg.dll丢失”。ffmpeg.dll是FFmpeg多媒体框架中的一个重要组件,它负责处理音频和视频的编解码。当打开某些软件时,如果系统找不到该文件,就会出现这…

okgo引入失败 (failed to resolve: com.lzy.net:okgo:)

setting.gradle.kts配置 dependencyResolutionManagement {repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)repositories {google()mavenCentral()maven { setUrl("https://maven.aliyun.com/repository/public") }maven { setUrl("https://mave…

已经设置密码的情况下连接不上linux下redis服务的,解决办法

1.服务器防火墙请放行端口6379 systemctl start firewalld.service firewall-cmd --add-port6379/tcp --permanent firewall-cmd --reload 3.修改redis的配置文件 打开redis配置文件redis.conf进行编辑,修改一些参数 将 bind 127.0.0.1修改为bind 0.0.0.0,原因是…

每天分享5款软件,让大家工作学习更顺心

​ 快乐不是在于拥有什么,而在于我们和别人分享什么。每天分享五款工具,让大家工作办公更顺心就是我最大的快乐。 1.图片放大增强——Upscayl ​ Upscayl是一款图片放大增强软件,可以利用人工智能技术将低分辨率的图片转换为高分辨率的图片&#xff0c…