jenkins构建微信小程序并展示二维码

测试小程序的过程中,很多都是在回头和前端开发说一句,兄弟帮我打一个测试版本的测试码,开发有时间的情况下还好,就直接协助了,但是很多时候他们只修复了其中几个bug,其他需要修复的bug代码正在编写,这就遇到了问题,耽误了测试时间,基于此给大家分享一下利用Jenkins去构建微信小程序二维码,并在jenkins上展示最新的二维码图片方便扫描测试。

操作步骤简介

安装 Jenkins 插件,例如 Jenkins Plugin for WeChat Mini Program Builder(微信小程序构建器插件)。

创建新的 Jenkins Pipeline,或者在现有的 Jenkins Pipeline 中启用 WeChat Mini Program Builder 插件。

配置 Jenkins 构建步骤,添加微信小程序构建相关任务。

测试您的微信小程序。

以下是详细的步骤说明:

1、安装 Jenkins 插件

登录 Jenkins 控制台。

单击 Manage Jenkins -> Manage Plugins -> Available.

搜索 WeChat Mini Program Builder 插件并安装。

2、创建新的 Jenkins Pipeline

单击 New Item,选择 Pipeline。

输入 Pipeline 名称和其他相关信息。

选中 Enable Pipeline 功能框,勾选 Enable Scm Polling 并输入 Git URL。

单击 OK 按钮完成Pipeline 设置。

启用 WeChat Mini Program Builder 插件

单击 Configure System -> Global Tools Configuration.

添加微信小程序构建器插件,输入必要的信息(如 App ID, Secret Key)并保存。

3、添加微信小程序构建器插件到 Jenkins Pipeline 中。

配置 Jenkins 构建步骤

单击 New Item -> Build with Parameters.

添加微信小程序相关的步骤到 Jenkins Pipeline 中,例如微信小程序构建任务、打包任务等。

单击 Save.

4、测试您的微信小程序

在 Jenkins 控制台上单击 Build Now 开始构建。

查看 Console Output ,确认没有错误消息。

在移动设备或微信开发者工具中测试您的小程序。

5、请注意,由于微信小程序有一些限制,请务必遵守相关要求,例如大小、格式等。在微信小程序官方文档中有更多详细信息。

示例

以下是一个 Jenkins Pipeline 的示例,用于构建微信小程序:

  1. pipeline {

  2. agent any

  3. parameters {

  4. string(name: 'APP_ID', defaultValue: '', description: 'Your Wechat Mini Program APP ID')

  5. string(name: 'SECRET_KEY', defaultValue: '', description: 'Your Wechat Mini Program Secret Key')

  6. }

  7. stages {

  8. stage('Checkout') {

  9. steps {

  10. checkout scm

  11. }

  12. }

  13. stage('Build') {

  14. steps {

  15. echo 'Building your WeChat Mini Program...'

  16. script {

  17. node {

  18. sh """

  19. npm install

  20. npm run build

  21. """

  22. }

  23. }

  24. }

  25. }

  26. stage('Deploy') {

  27. steps {

  28. script {

  29. node {

  30. def buildDir = '/var/tmp/build'

  31. dir(buildDir) {

  32. // 将构建目录移动到临时位置

  33. sh 'mv dist/* .'

  34. // 安装 WeChat Mini Program Builder 插件

  35. wechatmp init ${params.APP_ID} ${params.SECRET_KEY}

  36. // 构建微信小程序

  37. wechatmp build

  38. }

  39. }

  40. }

  41. }

  42. }

  43. }

  44. }

在上述 Pipeline 中,首先从 SCM 检出代码,然后构建小程序,并最终构建微信小程序。

注意:您需要设置一些 Jenkins 参数,例如 APP_ID 和 SECRET_KEY。这些参数可以在微信开放平台找到。

此外,在构建时,必须正确安装 WeChat Mini Program Builder 插件,并将其添加到 Jenkins 中。

在构建过程中,可以添加额外的步骤,例如测试、发布等。

展示微信小程序二维码

要在 Jenkins 上展示微信小程序的二维码,请按照以下步骤操作:

使用 Jenkins 插件生成 QR Code,并将其作为 JUnit XML 结果的一部分发送到微信小程序中。

