自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xiaosongluo的专栏

随手记录平时翻看的一些东西

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

原创 CARLA在Windows上的安装与运行

其实官方文档写的很详细,所有细节都有涉及,不过暂时没有中文版。本文写作目的,一个是作为自己的操作笔记,二个是帮助一些更习惯看中文版本的一些朋友

2022-12-18 22:26:40 1812 1

原创 Windows Anaconda报错解决:ModuleNotFoundError: No module named ‘conda

错误信息:Traceback (most recent call last): File "c:\Anaconda\Scripts\conda-script.py", line 16, in <module> from conda.cli import mainModuleNotFoundError: No module named 'conda'解决:系统环境变量以及临时定义的环境变量中取消对PYTHONHOME的定义参考:https://github.com/cond

2020-11-02 16:50:43 8816 7

原创 通过指定多个 PIP 源解决内网包更新问题

需求在开发时,部分包放置于内网但大部分包都是公网包,由于种种原因更新依赖容易超时,希望能够按需从不同的 pip 源上搜索不同的python package。ERROR: Could not install packages due to an EnvironmentError: HTTPConnectionPool(host='internal-mirrors.xxx.xxx', port=8081): Max retries exceeded with url: /repository/pypi-g

2020-10-25 13:06:32 682

原创 【AI测试】测试AI时需要考虑的10件事情

这是 2018 年的英文文章,以下是笔者对他的简单理解(不是翻译)。原文在:https://huddle.eurostarsoftwaretesting.com/10-things-to-think-about-when-you-test-artificial-intelligence/原文标题为:10 things to think about when you test artificial intelligence文章目录1. 总结2.原文中的十条2.1 避免将生产环境中各种琐碎情况作为 C

2020-10-14 21:07:18 1452

原创 通过 Prometheus 获取 Kubernetes 中 Pod 资源(CPU/MEM/GPU)消耗信息

文章目录容器化应用资源消耗 ≠ 设备资源消耗Prometheus 及其 ProQLPrometheus 中常见资源监控的 query 写法Pod CPU 利用率Pod MEM 占用Pod GPU 利用率Pod GPU 显存占用容器化应用资源消耗 ≠ 设备资源消耗不管是运维监控还是应用性能分析,资源消耗信息都是其中很重要的基础数据。之前,应用独占一台虚拟机或物理机,因此我们仅需要采集该设备的资源信息即可。有很多成熟的方案来支撑。随着容器化的普及,越来越多的应用会使用 Kubernetes 来进行部署,

2020-05-30 17:55:02 10931 2

原创 疑难杂症:Jenkins Slave/Node 执行权限问题

文章目录Ubuntu Slave/Node 用户权限更换后不生效的问题通过 Jenkins pipeline 中 agent 使用docker node时默认无root权限问题Ubuntu Slave/Node 用户权限更换后不生效的问题一句话总结:Ubuntu Slave/Node ,在宿主机上更改了用户权限,必须停止 Stop/Shutdown + 启动 Start(重启 Restart 不生效!) Jenkins Master 用户权限更换才能生效相关链接:https://stackoverf

2020-05-28 11:31:35 1977

原创 Nginx 反向代理 Jenkins 的配置方法

