JMeter接口测试-6.JMeter项目实战

news2025/1/8 5:32:07

1.项目介绍

知识点:

  • 微信小程序项目及接口文档介绍

1.1 微信小程序项目介绍

image-20200210114125869

  • 微信开发者工具

    • 下载:微信开发者工具下载地址与更新日志 | 微信开放文档

      image-20200210114210046

  • 项目代码运行

    • 使用登录扫码,登录开发者工具

      • image-20200210114312396

    • 登录成功后,选择小程序

      • image-20200210114427036

      • 点击+号,添加项目代码

      • 导入项目代码

        • 注意一点AppID,测试过程中是需要管理员授权的

          项目演示

        • image-20200210115147829

1.2 接口文档介绍

  • 详细见接口文档

2. 接口测试用例编写

问题

  • 大量的测试脚本与测试数据混合在一起

  • 尽管使用了参数化,但随着接口增加,HTTP取样器也随着增加

解决办法:

  • 使用数据驱动实现

数据驱动

数据驱动Data Driven Testing(DDT),是一种用于创建自动化测试的方法,或者说是一种架构, 本质是输入数据和用这些数据获取测试结果, 使测试逻辑和测试数据分离.

DDT的优点是测试工程师不必为每一个输入数据创建一个单独的测试用例, 测试在一个实例中创建, 并且输入测试数据和预期结果在表格文件中获取

2.1 CSV格式接口测试用例设计

详细见微信小程序接口测试用例.csv文件

2.2 JMeter接口编写

  1. 用excel表格打开新建的csv文件,设计测试用例

  2. 添加线程组,在线程组下新增循环控制器,循环次数设置为永远

  3. 循环控制器下在循环控制器下添加csv 数据文件设置

  4. 在循环控制下添加如果(if)控制器,主要是判断如果是get方法就走这个if_get控制器, 如果是post方法, 就走if_post控制器.

    • 根据调用方法选择请求方式

      • 通过if选择器区分GET与POST方法的请求,配置http请求

      • Post请求的配置方式:post请求参数放在bodydata中,(设置一个http信息管理头content-type:application/json来传入json格式的参数)。

      • Get请求的配置方式:get请求的参数配置url后面

  5. 配置响应断言及数据库验证

3. Jenkins集成JMeter

3.1 Jenkins介绍

什么是持续集成?

  • CI(Continuous integration)

  • 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集成。

  • 每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。

  • 许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。

为什么要进行持续集成?

  • 集成测试时,发现很多接口不通或逻辑不对

    • 浪费大量集成测试时间

  • 版本提测时,需要手动去编译打包最新的代码

    • 提测等待时间较长

  • 线上测试时,手式发布代码及上线

    • 容易出现脚本混乱,影响上线质量,导致频繁的代码回滚

Jenkins介绍

Jenkins是一个开源软件项目,是基于Java开发的一种工具,可扩展的持续集成、交付、部署(软件/代码的编译、打包、部署)的基于web界面的平台。允许持续集成和持续交付项目,无论用的是什么平台,可以处理任何类型的构建或持续集成。

  • 官网:Jenkins

  • 官方文档:https://jenkins.io/zh/doc/

  • Jenkins的全部镜像:http://mirrors.jenkins-ci.org/status.html

Jenkins特点

  • 开源免费

  • 安装配置超级简单

  • 跨平台,支持所有的平台

  • web形式的可视化的管理页面

  • 分布式构建

  • 丰富的插件支持

3.2 CentOS下搭建Jenkins持续集成环境

1、安装JDK

yum install -y java

2、安装jenkins

添加Jenkins库到yum库,Jenkins将从这里下载安装。

1 wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo
2 rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key
3 yum install -y jenkins

配置jenkis的端口

vi /etc/sysconfig/jenkins
​

找到修改端口号:

JENKINS_PORT="8080" 此端口不冲突可以不修改

3、启动jenkins

service jenkins start/stop/restart
​
  • 安装成功后Jenkins将作为一个守护进程随系统启动

  • 系统会创建一个“jenkins”用户来允许这个服务,如果改变服务所有者,同时需要修改/var/log/jenkins, /var/lib/jenkins, 和/var/cache/jenkins的所有者

  • 启动的时候将从/etc/sysconfig/jenkins获取配置参数

  • 默认情况下,Jenkins运行在8080端口,在浏览器中直接访问该端进行服务配置

  • Jenkins的RPM仓库配置被加到/etc/yum.repos.d/jenkins.repo