使用 Jenkins 插件解析 JUnit XML 文件,并在微信小程序中显示 QR Code。

以下是详细的步骤说明:

生成 QR Code

安装 QR Code Generator 插件,参见官方文档。

使用该插件生成 QR Code,并将其添加到 JUnit XML 文件中。

解析 JUnit XML 文件

安装 Jenkins 的微信小程序插件,如 Jenkins Xcode Integration。

添加一个 Jenkins 步骤,在构建完成后发送 JUnit XML 文件给微信小程序。

在您的 Jenkins 实例中打开一个二维码,指向 JUnit XML 文件。

在微信小程序中打开此二维码,使其解析 JUnit XML 文件。

请注意,在显示 QR Code 之前,您需要先获取微信小程序的凭证。

Java 代码示例,演示如何在 Jenkins 中生成 QR Code:

  1. import com.google.zxing.BarcodeFormat;

  2. import com.google.zxing.EncodeHintType;

  3. import com.google.zxing.WriterException;

  4. import com.google.zxing.client.j2se.MatrixToImageWriter;

  5. import com.google.zxing.common.BitMatrix;

  6. import com.google.zxing.qrcode.QRCodeWriter;

  7. import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel;

  8. import javax.imageio.ImageIO;

  9. import java.awt.image.BufferedImage;

  10. import java.io.File;

  11. import java.io.IOException;

  12. import java.nio.file.Files;

  13. import java.nio.file.Path;

  14. import java.nio.file.Paths;

  15. import java.util.HashMap;

  16. import java.util.Map;

  17. public class QrCodeGenerator {

  18. public static void main(String[] args) throws WriterException, IOException {

  19. String content = "Hello, World!";

  20. int width = 300; // 二维码宽度

  21. int height = 300; // 二维码高度

  22. QRCodeWriter qrCodeWriter = new QRCodeWriter();

  23. Map hints = new HashMap<>();

  24. hints.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);

  25. BitMatrix bitMatrix = qrCodeWriter.encode(content, BarcodeFormat.QR_CODE, width, height, hints);

  26. Path file = Paths.get("/tmp/test.png");

  27. MatrixToImageWriter.writeToFile(bitMatrix, "PNG", file.toFile());

  28. System.out.println(file.toString());

  29. }

  30. }

在上述代码中,我们将字符串转换为 QR Code,并将结果保存为 PNG 图片。

在 Jenkins Pipeline 中,您可以使用 Jenkins Pipeline 变量来保存生成的 QR Code 文件路径,并将其作为构建结果的一部分发送给微信小程序。

您可以参考 Jenkins 的微信小程序插件文档以了解更多详细信息。

升级版-Python 

  1. from PIL import Image

  2. from pyqrcode import create as qrcode

  3. def generate_qrcode(image_path):

  4. qr_code_data = 'Hello, World!'

  5. qr_code_image = qrcode.create(qr_code_data)

  6. qr_code_image.save(image_path)

  7. def build_wechat_app():

  8. # 获取参数

  9. APP_ID = input("Enter your APP_ID:")

  10. SECRET_KEY = input("Enter your SECRET_KEY:")

  11. # 清理目录

  12. subprocess.call(['rm', '-rf', 'dist'])

  13. # 构建小程序

  14. subprocess.call(['npm', 'run', 'build'])

  15. # 移动构建目录

  16. subprocess.call(['mv', 'dist', '/var/tmp/build'])

  17. # 初始化微信小程序

  18. subprocess.call(['wechatmp', 'init', APP_ID, SECRET_KEY])

  19. # 生成二维码

  20. generate_qrcode('/tmp/qrcode.png')

  21. if __name__ == '__main__':

  22. build_wechat_app()

在上面的示例中,我们调用 generate_qrcode() 函数,用于生成 QR Code。该函数接受一个图像路径作为参数,并将其保存为 PNG 格式。

注意:为了更好地兼容不同的微信小程序插件,请参阅官方文档以了解如何正确处理图像尺寸和格式。

行动吧,在路上总比一直观望的要好,未来的你肯定会感 谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入扣群: 320231853,里面有各种软件测试+开发资料和技术可以一起交流学习哦。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Unity 左右折叠显示与隐藏UI的简单实现

