- 博客(105)
- 资源 (1)
- 收藏
- 关注
原创 Jenkins Pipeline项目无法在windows子节点中执行cmd命令
最近遇到了一个非常特别的issue,测试的pipeline项目脚本如下执行输出的时候, 可以正常显示, 却总是不显示,但是也不报错于是, 我做了以下测试 (我的主节点为 windows, 子节点也为 windows)也就是说windows子节点无法在pipeline风格项目中直接执行cmd命令,尝试过的方法包括以下(但是都不起作用)那么最后的解决方法是什么呢? 就是在共享库中定义子节点执行cmd命令的一个方法 ,然后在pipeline项目中导入共享库,并且调用该方法不知道大家没有没遇到过这个问题
2022-08-08 16:15:36 1657 1
原创 Jenkins升级后服务无法启动, 插件不匹配问题
注意, 旧版本jenkins依赖 jdk 8, 新版本的jenkins依赖 jdk 11,如果没有更新Jenkins依赖的 jdk, 可能会导致部分插件不能正常工作, 将下载。结论 - Jenkins版本不对, 需要重新选择版本, 在。Jenkins升级至最新版本后从服务里启动失败。中java执行路径, 然后重启服务。下载列表尝试哪个版本的启动正常。...
2022-08-08 10:11:20 6851 1
原创 【python】在项目中使用requirements.txt管理依赖,使用virtualenv虚拟环境隔离依赖
一、python依赖库开发python项目经常遇到的问题就是自己本机代码没有问题,而在其他机器上使用就有各种问题,归根到底有两方面因素:python版本不一致依赖库不一致前者
2021-09-24 09:18:36 819
原创 使用VSCode SSH工具进行远端Linux服务器开发,以及常见问题解决方案
目录一、简要步骤二、SSH客户端配置三、SSH服务器配置1. 启动ssh服务2. 允许root用户密码登录四、VS Code配置1. cmd检查ssh账户登录2. 下载SSH插件4. 打开远程机器文件夹和文件五、免密登录和端口修改1. 免密登录和端口修改2. VSCode免密连接六、常见问题一、简要步骤SSH客户端设置安装openssh-clien生成私钥SSH服务器设置安装openssh-server新建公钥认证文件,复制公钥内容修改sshd_config配置文件,禁止密码登录,允
2021-09-01 16:21:37 3300
原创 记录一次MySQL的学习历程
目录前提知识一、数据库操作二、数据表操作三、数据字段操作四、数据类型1. 数值类型2. 字符串类型3. 时间类型3. 复合类型五、字符集、引擎和索引六、增删改查1. 插入记录2. 查询记录3. 条件查询 where4. 查询结果排序5. 查询结果分组6. 查询结果限制7. 统计函数8. 查询综合使用9. 更新记录10. 删除记录七、多表联合查询1. 内连接2. 外连接3. 记录联合八、DCL语句1. 添加权限2. 删除权限辅助工具前提知识数据库五个组成部分数据库服务器数据库数据表数据字段数
2021-08-19 01:00:58 345
原创 认证Jenkins工程师(CJE)考试资料分享,已过
目录一、报名二、复习三、结果一、报名平常工作中经常和Jenkins打交道,所以就想着考个相关的证书,我考的是 Certified Jenkins Engineer (CJE) ,报名的网站在这里 https://www.cloudbees.com/jenkins/certification, 需要一张 VISA信用卡,考试的方式分为线下实地考试和线上网络考试,线下费用 $150,线上费用$99,我选择的是线下,因为线下考试的含金量更高些报名的过程照着网站一步步提示就好了,最后邮箱会受到一封邮件,提示
2021-08-16 01:10:05 1518 1
原创 Jenkins + Groovy脚本 = 高效✔✔ (纯干货)
目录一、IntelliJ IDEA中配置Groovy二、Pipeline中使用Groovy脚本1. 使用默认jdk提供的方法2. 使用三方库中的方法三、使用Shared Libraries复用代码四、脚本安全性检查1. 不进行groovy沙箱检查2. 在共享库总声明具体类型五、Piepline中自定义函数参数传递六、最佳实践总结一、IntelliJ IDEA中配置Groovy我们写在Jenkinsfile中写脚本的模式是, 先在IDE中验证脚本, 然后复制代码至Jenkinsfile, 关于在Inte
2021-07-29 12:30:49 20517 2
原创 使用并发参数编译项目和运行单元测试
目录一、MSBuild并发编译二、MSTest并发运行测试用例三、时间花费对比一、MSBuild并发编译平常使用Jenkins构建项目时,默认使用MSbuild中没有带并发参数,所以比较慢不带并发参数构建为msbuild 项目路径带并发参数, 只要有这个开关默认使用最大的并发数,当然你也可以指定CPU的数量msbuild 项目路径 -maxCpuCount当然这里只是简写,还有很多参数需要你根据自己具体项目添加写一个bat批处理计算编译花费时间@echo offsetlocal
2021-07-26 16:10:50 434
原创 IntelliJ IDEA配置Groovy教程
写这篇文章的起因是因为经常性的需要更新Jenkins脚本,而Jenkins脚本是用Groovy写的, 所以不可避免的会用到Groovy,这里简单记录下自己调试Groovy脚本的过程一、IntelliJ IDEA设置社区版够用, 一路下载安装就可以了,原版界面太丑,这里利用插件美化下, 在 Setting -> Plugin -> Placemarket中安装以下插件分别实现替换文件图标、设置成中文和使用VS Code配色主题的功能另外再更改字体为Consolas 以及更换调试快捷键
2021-07-24 16:58:42 12490 1
原创 Jenkins集成Docker的三种方式(Docker Desktop),万字长文!
目录一、直接在脚本中通过shell调用 (Docker Shell)二、把Docker配置成一个云,作为一个单独的Jenkins代理节点使用 (Docker as Agent)1. 配置持久的Docker代理节点1.1. Jenkins和Docker配置1.1.1. Docker Desktop设置1.1.2. 配置Docker代理节点1.1.3. Docker镜像选择1.1.4. Docker容器启动方式1.2. Pipeline脚本使用1.3. 配置总结2. 配置临时的Docker代理节点
2021-07-13 18:37:33 5391
原创 Jenkins添加Ubuntu代理节点
目录一、原理二、Ubuntu设置三、Jenkins设置四、参考资料一、原理原理如下, Jenkins通过ip连接ubuntu,ubuntu使用SSH验证连接,另外Jenkins通过java在Ubuntu上相应操作控制该代理节点,所以关键点在于SSH在Jenkins和Ubuntu上的配置Ubuntu配置Java面就看看在Jenkins和Ubuntu上具体需要设置的内容二、Ubuntu设置Ubuntu设置包括两个方面的内容SSH连接访问Java安装SSH访问设置参考我的这篇文章,
2021-07-12 16:46:08 1055 3
原创 使用SSH访问Ubuntu服务器
目录一、SSH访问原理二、测试IP能否正常访问三、配置SSH1. 配置SSH Client和SSH Server2. 配置SSH私钥和公钥3. 用户名密码访问和公钥访问四、参考资料一、SSH访问原理SSH访问的原理很简单,如图所示。被访问的机器称作Server,访问的机器称作Client,Client通过ip连接至Server,Server需要验证Client的私钥,若认证成功则可以访问,否则不能访问。最重要的两点是测试IP能否正常访问配置SSH这里我的测试环境如下Client - W
2021-07-12 14:33:21 1693
原创 【git】使用ssh密钥访问Github
下载安装 Git使用 ssh-keygen命令生成公钥和私钥# -t ssh加密算法类型, 默认是rsa加密算法# -f 指定存放路径和文件名, 这里我们可以修改文件名ssh-keygen -t rsa -f C:\Users\chao9441\.ssh\company_rsassh-keygen -t rsa -f C:\Users\chao9441\.ssh\personal_rsa目录文件如下C:\USERS\CHAO9441\.SSH company_rsa comp
2021-07-02 12:03:12 814
原创 超级详细从零搭建在线博客,基于 sphinx + markdown + nginx + docker 架构 ! 附源码
目录一、sphinx安装与构建1. 安装sphinx2. 新建项目3. 构建项目二、页面美化1. 安装配置主题2. 重新构建项目三、页面目录结构1. rst文件2. 目录结构四、集成markdown文档1. 安装配置markdwon插件2. rst和markdown结合3. markdown文档组织结构五、用Nginx部署文档1. 下载配置Nginx2. 拷贝文档结果六、Docker一键部署发布一、sphinx安装与构建1. 安装sphinxpython安装sphinxpip install sp
2021-07-02 00:45:20 2333 1
原创 【Yaml】了解yaml文件格式
一、简介YAML 是一种较为人性化的数据序列化语言,可以配合目前大多数编程语言使用。YAML 的语法比较简洁直观,特点是使用空格来表达层次结构,其最大优势在于数据结构方面的表达,所以 YAML 更多应用于编写配置文件,其文件一般以 .yml 为后缀。二、基本语法1. 大小写敏感。 大小视作不同变量version: 1.12Version: 1.122. 使用#表示注释。只支持单行注释# 这是注释内容# 这是另一行注释内容version: 1.123. 缩进表示层级关系。 使用空格
2021-06-30 18:31:50 1807
原创 【Batch】批处理读取文本内容并分割字符串
需求:需要从文本文件中读取Buildnumber假设测试的 buildOK.txt中的内容为1.13.3486读取文本所有内容,即1.13.3486需要用到以下For循环, 最后content的值为1.13.3486FOR /F %%i IN (buildOK.txt) DO SET content=%%i按冒号分割字符, delims指的是按什么分割,这里按冒号分割。tokens指分割的次数,这里为3次刚好把整个字符分割完,最后一个就是我们想要的Buildnumber了FOR /F "t
2021-06-21 13:59:48 2714
原创 下载最新Nuegt包并备份
需求是备份Daily Nuget Package,这样以后要用到时可以直接拷贝不用重新下载安装这里使用需要新建一个C#项目, 引用需要用到的包,例如这样因为要用到每天最新的包, 所以要添加Nuget服务器和勾选 Include prerelease这样使用 VS直接build也可以获取到最新的nuget包,但是我们要做到持续集成自动化还需要使用命令行的方式下载包自定义包的下载路径所以要用到 nuget.exe,可以在官网下载 https://www.nuget.org/downloads
2021-06-03 18:07:38 415
原创 抛弃VMware Workstation使用 Hyper-V管理器吧!
工作中难免会用到虚拟机,之前都是使用VMware Workstation软件, 但是存在以下缺点收费, 虽然网上很多密钥可以用,但还是有一定限制笨重,启动慢运行时内存消耗大不能完美全屏显示虚拟机其实Win10自身已经提供了非常方便的虚拟机软件, 直接搜索在搜索框搜索 Hyper-V管理器即可确保Win10已启用 Hyper-V功能创建虚拟机也很方便, 只需事先准备好要安装的镜像文件即可(.iso文件),接下来一步步操作就可以以Win10虚拟机为例,这是效果, 不仅启动和连接速度快,而
2021-06-02 10:41:12 599
原创 使用Python和Jenkins REST API获取git changes信息
因为工作中发生过很严重的 Regression Issue,当时的解决方案是在Daily Build中使用二分法找到出问题的Build, 过程比较繁琐,所以就有了这么个需求,要求记录Daily Build的commit信息首先看下git怎么实现这个需求,需要使用 git log 命令 , https://git-scm.com/docs/git-log默认查看当前本地分支的提交信息git log查看某个日期之后的记录git log --after=2021-05-28总体而言并不是很困难,
2021-06-01 09:43:55 1157 1
原创 识别夜神模拟器
无论是用Appium还是Katalon Studio,都需要先使用命令行连接至启动的模拟器先启动夜神模拟器查看当前模拟器地址,这里要使用夜神自带的adbnox_adb devices// 输出 127.0.0.1:62001 device再使用adb命令连接至当前模拟器adb connect 127.0.0.1:62001这样Appium中就可以启动,Katalon Studio也能识别设备 ????...
2021-04-18 21:10:19 318
原创 【Groovy】读取文件、字符串替换、日期等操作
读取文件def result_file = "D:\\result.txt"result_content = new File(result_file).textprintln(result_content)获取系统变量def env = System.getenv()def value = env["Path"]println(value)获取当前时间def date = new Date().format('yyyyMMddHHmm')def currentTime = date
2021-04-14 11:15:09 818
原创 【Python】比较两个目录下的所有文件版本、并找出版本异常的文件
使用方法comparison.py current_dir standard_dir代码如下,欢迎参考 ????from filecmp import dircmpimport osfrom win32com.client import Dispatchimport timeimport argparse# 已知某个文件名在某个目录(或者该目录子目录)中,获取文件全路径def getFileFullPath(folder, filename): filepath_list =
2021-04-13 13:58:27 397
原创 【Python】获取某个目录及子目录下的所有文件
1. 获取某个文件夹下的信息使用 os.walk()C:\USERS\CHAO9441\DESKTOP\TEST│ file_1.txt│ file_2.txt│ ├─folder_1│ sub_file_1.txt│ └─folder_2 └─folder_2_1 sub_sub_file_1.txtimport oscurrent_dir = "C:\\Users\\chao9441\\Desktop\\test"def
2021-04-12 15:11:20 3622 1
原创 使用Nexus Repository Manager管理Nuget包
目录一、安装Nexus二、使用案例一、安装NexusNexus Repository Manager是什么Nexus是一个存储库管理器。它使您能够代理,收集和管理依赖项,以免您不断处理一系列JAR。它使分发软件变得容易。在内部,您将构建配置为将构件发布到Nexus之后,它们便可供其他开发人员使用。您将获得拥有自己的“中心”所带来的好处,而且没有比这更容易的协作方式了https://blog.sonatype.com/2010/04/why-nexus-for-the-non-programmer
2021-03-25 14:39:36 3098
原创 WPF引用项目图片资源
WPF引用图片资源的方式有很多种,分不同项目之间图片的引用、Xaml和代码的引用等,我们的测试项目如下,需要将两个项目中的logo.png属性中的 Build Action设为ResourceXaml如下<Window x:Class="ImageResource.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas
2021-02-07 15:46:04 5158 1
原创 区块链书籍推荐
一向的建议,不要买国人写的区块链书籍,我读过很多本,都很一般(糟糕)!目录1、《区块链基础知识25讲》2、《精通以太坊》3、《Solidity编程》相信比特币和其他代币的暴涨暴跌时刻拉动着人们的神经,究竟是什么样的技术有着这么大的魔力呢?币圈的疯狂的根源是什么呢?相信读完这几本书,了解了区块链系统背后精妙的设计哲学,你也会被这项伟大的技术所折服1、《区块链基础知识25讲》作者:丹尼尔·德雷舍这本书不设计到复杂的数学原理和具体代币,而是从区块链的最根本原理讲起,带你深入剖析区块链中的每一环,.
2021-02-02 11:09:37 4053
原创 【Docker】使用Docker编译 .NetCore项目
1、测试代码我们知道在Visual Studio上不能同时构建两个App, 即MSBuild不能复用,那么如何实现MSBuild同时构建多个App呢?这里我们需要用到Docker, 关于Docker Desktop for Windows这里不做介绍,重点实现我们的需求。测试代码是基于 .Net Core 3.1的控制台程序, 测试代码不重要D:\CODING\DOTNET-CORE-WITH-DOCKER│ DotNetCore-With-Docker.sln│ └─Counter
2021-02-01 17:48:24 758
原创 区块链基础知识25讲
刚刚读完这本书,总结回顾一下知识点作者:Daniel Drescher第1部分 区块链术语与技术基础第1讲 理解分层的概念系统分层应用层与实现层功能性与非功能性应用层关注用户的需求,实现层则关注如何满足这些需求功能性特征关注软件实现了什么,非功能性特征关注这些东西实现得怎么样完备性是一个很重要的非功能性需求,它包括3个方面的内容数据完备性行为完备性安全性第2讲 纵观全局中心化系统和去中心化系统对比去中心化系统的优势区块链是去中心化软件系统实现层的一部分区块链.
2021-01-21 16:03:06 2734 1
原创 Jenkins书籍推荐
关于书籍推荐,我一向不建议阅读国人的书籍,有可能是因为应试教育的原因,在原理理解和阅读性方面往往没有国外专家写的透彻,当然不排除一些例外个人总结的Jenkins技术路线。Jenkins 1.x 和Jenkins 2.x存在较大差异,建议先熟悉Jenkins 1.x 然后过渡到Jenkins 2.x1. Jenkins权威指南作者:Jobn Ferguson SmartJenkins入门书籍,看完这本书就会对Jenkins整体有概的认识,体会到持续集成的好处2. Jenkins2.x实践指南
2021-01-18 11:06:36 2853 2
原创 Katalon Studio —— 事半功十倍的自动化测试利器
做了大半年的自动化测试,无奈项目进度一直很慢????。我采用的是Selenium、Appium这套开源框架,遇到的问题主要有:搭建测试环境复杂测试脚本难以维护调试困难测试环境复杂主要是安卓的测试环境比较麻烦,模拟器、Android SDK等等一系列问题比较麻烦;测试脚本一方面是稳定性不够,经常有时起作用有时不起作用,不是那么健壮,这也间接的导致调试问题变得困难,比较浪费时间????。于是我又翻出下面这张常用的自动化测试框架图,想想为何不每一个都试一下呢?????首先排除掉需要只能自己写脚本、
2020-12-14 12:25:11 1745 1
原创 【Jenkins】查看所有全局变量
全局变量分为两种,一种是系统全局变量, 一种是Jenkins全局变量系统全局变量,也就是我们电脑上定义变量和Jenkins Java内置的一些变量, 在Pipeline脚本中查看stage('Show Environment Variable'){ steps{ script{ // 将所有系统变量打印出来, 区分Unix系统和Windows系统 if(isUnix()){
2020-12-04 11:53:15 3428
原创 【Jenkins】 手把手教你如何集成Jenkins和Github
一、理解webhook工作原理Webhook是什么,这里引用Github官方的描述WebhooksEventsPing EventWebhooks允许您构建或设置集成,例如GitHub Apps或OAuth Apps,这些集成订阅了GitHub.com上的某些事件。当这些事件之一被触发时,我们将向Webhook的配置URL发送HTTP POST有效负载。 Webhooks可用于更新外部问题跟踪器,触发CI构建,更新备份镜像,甚至部署到您的生产服务器。您仅受您的想象力限制。Webhooks可
2020-12-03 11:48:52 2377 1
原创 【Github】如何优雅的Log Issue
作为一位QA Engineer,日常工作中见到太多因为书写格式不规范导致的沟通困难的案例,良好的书面语言也是工作能力的另外一种体现吧,这里分享一下自己在Github Issue中的一些书写格式的经验,其实也是一些常用Markdown语法的实践吧1. 使用Checkbox制作清单,这样任务是否完成一目了然* [ ] 未完成任务一* [x] 已完成任务2. 使用删除线删除不必要文字和更新已有内容~~删除的文字~~3. 使用表格记录问题或进行对比| ID | Descripttion
2020-12-02 12:18:58 786
原创 【Appium】自动化测试中应掌握的技巧
一、等待时间在寻找控件的过程中经常会出现控件延时出现的情况,所以有时候需要等待一会直到控件出现才能执行下一步操作,这里有三种等待时间技巧线程等待. This method will block the main thread and force the wait for a period of time.time.sleep(5)Implicit wait. Also known as global wait, it is executed when looking for each control
2020-12-02 10:51:27 217
原创 【BDD】BDD入门和工具对比
行为驱动开发(英语:Behavior-driven development,缩写BDD)是一种敏捷软件开发的技术,它鼓励软件项目中的开发者、QA和非技术人员或商业参与者之间的协作。BDD最初是由Dan North在2003年命名[1],它包括验收测试和客户测试驱动等的极限编程的实践,作为对测试驱动开发的回应。在过去数年里,它得到了很大的发展[2]。2009年,在伦敦发表的“敏捷规格,BDD和极限测试交流”[3]中,Dan North对BDD给出了如下定义:BDD是第二代的、由外及内的、基于拉(pull)
2020-12-02 10:34:49 2026
原创 【Python】VS Code导入本地工具包和消除`Import [module] could not be resolved in Pylance`
最近在学习Python, 需要用到自己定义的工具类模块,总结下来主要遇到两个问题如何导入自定义模块解决VS Code 警告Import [module] could not be resolved in Pylance 和实现包高亮与转到定义首先准备我们的测试文件,目录结构如下D:\IMPORT_LOCAL_PACKAGE├─.vscode│ launch.json│ setting.json│ ├─mycode│ test.py│
2020-11-13 20:09:38 24021 5
原创 【Jenkins】备份配置与项目
在一次更换密码的过程中,意外的丢失了大多数Jenkins项目,导致一个个配置很麻烦,虽然已经使用的SCM Pipeline的方式简化了配置模式, 但手动的配置还是让我花费1个小时才完成所有项目的恢复,所以备份真的很重要这里的的备份内容主要有Jenkins自身 - 包括Manager Jenkins里面的内容项目 - 项目的配置,输出的结果等这里推荐使用插件 ThinBackup安装后在 Manage Jenkins -> ThinBackup找到它首先配置ThinBackup, 最重
2020-11-13 13:56:56 1310
原创 【自动化测试】这可能是最全的自动化测试工作流程 —— Windows、Android和Browser篇
目录一、Windows1. Application2. Server3. Client4. 测试脚本示例4.1 寻找控件4.2 操作控件4.3 结果验证4.4 测试报告5. 项目架构5.1 源码5.2 输入输出6. 难点事项6.1 等待时间6.2 视角控制6.3 坐标二、Android1. Application2. Server3. Client4. 测试脚本示例4.1 寻找控件4.2 操作控件4.3 结果验证4.4 测试报告5. 项目架构6. 难点事项6.1 视角问题6.2 网络问题三、Broswer1
2020-10-30 15:22:20 1440
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人