4、打开jenkins

在浏览器中访问 首次进入会要求输入初始密码如下图, 初始密码在:/var/lib/jenkins/secrets/initialAdminPassword

选择“Install suggested plugins”安装默认的插件,下面Jenkins就会自己去下载相关的插件进行安装。

创建超级管理员账号

3.3 Jenkins修改显示语言为中文

安装插件

  • 主界面 -> 系统管理 -> 插件管理 -> 可选插件

  • 安装插件Locale plugin

  • 安装插件Localization: Chinese(Simplified)

修改配置

  • 系统管理 -> 系统设置 -> Locale

  • 若修改为中文简体,Default Language设置为:

zh_cn
  • 若修改为中文繁体,Default Language设置为:

zh_tw
  • 若要修改回英文,Default Language设置为:

en_us

勾选:"Ignore browser preference and force this language to all users" 并保存。

3.4 jenkins重启

浏览器地址栏输入
http://localhost:8080/restart

3.5 远程访问

  1. 关闭防火墙,命令如下:

    查看---  systemctl status firewalld.service
    关闭---  systemctl stop firewalld.service(重启系统后防火墙会重启开启)
    永远禁止防火墙-- systemctl disable firewalld.service
    启动:systemctl start firewalld.service
    防火墙随系统开启启动  : systemctl enable firewalld.service

    永远禁止防火墙-- systemctl disable firewalld.service

3.6 插件安装及配置

3.6.1 插件及相关软件安装列表

插件:jenkins->系统管理 ->管理插件->可选插件

  • HTML Publisher

  • Email Extension Plugin

  • Ant Plugin

系统环境:虚拟机CentOS7

软件列表:

  1. ant--下载地址:Apache Ant - Binary Distributions

  2. jmeter--下载地址:Apache JMeter - Download Apache JMeter

  3. git--下载地址:Git - Downloads

3.6.2 git下载

  1. 可使用Yum直接安装

  2. yum install git
  3. 配置git:Manage Jenkins->Global Tool Configuration->Git

3.6.3 Ant安装及配置:

  1. 下载Ant包apache-ant-1.9.14-bin.tar.gz

  2. 解压缩tar -zxvf apache-ant-1.9.14-bin.tar.gz

  3. 把解压的文件件apache-ant-1.9.14移动在/usr/share/ant目录

  4. mv apache-ant-1.9.14 /usr/share/ant
  5. 配置ant环境变量

  6. vi /etc/profile
    export ANT_HOME=/usr/share/ant
    JMETER_HOME=/opt/apache-jmeter-5.2.1/
    export PATH=$ANT_HOME/bin:$PATH:$JMETER_HOME
  7. Ant配置Manage Jenkins->Global Tool Configuration->ant

3.6.4 JMeter安装及配置

  1. 把本地的JMeter直接上传到服务器上,路径/opt/apache-jmeter-5.2.1/

  2. 配置环境变化JMETER_HOME

    vi /etc/profile
    export ANT_HOME=/usr/share/ant
    JMETER_HOME=/opt/apache-jmeter-5.2.1/
    export PATH=$ANT_HOME/bin:$PATH:$JMETER_HOME
  3. 修改JMeter配置jmeter.properties

  4. jmeter.properties文件中修改jmeter.save.saveservice.output_format=csv 为  jmeter.save.saveservice.output_format=xml,并去掉前面的注释符号#
  5. jmeter安装目录apache-jmeter\extras的ant-jmeter.jar复制到ant安装目录下ant\lib下

3.7 Jenkins配置及运行

3.7.1 创建Jenkins项目

步骤:

  1. 进入Jenkins主页

  2. 点击新建

  3. 输入项目名称 ,并点击构建一个自由风格的软件项目。

  4. 点击确定

3.7.2 配置Jenkins项目

3.7.2.1 General配置

基本设置包括项目名称、描述、保存构建历史时间等,通过url或者cli方式触发任务可以向任务进行传参,必要的是指定节点(label)