要实现一个简单的UI左右折叠显示与隐藏&#xff0c;可以结合遮罩&#xff0c;通过代码控制UI区块的宽度和位移来实现。 具体可以按以下步骤实现&#xff1a; 1、新建一个Image组件&#xff0c;并添加精灵&#xff0c;调整大小后&#xff0c;复制一份作为该UI的父物体&#xf…

rhce.定时任务和延迟任务项目

一 . 在系统中设定延迟任务要求如下&#xff1a; 在系统中建立 easylee 用户&#xff0c;设定其密码为 easylee 延迟任务由 root 用户建立 要求在 5 小时后备份系统中的用户信息文件到/backup中 确保延迟任务是使用非交互模式建立 确保系统中只有 root 用户和easylee用户可以…

当当图书网数据采集分析:10万条数据的深入洞察

基于搜索结果&#xff0c;我将为您提供一个关于当当图书网数据采集的文章框架&#xff0c;假设我们已经有了10万条数据的采集结果。请注意&#xff0c;由于没有具体的数据文件&#xff0c;以下内容将是一个示例性的框架&#xff0c;您可以根据实际采集到的数据进行填充和调整。…

AI人工智能老师大模型讲师叶梓 OneLLM:开创性的多模态大型语言模型技术

在人工智能领域&#xff0c;多模态大型语言模型&#xff08;MLLM&#xff09;的研究一直是一个热门话题。近期&#xff0c;一种名为OneLLM的创新技术引起了业界的广泛关注。OneLLM通过其独特的统一框架&#xff0c;实现了多种不同模态与自然语言的高效对齐&#xff0c;为多模态…

什么是NAT!

一、NAT&#xff08; network address translation&#xff09; 网络地址翻译 为什么会出现这个技术&#xff0c;目的就是用来解决ipv4 地址不够用的情况&#xff0c;因为在互联网最开始的时候&#xff0c;有一个概念是拥有合法IP地址&#xff0c;每个主机连接到互联网必须要…

Big Data and Cognitive Computing (IF=3.7) 计算机/大数据/人工智能期刊投稿

Special Issue: Artificial Cognitive Systems for Computer Vision 欢迎计算机/大数据/人工智能/计算机视觉相关工作的投稿&#xff01; 影响因子3.7&#xff0c;截止时间2024年12月31日 投稿咨询&#xff1a;lqyan18fudan.edu.cn 投稿网址&#xff1a;https://www.mdpi.com/j…

RK3568笔记二十二:基于TACO的垃圾检测和识别

若该文为原创文章&#xff0c;转载请注明原文出处。 基于TACO数据集&#xff0c;使用YOLOv8分割模型进行垃圾检测和识别&#xff0c;并在ATK-RK3568上部署运行。 一、环境 1、测试训练环境&#xff1a;AutoDL. 2、平台&#xff1a;rk3568 3、开发板: ATK-RK3568正点原子板子…

Ubuntu Vs code配置ROS开发环境

文章目录 1.开发环境2.集成开发环境搭建2.1 安装Ros2.2 安装 Vs code2.3 安装vs code 插件 3.Vs code 配置ROS3.1 创建ROS工作空间3.2 从文件夹启动Vs code3.3 使用Vscode 编译ROS 空间3.4 使用Vs code 创建功能包 4.编写简单Demo实例4.1编写代码4.2编译与执行 1.开发环境 系统…

(文章复现)分布式电源选址定容的多目标优化算法

参考文献&#xff1a; [1]夏澍,周明,李庚银.分布式电源选址定容的多目标优化算法[J].电网技术,2011,35(09):115-121. [2] Ye Tian, Ran Cheng, Xingyi Zhang, and Yaochu Jin, “PlatEMO: A MATLAB platform for evolutionary multi-objective optimization [educational for…

毕设论文的分类号与UDC查询

对于毕业论文分类号与UDC&#xff0c;可以根据个人研究领域查询。 中图分类号查询链接&#xff1a; 中图分类号查询 | 中国图书馆分类法 | 中图法 | 中图分类号 (clcindex.com)https://www.clcindex.com/category/ UDC查询链接: UDC Summaryhttps://udcsummary.info/php/ind…

探秘计算机内部的魔法:模拟计算机内部的怎么使用门电路实现运算的奥秘

