• 接口测试基础06


    Jmeter组件:逻辑控制器(重点)

    A、是什么

    逻辑控制器:可以控制取样器的实现顺序(分支+循环)的一种组件
    类似于计算机语言的流程控制语句,流程控制就是控制代码的执行顺序(分支+循环)

    B、为什么

    需求:
    1. name=['百度','京东','淘宝']
    2. name=百度,线程组执行请求百度;name=京东,线程组执行请求京东;name=淘宝,线程组执行请求淘宝;
    问题:
    1. Jmeter目前学习的知识无法使用判断语句去控制HTTP取样器
    什么是逻辑控制器?
    概念:Jmeter逻辑控制器是可以控制取样器(Sampler)的执行顺序,它由多个逻辑控制语句封装成不同功能的组件组成
    逻辑控制器作用域
    作用域:只对其子节点的sampler有效。
    常用逻辑控制器
    1. 如果(If)控制器
    2. ForEach控制器
    3. 循环控制器

    如果(If)控制器

    作用:条件成真,则执行控制器下所有取样器
    解决方案分析
    1. 测试计划->线程组
    2. 测试计划->用户自定义变量
    3. 线程组->如果(If)控制器
    4. 如果(If)控制器->HTTP请求
    5. 测试计划-察看结果树
    技术难点分析
    如果(If)控制器 参数设置
    如果(If)控制器参数配置图
    1. 条件:"${name}"=="百度"
    2. 注意:
        1) 引用变量格式${name}需要被双引号括起来
        2) 两个等号
        3) 值需要被双引号括起来
    如果(If)控制器-总结
    1. 作用
    2. 作用域
    3. 条件格式

    ForEach控制器

    作用:ForEach控制器一般和用户定义的变量一起使用,在用户自定义变量中读取一系列相关的变量。
    案例1
    使用ForEach组件读取自定义变量,作为请求(查询学院-所有)的user变量值使用
    操作分析
    1. 测试计划->线程组
    2. 线程组->用户定义的变量
    3. 线程组->ForEach控制器
    4. ForEach控制器->HTTP请求
    5. 测试计划->察看结果树
    技术难点分析
    1. ForEach控制器参数设置
    2. 用户定义的变量书写格式(前缀+_+数字)
    ForEach控制器参数配置图
    1. 输入前缀变量:输入要遍历变量前缀
    2. Start index for loop(exclusive):遍历变量开始的索引(从0开始)
    3. End index for loop(inclusive):遍历变量结束的索引(不包括结束索引)
    4. 输出变量名称:定义要被引用的变量名称
    ForEach控制器-总结
    1. 作用
    2. 使用ForEach读取用户定义的变量时,变量格式
    3. ForEach参数设置

    循环控制器

    作用:指定循环控制器内取样器的执行次数
    案例3
    使用循环控制器执行(查询学院-所有)接口10次
    操作步骤分析
    1. 测试计划->线程组
    2. 线程组->循环控制器
    3. 循环控制器->HTTP请求(查询学院-所有)
    4. 测试计划->察看结果树
    循环控制器配置图
    1. 循环次数:要执行的次数
    循环控制器-总结
    循环控制器更灵活,线程组循环是组内所有请求都循环执行,循环控制器可以只是让组内指定的请求循环执行

    Jmeter组件:QPS

    A、是什么?

    QPS: Query Per Second ---- 每秒查询率,每秒访问服务器资源多少次
    
    20QPS == 每秒访问20次

    B、为什么?

    一个用户以 20QPS 的频率访问服务器,持续10秒,查看服务器的平均响应时间?
    (等价)
    一个用户每秒访问20次服务器,持续10秒,查看服务器的平均响应时间?

    C、怎么用?

    使用新的组件实现:常量吞吐定时器 Timer ----> Constant Throughput Timer
    实现流程:
    1)、搭框架(测试计划,线程组,http请求,聚合报告)
    1)、搭框架(测试计划,线程组,http请求,聚合报告)
    循环次数设置: 频率*持续时间
    2)、添加常量吞吐定时器
    将 QPS(每秒查询数) 换算成每分钟查询数
    3)、查看聚合报告
    throughput 显示的是每秒查询数,参考步骤2设置的值,实际执行一般围绕步骤2的值上下波动

    Jmeter组件综合:作用域(记住)

    A、是什么

    Jmeter 组件的作用范围(可以影响到哪些组件)

    B、分类

    第一类:以聚合报告为例,只对树形结构上自己的直接父级以及兄弟级以及子级...有效
                基本所有组件都属于第一类
    第二类:逻辑控制器,只对子级有效
    第三类:取样器可以不依赖任何组件存在,可以不对其他组件产生任何影响,
                取样器无作用域概念

    Jmeter组件综合:执行顺序(记住)

    A、是什么?

    组件: Jmeter的内置功能,每一个功能都是一个组件
    元件:元件中存储的都是性质相似的组件(就是对组件的分类管理)

    B、排序

    1.各元件之间的执行顺
      1) 配置元件(config elements)  	: 存储了一些程序的全局性数据
      2) 前置处理程序(Per-processors)    :取样器执行之前执行的组件,可以存储批量执行的数据
      3) 定时器(timers)			    :在请求执行之前集合用户
      4) 取样器(Sampler)			    :访问服务器
      5) 后置处理程序(Post-processors)   :处理响应的结果
      6) 断言(Assertions)			     :断言结果
      7) 监听器(Listeners)   		    :最后执行
    理解记忆:核心思想就是以取样器为中心划分的。

    Jmeter扩展组件:图形监视器

    A、是什么?

    扩展组件:不是Jmeter 官方提供的,而是自己开发的组件,就是扩展组件
    图形监视器:是监视服务器的如,内存、CPU、磁盘、网络等运行状态的组件实现

    B、为什么?

    模拟生产环境下,服务器运行状态的测试

    C、怎么用?

    C-1、实现思想
    1)、明确应用场景:
        学习期间:服务器和测试程序在个人 PC 机,工作时,测试程序可能需要远程访问服务器
        我们要测试的是服务器的运行状态
    2)、图解流程
    C-2、实现流程
    1)、Jmeter本身不具备该功能,下载安装第三方实现
    2)、在服务器端安装窃听程序,在测试机端安装(整合进 Jmeter )接收程序
            窃听程序: Server_Agent,启动:双击 serverAgent.bat 使用端口号 4444
    		接收程序: 复制Jmeter_Plugins_Starndat 目录下的 jar包,到Jmeterlibext
    3)、编写测试脚本启动并执行
    	a)、脚本循环 次数设置为无限,如果次数设置比较少,可能执行时间短,等不到监听
    	b)、添加接收组件: 监听器 ----> jp@gc permon Metrics Collector

    Jmeter组件:FTP(了解)

    A、是什么

    FTP:文件上传和下载
    上传:将文件从本地上传到服务器
    下载:将服务器资源下载到本地

    B、为什么?

    程序中常见操作 

    C、怎么用?

    C-1、保证服务器程序具备文件上传和下载的功能,安装一个文件上传下载服务器(FTP服务器)
    
    C-2、Jmeter内置了 FTP请求,可以通过此请求实现文件传输测试 

    Jmeter项目准备:接口清单提取与整理

    A、接口清单组成

    接口清单组成:
    
    功能模块,每个功能又有三要素: URL + 提交的数据 + 响应的数据

    B、API文档

    Application Programming Interface 应用程序编程接口,此文档中声明了
    
    程序的功能,以及该功能描述以及访问的资源路径和提交响应的数据
    
    是开发和测试共同遵守的文档说明

    C、接口清单就是从 API 文档提取整理的

    因为 API 文档内容冗余,测试需要从中提取,测试需要的关键信息

  • 相关阅读:
    mysql安装教程zip版
    《农村基层党组织党务管理信息系统设计研究》论文笔记(二十)
    《黑河学院党务信息管理系统的设计与实现》论文笔记(十九)
    《学院党务信息系统的设计与实现》论文笔记(十八)
    《企业党务管理系统》论文笔记(十七)
    《基于B/S模式的高校党务信息管理系统的设计与实现》论文笔记(十六)
    《基于J2EE平台的党建管理系统设计与实现》论文笔记(十五)
    《基层党员管理信息系统的分析与设计》论文笔记(十四)
    《课程选修管理系统的设计与实现》论文笔记(二十)
    《高校课程管理系统的开发与设计》论文笔记(十九)
  • 原文地址:https://www.cnblogs.com/st998/p/13785949.html
Copyright © 2020-2023  润新知