3.7.2.2 源码管理配置

前置操作:

  • 上传JMeter相关文件到github

  • git安装

操作步骤:

  1. 勾选 Git,输入 Repository URL

    Repository URL 填写具体git上的仓库url,如果为私有,需要继续添加Credentials,如果为公有直接填写url即可,Credentials为none,
  2. 点击 Add,点击 Jenkins

  3. 输入 github 用户名和密码,点击Add

    image-20200221101501410

3.7.2.3 构建触发器 配置

操作步骤:

  • 勾选 Poll SCM,日程表中填写 */1 * * * *

参数介绍

其中有 5 个参数,分别表示:

  • MINUTE:Minutes within the hour(0-59)

  • HOUR:The hour of the day(0-23)

  • DOM:The day of the month(1-31)

  • MONTH:The month(1-12)

  • DOW:The day of the week(0-7)where 0 and 7 are sunday

常用配置:

  • 0 * * * * 为每个小时执行一次

  • 0 1 * * * 为没天的凌晨1点执行一次,这种配置的设置,适合执行一些冒烟的测试用例

  • 第一个参数:min,0-59

  • 第二个参数:hour:0-23

  • 第三个参数:day:0-31

  • 第四个参数:month:1-12

  • 第五个参数:week:0-7(0 和 7 代表 Sunday)

3.7.2.4 构建 配置
  1. 使用Ant运行

    image-20200221101434777

3.7.2.5 构建后操作配置

报告配置

操作步骤:

  1. 点击 增加构建后步骤,选择HTML Report

邮件配置

此时可以选择Editable Email Notification来构建邮件通知。 在此处,之前的邮件主题,内容均可以自定义,在高级里面,选择邮件接收人

步骤:

  1. Jenkins->配置->邮件通知

  2. 设置相关信息

整个邮件配置分成三部分 1. 发件人测试邮件配置 2. 发件人正式邮件配置 3. 收件人配置 3.10.1 发件人测试邮件配置 发件人后期会输入发件人的邮箱和密码,此时输入的密码并不是邮箱的密码而是需要单独进行配置。 以 163 邮箱为例

  1. 点击设置,选择 POP3/SMTP/IMAP

  2. 点击左侧 客户端授权密码,点击开启,输入收到的手机短信

  3. 设置 客户端授权密码,点击确定即可

    1. 点击 系统管理

    2. 点击 系统设置

    3. 找到 Jenkins Location

    4. 输入 系统管理员邮件地址 为发件人邮箱

    5. 找到 邮件通知

      1. 输入 SMTP服务器:例 smtp.163.com

      2. 输入 用户默认邮件后缀:例如 @163.com

      3. 点击 高级

      4. 输入 用户名 为发件人邮箱

        1. 输入 密码 为客户端授权密码

        2. 勾选 通过发送测试邮件测试配置

        3. 输入 Test e-mail recipient 为收件联系人

        4. 点击 Test configuration,会提示 Email was successfully sent。并查看收件人邮箱是否收到了邮件

3.10.2 发件人正式邮件配置

  1. 点击 系统管理

  2. 点击 系统设置

  3. 找到 Extended E-mail Notification

  4. 输入 SMTP server:例 smtp.163.com

  5. 输入 Default user E-mail suffix:例如 @163.com

  6. 点击 高级

    1. 勾选 Use SMTP Authentication

    2. 输入 User Name 为发件人邮箱

    3. 输入 Password 为客户端授权密码

    4. 选择 Default Content Type 为 HTML

    5. 将以下 html 代码赋值到 Default Content 中(此项为邮件模板,复制即可)

    6. <hr/>
      (本邮件是程序自动下发的,请勿回复!)<br/><hr/>
      项目名称:$PROJECT_NAME<br/><hr/>
      构建编号:$BUILD_NUMBER<br/><hr/>
      git版本号:${GIT_REVISION}<br/><hr/>
      构建状态:$BUILD_STATUS<br/><hr/>
      触发原因:${CAUSE}<br/><hr/>
      目录:${ITEM_ROOTDIR}<br/><hr/>
      构建日志地址:<a href=" ">${BUILD_URL}console</a ><br/><hr/>
      构建地址:<a href="$BUILD_URL">$BUILD_URL</a ><br/><hr/>
      报告地址:<a href="${BUILD_URL}allure">${BUILD_URL}allure</a ><br/><hr/>
      失败数:${FAILED_TESTS}<br/><hr/>
      成功数:${FAILED_TESTS}<br/><hr/>
      变更集:${JELLY_SCRIPT,template="html"}<br/><hr/>

      此时无法验证配置是否成功,只能等收件人配置好后,进行测试。

      3.10.3 收件人配置 收件人需要在项目中进行配置,比如,微信项目出了问题肯定是微信的开发人员接收,QQ项目出了问题肯定是QQ的 开发人员接收。

      1. 打开 jenkins 主页,点击进入项目

      2. 点击 配置

      3. 点击 构建后操作,点击 增加构建后操作步骤,点击 Editable Email Notification

      4. 点击 Advanced Settings

      5. 点击 右下角 高级

      6. 输入 Recipient List 为需要收件的联系人,多个联系人用英文逗号隔开

      7. 保存后,回到项目中,点击 立即构建

      8. 结果 收到下图邮件,即为成功。开发人员可以通过报告的连接快速的查看 allure 报告

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

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