1.前言 在当今数字时代&#xff0c;我们享受着计算机带来的便利和效率&#xff0c;但很少有人意识到在计算机背后的神秘世界。计算机内部运算的奥秘并非仅仅是一系列简单的加减乘除&#xff0c;而是依托着深奥的门电路与位运算符展开的神秘舞蹈。在这篇博客中&#xff0c;我们…

Web3与社会契约:去中心化治理的新模式

在数字化时代&#xff0c;技术不断为我们提供新的可能性&#xff0c;而Web3技术作为一种基于区块链的创新&#xff0c;正在引领着互联网的下一波变革。它不仅改变了我们的经济模式和商业逻辑&#xff0c;还对社会契约和权力结构提出了全新的挑战和思考。本文将深入探讨Web3的基…

OpenAI宣布GPT-4-Turbo全面升级,GPT-4 Turbo 新增视觉理解能力,可同时处理文本和图像信息

OpenAI宣布GPT-4-Turbo全面升级&#xff0c;GPT-4 Turbo with Vision新增视觉理解能力&#xff0c;可同时处理文本和图像信息&#xff0c;极大简化了开发流程。 OpenAI宣布GPT-4 Turbo全面升级&#xff01;根据官方说法&#xff0c;这一波 GPT 的升级包括&#xff1a; 更长的上…

Buck变换电路

Buck变换电路 Buck变换电路是最基本的DC/DC拓扑电路&#xff0c;属于非隔离型直流变换器&#xff0c;其输出电压小于输入电压。Buck变换电路具有效率高、输出稳定、控制简单和成本低的优点&#xff0c;广泛应用于稳压电源、光伏发电、LED驱动和能量回收系统。 电路原理 Buck变…

bestvike --bvframe学习

ref title fetch后台api 分页属性&#xff0c;pagination 要差几条&#xff1f;pagelimit 在api中写一个饭方法&#xff0c;vue中用用他 vue.cinfig.js中配置别名 nacos微服务 实体类要继承basedata&#xff08;封装了公共数据&#xff09; 控制器autowired&#xff0c;getm…

【Java开发指南 | 第四篇】Java常量、自动类型转换、修饰符

读者可订阅专栏&#xff1a;Java开发指南 |【CSDN秋说】 文章目录 Java常量自动类型转换Java修饰符 Java常量 常量在程序运行时是不能被修改的。 在 Java 中使用 final 关键字来修饰常量&#xff0c;声明方式和变量类似&#xff1a; final double PI 3.1415927;自动类型转换…

大数据平台搭建2024(一)

一&#xff1a;基础配置 创建虚拟机并查出ip地址进行连接 ip a1.配置node01静态ip地址与主机名 vi /etc/sysconfig/network-scripts/ifcfg-ens33修改或添加如下内容&#xff1a; BOOTPROTO"static" ONBOOTyes #根据虚拟机网卡信息配置 IPADDR192.168.200.141 NET…

ENVI实战—一文学会使用GLT配准工具对风云数据进行几何校正

实验2&#xff1a;学会使用GLT配准工具 目的&#xff1a;完成气象卫星数据的校正&#xff0c;掌握利用GLT配准工具实验地理配准的方法 过程&#xff1a; ①读取影像&#xff1a;选择“文件”&#xff0c;选择“HS5”文件并打开&#xff0c;在弹出的科学数据集浏览器中&#x…

秘塔和Kimi AI在资料查询和学习中的使用对比

一、引言 最近老猿在网上查资料时&#xff0c;基本上都使用Kimi AI进行查询&#xff0c;发现其查询资料后总结到位&#xff0c;知识点的准确度较高。今天早上收到一个消息&#xff0c;说新推出的秘塔AI比Kimi更新进&#xff0c;老猿利用在学习的《统计知识学习》简单对比试用了…

JS算法题:找到数组中第 k 大的元素

问题描述&#xff1a; 给定一个未排序的整数数组&#xff0c;找到其中第 k 大的元素。注意&#xff0c;你可以假设 k 总是有效的&#xff0c;且 1 ≤ k ≤ 数组的长度。 举个例子&#xff1a; 如果给定数组是 [3,2,1,5,6,4]&#xff0c;k 是 2&#xff0c;那么第 2 大的元素…