文章目录Nginx 中 jenkins-site.conf 部分的配置解决 Windows JNLP slaves 无法通过 Nginx 连接 Jenkins 的问题Nginx 中 jenkins-site.conf 部分的配置 location ^~ /jenkins/ { proxy_pass http://localhost:8080; sendfile off; proxy_set_header Host $host:$server_por

2020-05-25 12:45:51 1333

原创 Golang settings.json for Visual Studio Code

{ // go build 部分 "go.buildTags": "", "go.buildFlags": [], "go.gocodeAutoBuild": false, // go lint 部分,使用 golangci-lint 可避免大量无效提示 "go.lintOnSave":"package", "go.lintTool": "gola...

2020-03-27 10:10:46 534

原创 开源性能测试工具链[开篇]-性能测试综述

文章目录性能测试的定义性能测试的基本流程和关键环节性能测试重中之重:性能测试工具(链)小结性能测试的定义详细内容可参考:https://www.cnblogs.com/fnng/archive/2012/06/09/2543274.html性能测试是一类测试的总称。一般而言,性能测试能够评估出被测系统能够承受多大的访问量以及其在海量访问的情况下表现如何,这些数据指标将会直接影响用户体验,...

2019-12-31 09:26:55 581

原创 清理 git commit 历史中的大文件

起因晚上一到家就听同事说,git仓库拉不下来了,于是VPN上去看了一下:哎,肯定是哪位大爷又在作妖了,后悔当初没有设置单文件大小。不过事情已经发生,当务之急肯定是如何解决问题,消除影响。方法Step 0:查看空间占用git count-objects -v # 查看 git 相关文件占用的空间du -sh .git # 查看 .git 文件夹占用磁盘空间Step 1:找到仓库记录...

2019-12-26 20:39:07 7924

原创 聊聊测试数据

部分思路参考:https://www.guru99.com/software-testing-test-data.html文章目录测试数据在测试中扮演的角色如何生成测试数据方式1:手动设计方式2:搬运方式3:自动生成测试数据在测试中扮演的角色对于被测系统而言,一条测试数据是指一组输入和对应输出的组合。因此,测试的本质其实就是一个产生和消耗大量数据的过程。这些数据可以被用于以下两种用途:...

2019-12-26 20:37:17 1561

原创 Golang安装依赖包终极打发:GOPROXY环境变量

我们知道从 Go 1.11 版本开始,官方支持了 go module 包依赖管理工具。其实不仅如此, Go 1.11 还新增了 GOPROXY 环境变量。如果设置了该变量,下载源代码时将会通过这个环境变量设置的代理地址。更可喜的是,goproxy.io 提供了一个开源的解决方案允许开发者一键构建自己的 GOPROXY 代理服务。同时,也提供了公用的代理服务 https://goproxy.io...

2019-12-17 17:41:22 4725

原创 Golang 中实现注解功能的思路分析

文章目录注解的作用一些实现注解的开源 Golang 工程Golang 中实现注解的基本思路第一步:源码词法分析第二步:代码生成第三步:自动执行番外:Golang 中一种代替注解的方案注解的作用提到注解,需要短暂的说明其前世今生。在注解兴起之前,各个框架为了灵活性,基本都是基于 XML/JSON/YAML 之类的配置文件来做模块间的解耦。因为配置文件可以理解为代码对外的一种特殊的接口,需要先进...

2019-10-29 13:55:44 18930

原创 利用 Jenkins 管理非自动化用途的服务器资源

文章目录0. 服务器资源之痛1. 方案及效果2. 实现过程细节2.1 设备命名方式2.2 Jenkins 设备管理设置2.3 Jenkins Pipeline 脚本编写0. 服务器资源之痛现在笔者所在的团队中有 50+ 个研发及测试工程师,由于工作需要经常使用 20+ 台服务器进行研发或者测试工作。那么如何掌控这些机器的使用状态就是一个比较麻烦的事情。为了做好这个事情,团队内尝试过:设置...

2019-10-26 13:43:52 252

原创 ansible 在 GitLab CI 中使用的最佳实践

最佳实践要点使用官方 Docker 镜像使用环境配置的方式更改配置,即在 variables 中更改 ansible.cfg 设置Inventory 文件放置在本地,通过 -i 进行指定样例写法prod: stage: deploy image: ansible/ansible:ubuntu1604 variables: ANSIBLE_HOS...

2019-08-28 16:14:13 989

原创 Step by Step:如何写出 sqlite:database is locked 的 BUG

文章目录写在前面官方文档SQLite到底在锁什么:SQLite 的锁机制database is locked的含义:SQLITE_BUSY 与 SQLITE_LOCKED 的区别如何写出 database is locked 的 BUG作死方法一作死方法二写在前面使用 SQLite 经常会遇到提示 database is locked,那这个 BUG 反映什么意义,又是如何产生呢?官方文档...

2019-07-14 21:24:17 714

原创 【性能看板】Metabase-可能最合适的性能测试数据看板

文章目录Metabase 性能测试数据看板解决方案数据源数据呈现方式(Visualizing the answers to questions)数据仪表盘(Dashboard)仪表盘组织(Collections)重要的辅助功能Metabase 性能测试数据看板的优缺点分析优点缺点Metabase 性能测试数据看板解决方案数据源数据来源于数据库,目前可以支持:Amazon Redshift...

2019-05-09 14:17:23 2369

原创 Linux 内存 swap 相关知识学习笔记

1. Linux 中 swap 的作用1.1 Linux 使用虚拟内存定义来简化应用使用内存的逻辑在 Linux 中,内核使用虚拟内存技术,使每个应用程序均认为自己拥有独立且连续的可用的内存空间(一段连续完整的地址空间)。但是在实际上,实际内存空间通常使被映射到多个不同的物理内存段中,甚至还可能有部分内容暂时存储在外部磁盘存储器上,在需要时再加载到内存中来。那么,实际的内存段存在多种类型,和...

2019-04-19 17:08:57 248

原创 Golang 环境搭建的小技巧:让 go get 基于 socks5 进行代码包远程导入

令 Golang 开发者最痛苦事情之一便是在国内无法直接使用go get命令更新 golang.org 以及 gopkg.in 的 package。目前,大家使用 socks5 比较多,但是如果不进行设置, go get是无法与 socks5 配合工作的。本文简述一种基本的方法。0x01 大致了解下原理本质上来讲,go get命令所做的动作也被叫做代码包远程导入。go get命令可以从任何命令...

2019-03-11 17:19:27 1765

原创 实战:GitLab 上C++项目实现自动化构建

文章目录Step 1:实现C++构建Step 2:实现自动化确定目标:使用 gitlab-ci 实现选择 GitLab Runner 的最佳实践方案:GitLab Runner on Kubernetes设计项目自动化流程:掌握 .gitlab-ci.yml基本语法Step 3:引入业界常用的功能模块加速编译-ccache静态代码分析-cppcheck构建产物持久化-JFrog BintrayS...

2019-02-21 17:15:59 5162 3

原创 推荐的源码管理策略-gitlab flow

文章目录0x00 写在前面0x01 gitlab flow 推荐的做法1. 基础:功能驱动式开发 &amp;amp; 在 feature 分支中进行问题跟踪2. (线上)持续发布项目建议使用的 gitlab flow3. (线下)版本发布项目建议使用的 gitlab flow4. gitlab flow 的实践要点0x02 git flow 与 github flow 的缺点1. git flow 的缺点...

2019-01-28 12:49:33 2310

原创 问题解决:找不到 libthrift.so 中的 getPending、TServerSocket、updatePending函数

解决方案:使用C++11进行编译解决过程:使用 nm 进行查看:有问题的库:[root@cf0428daeba8 lib]# aarch64-himix100-linux-nm -C libthrift.so |grep updatePending000000000003db60 T apache::thrift::async::TConcurrentClientSyncInfo::...

2019-01-08 15:44:17 714

原创 实战:解决C++ AI引擎代码仓库难以维护的问题

0 背景我们团队目前主要负责研发 AI 引擎(主要用 C++ 实现),简单说来就是将算法 SDK 及模型进行封装,对外提供统一的接口方便后续的应用开发。相信有这类工作的经历的人都会明显感觉到有如下特点:对外接口基本不变算法 SDK 版本多:CPU/GPU,X86/ARM…算法模型更多:1.0,2.0,3.0…还不算麻烦,关键是还有各种组合模型比如 1.0+2.0,1.0+2.0+3.0...

2018-12-18 14:13:53 465

原创 问题解决:Conan 使用 Python3.4 报 NameError: name 'implementation_name' is not defined

解决方案:不使用系统默认 pip$ conanTraceback (most recent call last): File "/usr/lib/python3.4/site-packages/pkg_resources/__init__.py", line 2861, in _dep_map return self.__dep_map File "/usr/lib/pyth...

2018-12-04 11:14:04 3391

原创 Golang 项目通过 gitlab-ci 接入 Sonar

在 《The Continuous Delivery Maturity Model》中,着重强调了 report 在 CI/CD 中的重要性,而且特别提到了要求做到做到历史 report 趋势的分析。gitlab-ci 由于本身设计的原因很难实现这些,我们必须借助三方软件的力量,例如 Sonar。使用Docker镜像将整个过程拆分为 Golang 数据分析以及 SonarCube 上报两个阶段...

2018-12-03 23:26:47 1976

原创 问题解决:Conan 报"'ascii' codec can't decode byte 0xe5 in position 36: ordinal not in range(128)"

解决方案:注意文件名的编码解决过程:在用 Conan 编译 C++过程中遇到报错"‘ascii’ codec can’t decode byte 0xe5 in position 36: ordinal not in range(128)",困扰多时,问题如下:***/1.5935.9@***/stable: Retrieving package 6d3344e2e47d9a7babae...

2018-11-22 22:03:32 1087

原创 【性能看板】Octopus- 腾讯自研性能看板解决方案

文章目录渊源Octopus整体方案数据协议前端展示Octopus 性能看板的优缺点分析优点缺点渊源笔者在腾讯工作时,曾参与自动化测试平台 UTP 的研发,由于 UTP 使用了 内部自研项目 Octopus(八爪鱼)平台作为整个 UTP 性能报表的解决方案,因此笔者对于 Octopus 的使用还算熟悉。由于该项目由他人维护,因此细节方面本人肯定不甚了了,且时隔多日该项目是否有新的进展也不甚清楚...

2018-11-21 16:25:50 1203

原创 【性能看板】Logkit + InfluxDB + Grafana- 开源时序数据看板解决方案

文章目录Logkit + InfluxDB + Grafana 性能看板解决方案Logkit:数据采集InfluxDB:数据持久化Grafana:数据可视化Logkit + InfluxDB + Grafana 性能看板的优缺点分析优点缺点Logkit + InfluxDB + Grafana 性能看板解决方案这里借用 Logkit 的一张图片简单说明三者之间的关系:如上图所示,Logki...

2018-11-20 23:17:23 2088 2

原创 【性能看板】Catapult- Chromium性能看板解决方案

文章目录Catapult 性能看板 = Telemetry + Performance DashboardTelemetry:自动化测试框架设计原则代码概念测试自动化数据收集Performance Dashboard:图形化性能看板数据协议前端展示策略Catapult 性能看板的优缺点分析优点缺点Catapult 性能看板 = Telemetry + Performance Dashboard...

2018-11-20 00:52:19 1310

原创 《程序开发人员测试指南:构建高质量的软件》读后简记

关于敏捷测试四象限(或称测试四象限)有人对此名称持反对意见,不过还是很认可其对于测试技术的划分,它是一个“通用的软件测试策略”的描述,也可以说,它是一个自动化测试的整体策略的描述,可以帮助测试人员更好地理解:哪些测试更适合自动化测试?哪些测试更适合手工测试?哪些测试需要手工测试和自动化测试结合起来?测试工具在哪些测试中发挥主导作用?该方法从两个维度划分测试技术价值:指导开...

2018-11-16 00:29:47 658

原创 【速度与质量】敏捷团队快速交付高品质软件的经验与教训:导读

文章目录1. 哲学终极三问1.1 这是个啥?1.1.1 主题1.1.2 包含的内容1.2 素材来自于哪?1.3 写这个的目的是啥?2. 目录及链接(后续更新+持续更新)1. 哲学终极三问据说,西方哲学有三大问题:我是谁?我从哪里来?我到哪里去?思考这个问题的答案,可以让人跟清楚的认识自己。因此,我试图为这个系列文章回答上述三个问题,方便他人快速了解其概要。1.1 这是个啥?系列文章写作...

2018-11-14 00:32:00 286

原创 Conan 中的“包”概念

Conan 作为 C++ 包管理软件,最重要的功能就是“包”,因此我们需要仔细看看其包管理的基本概念。定义:“包” 与 “二进制包”Conan 最主要的功能就是可以管理好预编译好的二进制文件用于后续打包。关于“包”这里有两层定义:“包”(package recipe)、 “二进制包”(binary package)。 区别 “包”(package recipe) “...

2018-09-11 14:33:09 1613

原创 30分钟让你明白怎么使用 Conan 进行 C++ 包管理

0x00 Conan 是啥Conan 与 C++ 的关系可以用以下内容作类比: - Maven 之于 Java - pip 之于 Python - npm 之于 Node.js - gem 之于 Ruby0x01 为啥要用 Conan分两个层面来说:C++ 包管理工具在所有方案中比较“中庸” 方案 例子 构建速度 版本管理能力 易用性...

2018-09-04 15:41:30 16857

原创 统计 Golang 项目的测试覆盖率

我们的项目主要基于 Golang 开发,公司要求统计测试覆盖率。所以,我们摸索了一下在 Golang 下如何统计整个项目得测试覆盖率: 以下内容均基于 Go SDK 1.10.1 获得,不保证可以向下兼容先直接上结果:go test -coverpkg=./... -coverprofile=coverage.data -timeout=5s ./...go tool cove...

2018-05-12 16:52:49 16807 2

原创 基于 Jenkins 实现 Gogs 的 Pull Request 自动构建

0x00 这玩意儿是啥首先我们要弄清楚 Pull Request 自动构建是啥,就需要分别说清楚 Pull Request 的意义以及 Pull Request 自动构建的意义:Pull Request 的意义:开发人员通过发出 Pull Requests 请求他人将自己贡献的代码拉下来进行代码审查,从而让自己贡献的代码可以顺利合并到代码仓库的指定分支。Pull Request 自动构...

2018-04-30 19:46:01 6630 7

原创 Jenkins Pipeline 常用操作

Jenkins Pipeline 常用操作

2017-09-13 18:08:51 2460

原创 摸索 Jenkins 的自动维护方案

我们大多会选择 Jenkins 来部署我们的持续集成/测试/交互系统,但是当我们需要做 Jenkins 相关服务的维护时可以怎么做呢?笔者摸索了如下的一些方案:基础方法——Jenkins Script ConsoleJenkins Script Console 是 Jenkins 设计来在 Jenkins Server 或者 Slave Nodes 上执行任意的 scripts的。

2017-01-15 19:16:11 2394

原创 跟着 Google 学测试自动化——从 Telemetry 看 Chromium 项目的可测试性设计

Telemetry(项目主页)是 Google 为 Chromium 项目所编写的一套性能测试自动化框架。而在笔者的实践中发现其在可测试性设计上的工作,可以使得测试的效率提升 8 倍之多。那么 Chromium 以及 Telemetry 究竟在可测试性做了哪些工作,可以使得测试效率有接近 8 倍的提升呢? 这就是本文接下来要尝试分析的内容。

2017-01-08 20:13:26 2961 2

原创 跟着 Google 学测试自动化——浅谈 Telemetry 的测试框架设计

Telemetry([项目主页](http://www.chromium.org/developers/telemetry))是 Google 为 Chromium 项目所编写的一套性能测试自动化框架。从测试架构上以及实际使用中,Telemetry 均表现出极强的易用性和扩展性,本文试图探讨的就是 Telemetry 的框架是如何设计以及为啥这样设计的。

2017-01-02 19:21:49 8822

原创 分析性能数据时,你还在用“均值”吗?

通常而言,性能数据往往是一个波动的数值。所以当我们需要处理性能数据时,通常需要借助于统计的手段来辅助我们分析。而这其中,最常用的就是“多次测试取平均值”。那么这个方法有没有什么问题呢?

2016-12-13 00:52:19 12802

空空如也

空空如也

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

TA关注的人

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