相关文章

Spring Security 概述,鸟瞰 Spring Security 及其功能

在本文中&#xff0c;我们将从鸟瞰的角度了解 Spring Security 的用途以及它能为我们提供什么。网络上的任何东西都可能是攻击的潜在受害者。不幸的是&#xff0c;在这个即使是最富有、最具创新性的技术公司也会受到黑客攻击的世界里&#xff0c;保护 Web 应用程序并实现授权和…

LLM:并行化训练

llama3.1论文称使用了&#xff1a;张量并行&#xff08;TP&#xff09;、流水线并行&#xff08;PP&#xff09;、上下文并行&#xff08;CP&#xff09;和数据并行&#xff08;DP&#xff09;。 并行化可以先粗分为&#xff1a; 1.数据并行 2.模型并行&#xff1a;张量并行&…

多模态多智能体,在实现系统2(深思熟虑)方面的探索

多模态和多智能体&#xff0c;在系统2&#xff08;深思熟虑&#xff09;方面的探索 提出背景理性的定义为什么理性定义是四大基本原则&#xff0c;而不是其他数量&#xff0c;又为何是这四个&#xff0c;而不是其他&#xff1f;理性 不等于 推理 通过多模态多智能体系统增强理性…

el-table 表格序号列前端实现递增,切换分页不从头开始

<el-table-column type"index" width"55" label"序号" :index"hIndex"> </el-table-column> 分页 <el-pagination size-change"handleSizeChange" current-change"handleCurrentChange"> <…

【Linux】动态库|静态库|创建使用|动态库加载过程

目录 ​编辑 前言 静态库 为什么要使用库(形成原理 ) 生成一个静态库 静态库的使用 动态库 生成一个动态库 动态库的使用 解决方法 动态库加载过程 ​编辑 前言 库&#xff08;Library&#xff09;是一种方式&#xff0c;可以将代码打包成可重用的格式&#xff08;站…

OrionX:革新GPU资源管理,助力AI开发团队高效运作

您的AI开发团队是否经常陷入这样的窘境&#xff1a; 人多卡少&#xff0c;GPU资源难以满足每个成员的需求&#xff1f; 当开发环境中需要变更GPU卡配置时&#xff0c;流程繁琐不堪&#xff0c;不得不关闭容器、重新配置再重启&#xff1f; 是否曾因GPU卡分配后未被充分利用而…

简单好用的DX修复工具下载|修复丢失损坏的DLL文件

DirectX是被广泛运用于游戏和多媒体应用程序的一种重要组件&#xff0c;它可以提供优良的视觉效果和音频体验。很多用户在使用计算机时或多或少会遇到因为DirectX缺失而导致相关问题。例如&#xff1a;系统故障、图形渲染错误、音频失真等问题。 今天小编将深入浅出地为大家讲…

在循环语句里面element重复提示最后一条的解决办法

做项目时遇到了个问题&#xff0c;要求把时间重叠的每个阶段都提示出来 但是发现$message的提示框不仅都重合在一起 并且数据内容只是最后一次循环出来的信息如下图 首先解决样式重合问题 这里我就用的是简单粗暴的方法加个定时器 这样重合问题就可以解决其次是提示内容只是最后…

