自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

叨叨软件测试

坚持原创,技术分享。

  • 博客(92)
  • 收藏
  • 关注

原创 【问题解决】Ubuntu 安装 SeisSol 依赖 easi 报错解决: undefined reference to `H5free_memory‘

兼职帮客户安装 SeisSol 时问题解决,安装 easi 这个报错卡了很久(搞了一天),记录下,以备后用~PS: 可有偿安装(v crarook)

2023-10-14 13:46:07 794 1

原创 yum apt pip conda 国内源

【代码】yum apt pip 阿里云源。

2023-10-10 17:08:46 923

原创 Redis 日常运维脚本更新(增加单节点相关功能)

需求背景此脚本最初编写是为了方便 Redis 集群日常维护,没有考虑 Redis 单节点情况。PS: 最近刚好碰到,继续维护兼容下-。单节点指定库$ redis-cli -c -h 127.0.0.1 -p 8001 -a daodaotest -n 10知识点: 单节点默认 16 个数据库(db0~db15),集群版仅 db0 库。变更记录Version 0.0.3 2022/05/28增加 支持 Redis 单节点 key 查询、key 删除等功能Version 0.0.

2022-05-28 22:58:36 508

原创 K8S 多集群管理命令行工具: KubeCM

简介Easier management of kubeconfig.安装# 下载安装 https://github.com/sunny0826/kubecm/releases$ cd /usr/local/bin$ wget https://github.com/sunny0826/kubecm/releases/download/v0.15.3/kubecm_0.15.3_Linux_x86_64.tar.gz$ tar -zxvf kubecm_0.15.3_Linux_x86_64.t

2021-07-27 17:41:38 559

原创 Nginx(Tengine) 解决 unknown directive “stream“ 问题

背景Nginx(Tengine) 代理 Bitbucket 的 tcp 端口时报错:unknown directive “stream”, 记录下~解决编译时,通过添加 --with-stream参数来安装 stream 模块。需要手工加载 ngx_stream_module.so 模块。# 操作系统信息$ uname -aLinux oa2 3.10.0-1160.31.1.el7.x86_64 #1 SMP Thu Jun 10 13:32:12 UTC 2021 x86_64 x86

2021-06-27 15:27:52 12313

原创 MinIO 分布式集群搭建

背景阿里云迁移 IDC,选型 MinIO 来替代阿里云 OSS,并为 K8S 提供对象存储服务。简介MinIO 是一个基于Apache License v2.0开源协议的对象存储服务。它兼容亚马逊S3云存储服务接口,非常适合于存储大容量非结构化的数据,例如图片、视频、日志文件、备份数据和容器/虚拟机镜像等,而一个对象文件可以是任意大小,从几kb到最大5T不等。MinIO是一个非常轻量的服务,可以很简单的和其他应用的结合,类似 NodeJS, Redis 或者 MySQL。单机 Docker 安

2021-06-24 19:52:01 553

原创 Centos 7 升级内核版本为 5.12.11

背景为了 Docker、Kubernetes 运行稳定,升级 Centos 7 内核版本为 5.12.11。升级# 查看当前内核$ uname -srLinux 3.10.0-1160.25.1.el7.x86_64# 查看操作系统版本$ cat /etc/redhat-releaseCentOS Linux release 7.9.2009 (Core)# 导入 ELRepo 仓库的公共密钥$ rpm --import https://www.elrepo.org/RPM-GPG-

2021-06-20 18:26:58 639

原创 Docker 及 Docker Compose 日常操作(团队培训材料)

背景质量团队 Docker 日常操作培训,提升团队整体 Docker 容器水平。注: 以下命令操作都是在 Centos 7演示的简介Docker 是一个开源的应用容器引擎,基于 Go 语言并遵从 Apache2.0协议开源。Docker Compose是用于定义和运行多容器 Docker 应用程序的工具。类似的还有 Containerd和 Podman。Docker 思想集装箱标准化: 运输方式、存储方式、API接口隔离、安全Docker 的优点快速,且一致的运行环境弹性伸缩

2021-06-16 20:59:14 202

原创 基于 AdoptOpenjdk 官方 Dockerfile 制作 jre8 镜像(修改字符集和时区)

背景由于 Oarcle JDK 开始商业收费(个人和测试仍然免费),故打算新项目直接使用 Openjdk。PS: Oracle JDK 8u211 和 8u212 两个版本是最后的免费版本。AdoptOpenjdk 镜像制作(alpine)Docker Hub 地址:https://registry.hub.docker.com/r/jlh21/jre8AdoptOpenjdk-alpine-jre-hotspot-8u292-b10基于 AdoptOpenJDK 官方修改https://g

2021-06-15 16:43:38 1924 3

原创 Syncthing 开源文件同步工具

简介Syncthing is a continuous file synchronization program. It synchronizes files between two or more computers in real time, safely protected from prying eyes. Your data is your data alone and you deserve to choose where it is stored, whether it is shared

2021-06-11 13:54:32 512 2

原创 Harbor 2.2.0 搭建与使用

Harbor 简介Harbor 是 VMware 公司开源的企业级 Docker Registry 项目,其目标是帮助用户迅速搭建一个企业级的 Docker Registry 服务。它以 Docker 公司开源的 Registry 为基础,提供了管理 UI,基于角色的访问控制(Role Based Access Control),AD/LDAP 集成、以及审计日志(Audit logging) 等企业用户需求的功能,同时还原生支持中文。搭建 Harbor(master)官方教程:https:/

2021-06-07 11:23:34 459

原创 Centos7 使用 chronyd 进行时钟同步

背景最近要做阿里云迁移 IDC 机房,整理下 Linux 运维基线,简单记录,以备后用~安装# 默认已经安装$ yum install -y chrony配置文件$ cat /etc/chrony.conf# Use public servers from the pool.ntp.org project.# Please consider joining the pool (http://www.pool.ntp.org/join.html).# 国家服务器server 0.cn.p

2021-06-03 18:37:40 492 2

原创 Centos7 安装 Python3 及配置国内源、虚拟环境

安装# 安装 python3$ sudo yum install -y epel-release$ sudo yum install -y python3# 升级 pip 为最新版本$ sudo pip3 install pip -U设置国内镜像源# 查看当前源地址$ pip config list | grep global.index-url# 设置 pip 为清华源$ pip config set global.index-url https://pypi.tuna.tsin

2021-06-02 16:49:13 890

原创 Unix\Linux 执行 shell 报错:“$‘\r‘: 未找到命令” 的解决办法

原因大多数原因是因为 shell 脚本是在 Windows 编写导致的换行问题,具体原因是 Windows 的换行符号为 CRLF(\r\n),而 Unix\Linux 为 LF(\n)。名称解释缩写全称ASCII转义说明CRCarriage Return\r回车LFLinefeed\n换行,Unix\Linux 的换行符CRLFCarriage Return & Linefeed\r\n回车并换行,Windows 的换行符方法一(推

2021-05-20 10:16:36 7154

原创 读书笔记-全面薪酬体系设计“6+1”

背景技术书籍看累的时候,适当看下其他类型书籍,换下脑子,扩展下知识面。薪酬体系基本概念全面薪酬:员工从企业获得的所有收入,包括:现金收入、非现金收入、学习与发展的机会、工作环境,甚至企业知名度等。如公务员的基本工作不高,但全面薪酬比较高。现金收入:所有以现金形式或者类现金形式发放的收入。非现金收入:非现金形式发放的收入,如:保险、工作餐、宿舍、带薪年假等福利待遇。员工是否选择一家工作单位,比较的是全面薪酬,而不仅仅是现金总收入。薪酬体系作用招聘和留住员工调动员工的积极性薪酬设计

2021-05-08 11:18:43 1582

原创 Linux/Unix 常用的 15 类别名(alias)

背景最近在整理 Linux 运维基线,整理记录下常用的 alias设置。aliasalias命令用于设置指令的别名。用于简化较长的命令。语法alias [别名]=[指令名称]示例:alias ls='ls --color=auto'用法# 列出所有别名$ aliasalias ll='ls -l --color=auto'alias ls='ls --color=auto'alias mv='mv -i'alias rm='rm -i'......# 设置别名,仅当前终端

2021-04-27 17:25:00 1261 2

原创 RocketMQ 部署不当导致磁盘空间不释放

背景生产环境采用 RocketMQ三主三从集群搭建,6 个实例部署在 3 台 Linux 服务器上(节省资源),每台服务器部署一主一从,生产上运行一段时间后,发现磁盘空间报警,发现df与du显示的空间不一致(相差几十G)。问题原因RocketMQ在同一台服务器上,启动一主一从 2 个实例,由于 2 个主从RocketMQ实例采用同样的 Logback配置文件,写入的日志名称及滚动策略是一样的。主从 2 个实例Logback在 Linux 下共享日志滚动时,会导致日志文件滚动后,但是其中一个 实例进程

2021-04-16 18:20:08 495

原创 ElasticSearch 深度分页总结

背景我们的应用是采用NLPchina开源的elasticsearch-sql插件来进行查询分页和导出,由于ElasticSearch的max_result_window的限制,在深度分页和大批量数据导出时就会出现问题,故简单研究下。ElasticSearch的max_result_window默认为10000条,当使用elasticsearch-sql执行select * from test limit 10000,1时,ElasticSearch就返回错误。ElasticSearch分页总结Ela

2021-04-15 16:28:11 570

原创 SonarQube 使用非默认质量配置

背景SonarQube 代码扫描时使用设置的默认质量配置,不同项目组或同项目不同分支扫描时,会有使用非默认的质量配置需求。不同版本的实现方法质量配置建议采用继承方式管理,父质量配置为全公司都需要遵守的规则,子质量配置可以自定义。代码扫描时采用子质量配置。-Dsonar.profile实现(SonarQube 4.5.1之前版本)# 分析时,加上参数 -Dsonar.profile 即可$ mvn clean verify sonar:sonar -Dmaven.test.skip=true -D

2021-04-11 19:17:54 569

原创 Jenkins 基于 Crowd 和 Role-based 插件的角色权限管理

背景测试环境的 Jenkins 是开发和测试混用的,未做细粒度的权限控制,开发总是构建测试的任务(不提前打招呼),导致测试任务中断,故需要隔离开发和测试用户权限。PS:我司是使用 Crowd 进行用户的权限管理,来实现所有办公软件的统一登录。配置配置约定Jenkins 任务命名规范:环境标识-项目组或业务标识-具体项目名称,eg:dev-pay-payManager;Jenkins 视图正则表达式筛选规范:环境标识-.*,eg: dev-.*。用户组及权限development:开发人

2021-04-09 18:29:14 355 5

原创 Jenkins Pipeline 动态参数传递 Git 分支

背景公司其中一个项目采用分支上线模式,每次生产上线都需要修改 Jenkins 任务中的 Git 分支版本,改为参数传递 Git 分支。实现我们采用参数传递 Git 分支,另外也可使用Git Parameter插件实现,会列出所有的 Git 分支。在 Jenkins 任务中添加 String 类型参数:GIT_BRANCH。用于存储 Git 分支名称。在 Pipeline 中配置 Git 分支参数变量:${GIT_BRANCH}。就可以将 Git 分支名称通过GIT_BRANCH参数传

2021-04-06 19:39:27 2086

原创 python + uiautomator2 实现钉钉工单自动批量提交

背景每个月初,团队负责人需要提交整个团队的上个月绩效评价以及本月的绩效设定,在钉钉上选择员工和Excel 附件提交员工个人审批。随着团队人员的增加,人工提交耗时耗力,我偶尔还提错,故写个简单的 APP 自动化脚本实现。懒使人进步~人工提交流程员工绩效设定与员工绩效评价流程一直,仅考核周期和附件不同。打开钉钉,依次选择工作台-OA 审批-员工绩效设定(评价)选择员工姓名、考核周期(月份)、员工绩效设定(评价)表、审核人(与员工姓名一致),提交即可员工查看,签字确认工单截图自动化实现

2021-04-05 18:19:36 1300 2

原创 APP 元素定位总结(未完待补充)

背景个人记录,团队分享使用,好记性不如烂笔头~定位工具推荐使用顺序:weditor> uiautomatorviewer> Appium inspector三种定位工具Python uiautomator2中的 weditorAndroid SDK 自带的 uiautomatorviewerAppium inspector三种工具异同点Appium inspector需要配置启动参数,相对较复杂些;uiautomatorviewer最方便;Appium inspecto

2021-04-05 18:17:51 150

原创 ADB 调试手机的三种方式(USB、WLAN、WIFI)

背景由于 MAC 的 USB 口全被占用着,采用无线连接刚方便,记录一下,以防忘记~USB 调试手机开启开发者选项和 USB 调试模式(通常开启方式:在关于手机连续点击7次版本号);USB 连接线和各种接口正常(个别三方数据线仅支持充电,不支持调试);驱动状态正常(Linux 和 Mac 通常没有问题,Windows 可能需要安装);adb devices -l命令查看。WLAN 调试(Android 10 及更低版本,需要借助 USB)Android 10以及更低的版本,必须通过 US

2021-04-05 18:16:36 3082

原创 身份证你需要了解的知识点

背景产品设计、开发、测试过程中,需要了解到的身份证知识点。正反面辨别国徽面为正面,人像面为反面(其他身份证件同理)。与“常识”正好相反。依据:中华人民共和国临时居民身份证管理办法 中第四条明文规定。大陆身份证国家标准一代身份证(15位)国家标准:GB 11643-1989二代身份证(18位)国家标准:GB 11643-1999二代身份证号码共 18 位,由 17 位数字本体码和 1 位校验码组成。排列顺序从左至右依次为:6 位数字地址码,8 位数字出生日期码,3 位数字顺序码和1位校验码。

2021-04-03 19:02:44 1978

原创 生产环境 Nginx 在线平滑升级

背景生产环境 Nginx 需要增加支持 TCP 反向代理功能,需要再添加--with-stream参数重新编译后,在线升级 Nginx。在线升级# 查看当前版本(注意为大写 V)$ cd /usr/local/nginx/sbin$ nginx -Vnginx version: nginx/1.16.1built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC)built with OpenSSL 1.0.2k-fips 26 Jan 2017

2020-11-28 17:27:10 203 1

原创 Nginx 使用 logrotate 进行日志滚动

Nginx 日志滚动(官方)向 Nginx 主进程发送 USR1信号。USR1信号量被 Nginx 自定义了,为重新打开日志;当 kill 命令发送 USR1时,nginx 会重新打开日志文件,并重新创建进程。# nginx 官方提供的日志滚动方式$ mv access.log access.log.0$ kill -USR1 `cat master.nginx.pid`$ sleep 1$ gzip access.log.0 # do something with access.log

2020-11-21 19:12:00 793

原创 Mac 下使用 Python+Selenium 实现西瓜视频自动上传及草稿发布

背景研究下 Python+Selenium 自动化测试框架,简单实现 Mac 下自动化批量上传视频西瓜视频并发布,分享给需要的同学(未做过多的异常处理)。脚本实现首先通过手工手机号登录,保存西瓜视频网站的 cookie 文件之后加载 cookie 内容,使用脚本批量上传视频,保存到草稿(也可自动发布,为了二次编辑,如修改封面)最后通过遍历视频草稿列表,来进行草稿视频发布PS: 同一天上传或发布视频太多时,会被西瓜视频限流。安装依赖# 安装依赖$ pip install selenium

2020-11-12 21:03:22 1697 2

原创 jenkins 忘记密码或认证配置出错后解决办法

背景我们测试环境的 Jenkins 是通过 Crowd 进行统一登录认证,授权策略采用“项目矩阵授权策略”,运维同事在配置Role-Based Strategy时出错,导致所有用户登录后都没有权限了。解决办法Jenkins 的所有信息都是存储在 xml 文件中,目录为:HOME/.jenkins,其中配置文件信息保存在:HOME/.jenkins,其中配置文件信息保存在:HOME/.jenkins,其中配置文件信息保存在:HOME/.jenkins/config.xml,用户信息保存在:$HOME/.

2020-10-22 20:38:44 379

原创 在 Mac 上使用 PICT 进行 Pairwise 测试

介绍PICT(Pairwise Independent Combinatorial Testing),是微软开发的用于 Pairwise的用例生成工具,按照规定的数据结构设置,PICT默认会按照两两组合的原理设计并输出测试用例,通过 “/o:N” 参数也可支持 “N-wise” 的用例生成。PICT地址: http://github.com/microsoft/pict安装Windows下载地址: http://www.pairwise.org/pict/win/pict.exe,双击安装即可。

2020-10-22 12:06:39 792 1

原创 组合测试术语:Pairwise/All-Pairs、OATS(Orthogonal Array Testing Strategy)

组合测试组合测试(Combinatorial Test)是一种黑盒测试用例生成方法,主要针对多输入参数组合场景。目前业界较流行的两种组合测试方法,一种是Pairwise/All-Pairs,即配对组合。OATS(Orthogonal Array Testing Strategy),即正交表法。Pairwise/All-PairsIn computer science, all-pairs testing or pairwise testing is a combinatorial method o

2020-10-21 20:56:35 2364

原创 Git 修改已提交 commit 的信息

背景由于 Github 和公司 Git 使用账号不一样,偶尔没注意,提交出错后就需要修改 commit 信息。修改最后一次提交 commit 的信息# 修改最后一次提交的 commit 信息$ git commit --amend --message="modify message by daodaotest" --author="jiangliheng <jiang_liheng@163.com>"# 仅修改 message 信息$ git commit --amend --me

2020-10-19 18:48:28 1551

原创 Linux/Unix 效率工具:快速路径切换 z 命令

简介z是一个开源的快速路径切换工具(类似工具还有 z.lua、autojump、fasd)。通过 Frecency机制对日常访问的路径进行 Frecent权重计算,z会帮你切换到所有匹配正则关键字的路径中权重值最高的那条路径。Frecency是由 Mozilla开发,将访问的频率和新近度(上一次访问到现在的时间差)合并为一个度量的启发式方法。详细内容见: https://github.com/rupa/z安装# /usr/local 安装$ cd /usr/local$ sudo git cl

2020-09-06 10:43:22 411

原创 当年偶然发现的 Java Bug(JDK 9及之前仍未修复)

背景15年在中信银行做持续集成时,由于当时的项目是基于三方采购的 Java 配置开发平台做的,平台自己基于 Ant插件实现了增量和热部署。其中有几个项目在持续集成部署时,经常发现 Linux平台部署成功后(Windows不会出现,Linux也是偶发现象),新版本代码并没有生效(反编译 class)。起初我是在本地 windows上跟踪调试基于 Ant插件的代码,但始终重现不了(最后测试发现 Windows 无此 Bug)。后来,通过分析代码逻辑,其中有段逻辑是通过文件的最后修改时间(File.las

2020-09-05 13:24:01 609

原创 Centos 网卡命名规范及信息查看(物理网卡,虚拟网卡)

背景之前写的脚本中获取 IP 地址时,未考虑虚拟网卡的情况(docker 创建的虚拟网卡),导致脚本失败,故总结下网卡相关知识。一致网络设备命名规范Centos 6及之前的版本网卡命名格式:eth[0123…]。Centos 7为了方便定位和区分网络设备,采用一致网络设备命名(CONSISTENT NETWORK DEVICE NAMING)规范,支持 biosdevname和 net.ifnames两种命名规范。biosdevnamebiosdevname 命名规范设备旧名称新名

2020-09-03 20:31:01 3752 2

原创 Git 合并多个 commit,保持历史简洁

背景开发过程中,本地通常会有无数次 commit ,可以合并“相同功能”的多个 commit,以保持历史的简洁。git rebase# 从HEAD版本开始往过去数3个版本$ git rebase -i HEAD~3# 合并指定版本号(不包含此版本)$ git rebase -i [commitid]说明:-i(--interactive):弹出交互式的界面进行编辑合并[commitid]:要合并多个版本之前的版本号,注意:[commitid]本身不参与合并指令解释(交互编辑时使用

2020-08-31 21:03:29 909

原创 Java 常用验证方法(commons-validator,hutool)

背景为了实现接口响应全量字段断言,开发断言表达式框架时,除了调研常用的断言框架之外,也调研了一些验证框架和方法(非hibernate-validator、spring-validator验证注解)。简单学习下构建工具Gradle如何使用。commons-validatorA common issue when receiving data either electronically or from user input is verifying the integrity of the data.

2020-08-30 02:25:58 3159

原创 Linux 日常操作

背景质量团队 Linux 日常操作培训,提升团队整体 Linux 水平。注: 以下所有命令都是在 Centos操作系统来进行演示。帮助命令及工具详见: Linux 帮助命令及工具用户和用户组命令说明useradd创建一个新用户或更新默认新用户信息usermod修改一个用户账户userdel删除用户账户和相关文件passwd修改用户密码chage更改用户密码过期信息id显示真实和有效的 UID 和 GIDsu切换用户sud

2020-08-27 21:57:04 157

原创 Linux 帮助命令及工具(tldr,man,help,info)

背景质量团队 Linux 日常操作培训,推荐使用tldr和man。帮助要善于通过帮助文档来学习Linux命令。命令类型内置命令:Bash自身提供的命令外部命令:Bash之外的命令,通常在:/bin、/usr/bin、/sbin、/usr/sbin 目录下查看帮助方式命令说明tldr命令手册工具(开源软件,非操作系统命令)man查看命令帮助help查询 shell 内置命令帮助info查看 info 格式帮助,相比 man 命令的帮助信息较完整

2020-08-26 20:16:47 584

原创 日志清理脚本-V0.0.3(增加多目录清理、正则表达式匹配、调试模式;部分细节优化)

需求背景解决某些中间件或者应用日志无法自动清理的情况,比如:Nacos 的 access 日志清理,临时目录文件清理等。简介Filename clear-logs.shRevision 0.0.3Date 2020/06/05Author jianglihengEmail jiang_liheng@163.comWebsite https://github.com/jiangl

2020-07-29 14:25:59 135

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除