删除分区 全局索引 drop partition global index Statistics变化

1.不一定unusable&#xff0c;可以先删除data (index 再删除过程中会更新结构)再drop/truncate. ---------------------- CREATE TABLE interval_sale ( prod_id NUMBER(6) , cust_id NUMBER , time_id DATE ) PARTITION BY RANGE (time_i…

前端面试宝典【HTML篇】【4】

欢迎来到《前端面试宝典》,这里是你通往互联网大厂的专属通道,专为渴望在前端领域大放异彩的你量身定制。通过本专栏的学习,无论是一线大厂还是初创企业的面试,都能自信满满地展现你的实力。 核心特色: 独家实战案例:每一期专栏都将深入剖析真实的前端面试案例,从基础知…

C++回顾——虚析构

一、示例代码 #include<iostream> using namespace std;class Weapon { public:virtual void getWeapon() 0;//virtual ~Weapon() default; };class bow :public Weapon { public:void getWeapon() override{cout << "弓箭 " << ends;}~bow(){c…

支持对接OpenAI、Ollama和本地向量模型,MaxKB开源知识库问答系统发布v1.4.0版本

2024年8月1日&#xff0c;MaxKB开源知识库问答系统正式发布v1.4.0版本。在这一版本中&#xff0c;MaxKB的社区版支持对接OpenAI、Ollama和本地的向量模型&#xff0c;并且支持设置模型的使用权限&#xff0c;同时MaxKB还支持知识库自定义向量模型。 自v1.4.0版本开始&#xff…

坐牢第二十一天 20240801(IO)

一.作业 1、使用两个线程完成两个文件的拷贝&#xff0c;分支线程1拷贝前一半&#xff0c;分支线程2拷贝后一半&#xff0c;主线程回收两个分支线程的资源 #include <myhead.h> struct Node {char *src;char *dest;int start;int len; }; //定义求源文件大小的函数 int…

python爬虫初识

一、什么互联网 互联网&#xff08;Internet&#xff09;是全球范围内最大的计算机网络&#xff0c;它将数以百万计的私人、公共、学术、商业和政府网络通过一系列标准通信协议&#xff08;如TCP/IP&#xff09;连接起来形成的一个庞大的国际网络。 互联网的起源可以追溯到196…

【C++】1.C++入门(1)

文章目录 1.C关键字2.命名空间2.1 命名空间定义2.2 命名空间使用 3.C输入&输出4.缺省参数4.1 缺省参数概念4.2 缺省参数分类 5.函数重载5.1 函数重载概念5.2 C支持函数重载的原理--名字修饰(name Mangling) 1.C关键字 C总计63个关键字&#xff0c;C语言32个关键字 2.命名空…

0206创建场景状态的基础接口

一、创建一个类 二、写一个类&#xff0c;作为接口类的作用&#xff08;不一定是interface&#xff09;

ctfshow 大赛原题 web689--web695

web689 <?php error_reporting(0); if(isset($_GET) && !empty($_GET)){$url $_GET[file];$path "upload/".$_GET[path];}else{show_source(__FILE__);exit(); }if(strpos($path,..) > -1){ //检查 $path 是否包含 ..&#xff0c;以防止路径注…

Podman 发布 v5.2.0-RC3

这是 v5.2.0 的最终候选版本。以下是初步的发布说明。 功能 Podman 现在支持使用 libkrun 作为在 MacOS 上创建虚拟机的后端。libkrun 后端的优势在于允许将 GPU 挂载到虚拟机中以加速任务。默认后端仍然是 applehv。Quadlet 现在支持.build 文件&#xff0c;这使得可以由 Quad…

2024PDF编辑工具新趋势:从基础到高级的全方位方案

随着数字化办公的发展&#xff0c;我们对PDF编辑的需求也日益增长。从最开始对文字的修改到现在可以插入音频、视频文件。这些都离不开PDF编辑软件的功劳&#xff0c;那有什么好用的PDF编辑工具呢&#xff0c;听我娓娓道来。 1.福昕PDF编辑器 直达链接&#xff1a;https://e…