![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
踩坑指南
文章平均质量分 73
公众号-测试生财
分享各类测试技术和资源,请关注微信公众号:测试生财。
展开
-
ModuleNotFoundError: No module named ‘_ctypes‘
背景在安装Python3的时后,报错:ModuleNotFoundError: No module named '_ctypes'。网上搜了一下,原因是缺乏libffi这个库。libffi简介官网:http://sourceware.org/libffi/简介:the default, most-widely used implementation of thePythonprogramming language uses libffi in the standardctypes...原创 2021-03-30 07:46:19 · 5363 阅读 · 2 评论 -
pip安装ansible报错:TypeError: unsupported operand type(s)
背景某机器需要搭建一套运行环境,该项目用到了ansible部署。这里我使用了pip安装ansible:pip install ansible==2.0.0,在安装过程中报了如下错误:TypeError: unsupported operand type(s) for -=: 'Retry' and 'int'从报错信息可以看到,这里是pip使用urllib3连接远程地址的时候抛出的异常,可能是访问pip的国外源超时,我怀疑可能是pip源的问题。设置pip源1)创建pip.conf原创 2021-03-09 08:07:03 · 601 阅读 · 0 评论 -
pip:No module named setuptools_rust
前言在某台Linux机器上安装ansible的时候,在安装到下图进度时候突然报错:No module named setuptools_rust分析看到报错,我以为是setuptoos_rust的问题,我尝试执行:python -c 'from setuptools_rust import RustExtension',显示没有找到此模块。安装:setuptools_rust执行:pip install setuptools-rust。通过执行:python -c 'from s原创 2021-03-05 08:21:14 · 32684 阅读 · 9 评论 -
pip:ffi.h: No such file or directory“
背景在Linux下使用pip安装ansible的时候,报错:ffi.h: No such file or directory"。原因Linux下缺少libffi和libffi-dev(el)解决方法Ubuntusudo apt installlibffi libffi-dev -yCentossudoyum -y installlibffi libffi-devel这样就不会如上错误了。博主:测试生财(一个不为996而996的测开码农)座右铭:专注测...原创 2021-03-04 08:07:54 · 6206 阅读 · 1 评论 -
docker一键搭建postgresql脚本(全网精华版原创)
前言本篇文章将演示如何利用docker快速搭建postgresql数据库,并提供了一键安装脚本用于快速安装。脚本脚本列表start_docker_postgres.sh:一键安装脚本pg_hba.conf:postgresql的访问限制配置文件postgresql.conf:postgresql的主配置文件脚本内容pg_hba.conf# "local" is for Unix domain socket connections onlylocal all all原创 2021-03-03 08:31:16 · 434 阅读 · 2 评论 -
查看docker镜像仓库中镜像版本信息
背景现在有很多软件服务都提供了docker镜像进行快速搭建,我们经常需要使用某特定版本,这里就涉及到了docker镜像的版本,那如何查看docker镜像版本呢?查看方法如果想要查看某docker镜像的全部版本,docker_img为镜像名curl https://registry.hub.docker.com/v1/repositories/${docker_img}/tags | python3 -m json.tool | more需要在机器上安装python3(参考python3环原创 2021-02-26 08:26:26 · 5539 阅读 · 0 评论 -
ansible:unarchive模块解压报错
前言部署某环境的时候,我使用ansible的unarchive模块解压某xx.tar.gz文件报错:"msg": "Failed to find handler for \"/tmp/xxx.tar.gz\". Make sure the required command to extract the file is installed.Command \"/usr/bin/gtar\" could not handle archive.Command \"unzip\" not found...原创 2021-02-25 08:42:20 · 4059 阅读 · 8 评论 -
Chrome离线安装CRX插件方法
前言Chrome插件有:extension,app,NaCl(Native Client),PNaCl(Portable Native Client)等。当前Chrome主要使用的是extension,其文件扩展名为crx。安装插件方法下载crx插件 重命名crx为zip扩展名 打开谷歌的extension页面 拖动zip包到该页面安装示例这里以安装switchOmega插件为例1. 下载crx插件1) 访问https://github.com/FelisCatus/S.原创 2021-02-24 08:28:19 · 614 阅读 · 0 评论 -
RocketMQ:设置broker的对外IP
背景最近在公司遇到这么一个问题:我在测试环境中搭建了一套RocketMQ,开发想要使用本机连接进行生产消费的测试,但是发现服务无法正常访问,报如下错误:send heart beat to broker error {"fields": {"underlayError":{"Op":"dial","Net":"tcp","Source":null,"Addr":{"IP":"10.13.10.29","Port":10911,"Zone":""},"Err":{}}}}分析这个错误指的是本机原创 2021-02-11 16:54:22 · 5852 阅读 · 0 评论 -
kuiper规则数上限测试的突发问题
背景kuiper的官网中有提到:kuiper支持8000条规则下的数据路由处理,于是我便尝试搭建该测试环境试试。测试方法如图,我搭建了一个虚机来跑Kuiper,Kuiper会订阅Emqx Broker的Topic,这时候我用一个MQTT客户端(比如MQTTBox或者Jmeter)向Emqx Broker特定topic发送消息。Kuiper中的规则引擎就会对订阅到的每条消息进行过滤处理(即类似执行sql),并输出到Kuiper的日志中。突发问题使用前文提到的环境,在kuipe.原创 2021-02-04 09:25:41 · 199 阅读 · 0 评论 -
pytest踩坑记:NameError: name ‘pytest‘ is not defined
背景在使用pytest-ordering插件的时候,运行case报错:NameError: name 'pytest' is not defined。实际case如下:test_demo.py@pytest.mark.run(order=2)def test_login(): assert True@pytest.mark.run(order=1)def test_reg(): assert True然后执行pytest:运行如下图。分析我的pytest原创 2021-01-23 09:48:30 · 3328 阅读 · 4 评论 -
pytest中print的坑
背景最近在使用pytest框架写测试用例的时候,为了调试case,我在其中使用了print来打印相关的变量值,如下图:分析图中的setup_class和setup_method分别在类开始时和用例执行前被调用,但是实际运行pytest xxx.py的时候,print函数打印的信息没有输出到控制台!我最开始怀疑是把setup函数放错位置了,对照官网文档查看了下,位置并没有放错。那问题出在哪里呢?难道pytest默认不会输出print语句吗?然后我又去网上搜一圈,才发现pytest确实不原创 2021-01-19 08:24:06 · 6345 阅读 · 3 评论 -
httprunner3.x遇到的问题(hrun make报错)
前言上一期介绍了httprunner3.x,并尝试安装了httprunner3.x,在使用hrun make命令时报错了:missing dependency tool: black,报错如下。解决过程根据提示,执行pip install black提示black已经安装到python3的相关路径下,但为什么说找不到black这个工具呢?是不是black工具位置不对?执行:which black,发现在/usr/local/python3/bin/black这个路径下面。原创 2021-01-15 08:31:34 · 1086 阅读 · 0 评论 -
git pull报错: ssh_exchange_identification
问题在项目中我写了个编译打包的脚本,会拉取gitlab上工程的代码进行编译,然后上传到产品服务器。其中有一次git pull去拉取gitlab上工程代码报错了:ssh_exchange_identification: Connection closed by remote hostfatal: Could not read from remote repository.分析上面提示的意思是git在pull代码期间连接突然被远程中断,我手动在机器上执行git pull代码,并没有出现上述报原创 2021-01-11 09:05:38 · 889 阅读 · 0 评论 -
Postgresql的日志配置
背景 公司的项目中使用了postgresql(简称pg)作为其数据库管理系统,前两天环境突然崩溃了,页面无法打开。经过排查,我发现是数据库所在机器磁盘满了,通过目录和文件排序,原来是pg的日志太多(大约保留了大半年的日志在磁盘上没有被清理)。 我看了下pg的日志配置,发现基本都是用的默认配置,日志滚动没有开启,于是乎做了下相关配置优化后对pg进行重启,最后看了pg的日志滚动,恢复正常了。以下是我梳理的关于pg的日志配置项。配置详解配置文件:postgresql.conf配置1:日志开原创 2021-01-06 08:44:00 · 1405 阅读 · 0 评论 -
systemd的文件描述符限制引发的问题
背景最近在测试一个MQTT的server,使用MQTT的client去连接server的时候,发现每次到1020个连接数左右的时候MQTTserver就挂了,而且MQTTserver只打印了一个退出的日志,没有打印其他信息。问题定位1)最开始我以为是该MQTT服务的日志没有打印全,于是尝试开启debug模式。打开debug开关后,仍旧没有更多的日志打印出来。2)我怀疑是系统的文件描述符的限制:ulimit -a查看打开的文件描述符的限制:远超过1000,看来也不是系统的文件描述符的限制问题.原创 2020-12-21 08:42:29 · 845 阅读 · 0 评论 -
ansible的模板变量渲染后带u(unicode)
背景最近使用ansible管理项目部署,有个前端的配置项是类似字典类的配置,其值如{‘memu1’:['/test1','/test2']},在ansible渲染后模板配置项变成了{u'memu1’:[u'/test1',u'/test2']}。问题过程假设ansible中某配置文件的模板如下:navs : {{ nav }}通过ansible传递的变量值为如下:navs:{‘memu1’:['/test1','/test2']}如果使用template模块渲染,最终的配置项会.原创 2021-03-23 14:27:18 · 678 阅读 · 0 评论 -
vue中axios异步调用接口的坑
背景最近在写vue项目的时候遇到一个axios调用接口的坑,有个前端模块涉及axios去调用多个接口,然后请求完获取数据之后,再使用windows.location.href重定向到新页面,这时候却发现axios请求的接口都是出于canceled的状态。例如:axios.get('/url1') .then(function (response) { console.log(response); }) .catch(function (error) { consol原创 2020-12-11 08:48:12 · 1447 阅读 · 0 评论 -
[PM2][ERROR] Process XXX not found
背景公司的项目全部由pm2管理,有一天不知道什么原因,利用pm2 list查看APP列表,发现有几个服务处于STOP状态,我尝试使用:pm2 start all结果报错:[PM2][ERROR] Process 1021 not found解决方法直接删除报错的app id即可,如:pm2 delete 1021博主:测试生财座右铭:专注测试与自动化,致力提高研发效能;通过测试精进完成原始积累,通过读书理财奔向财务自由。csdn:https://...原创 2020-12-10 08:43:51 · 5631 阅读 · 0 评论 -
rocketmq性能调优:broker快速失败判断maxWaitTimeMillsInQueue
背景公司已上线的项目中的broker集群有部分请求响应较慢,所以进行了线上broker服务的扩容。扩容后整体broker集群的负载下来了不少。这样一周后,某天看rocketmq的客户端的日志中零星打印了报错:system busy。问题分析为什么broker集群扩容了,仍旧有报错呢?和开发对了下,我们broker集群搭建在公有云虚拟机上的,所以可能有以下情况:1. 网络拥塞/抖动公有云的网络环境是未知的,可能是实际线路上的网络调整,或者公有云上的网络服务上线问题导致。2. 虚机资源不原创 2020-12-09 08:20:16 · 1162 阅读 · 0 评论 -
MacOS安装telegraf:Error: Permission denied @ apply2files - /usr/local/opt/openssl/ssl/man/man3/HMAC.3
背景我在自己Macbook上使用homebrew安装telegraf。执行:brew install telegraf,然后报错了:Error: Permission denied @ apply2files - /usr/local/opt/openssl/ssl/man/man3/HMAC.3问题定位尝试1看上图所示应该是权限问题,是缺乏root权限吗?执行:sudobrew install telegraf如上图所示:homebrew不能以root权限运行。尝.原创 2020-12-02 19:23:40 · 670 阅读 · 0 评论 -
ansible远程执行shell报错:command not found
背景项目中使用到了pm2,用于管理微服务的启停,我在相关机器上安装好了pm2,然后使用ansible进行批量启动服务。在使用ansible的shell模块执行远程命令时候却报了错:/bin/sh: pm2 :command not found,如下图问题定位1. 在被执行机器上查看pm2命令,看看是不是没有添加到环境变量(PATH)里。登陆到这台机器上,执行:which pm2可以看到pm2已安装到机器上了。再看看是否已添加到环境变量中。如下图,我已经把pm2的路径添加到原创 2020-11-27 08:34:33 · 4281 阅读 · 0 评论 -
npm运行报错:Error: ENOSPC: System limit for number of file watchers reached
背景最近用vue写一个项目,在服务器上用npm运行该vue项目的时候,执行npm run serve,整个过程执行到一半报错了:Error: ENOSPC: System limit for number of file watchers reached原因查了一下,是linux系统的限制导致这个报错了,需要设置一下:fs.inotify.max_user_watches这个参数。解决方法执行:vim/etc/sysctl.conf,添加如下内容:fs.inotify.ma..原创 2020-11-19 20:41:35 · 8085 阅读 · 4 评论 -
Linux客户端连接报错:Cannot assign requested address
前言在项目中写了一个MQTT的客户端小程序,用于测试MQTTServer的连接数上限,运行了一段时间后报错:Cannot assign requested address网上查了下"Cannot assign requested address"指的是linux系统无法继续为客户端分配端口了(已用尽),所以无法进行监理socket连接。定位问题1. 查看当前linux系统的可分配端口cat /proc/sys/net/ipv4/ip_local_port_range当前系统的原创 2020-11-18 08:20:19 · 4424 阅读 · 0 评论 -
pm2的APP日志管理插件:pm2-logrotate
背景最近我所在项目的进程管理工具从supervisor切换到pm2了,原因之一是因为长期二者兼容导致维护成本过大。后来经过和研发同学沟通,最终选择统一成pm2,因为pm2在windows下也可以对进程进行管理,方便他们在windows本地开发环境起服务调试。supervisor的进程配置文件中自带了日志切分策略;而pm2本身是没有日志管理功能的。如果某服务的运行时间过长,日志会不断堆积,最终会造成机器的磁盘空间耗尽。我调研了一下pm2的日志管理,发现有个pm2-logrotate的插件,专门对p原创 2020-11-17 08:15:02 · 1662 阅读 · 0 评论 -
qemu-user-static:利用x86机器编译支持arm架构的docker镜像
背景最近在项目中需要编译arm架构的某驱动docker镜像,但是手头上没有现成的arm架构的机器环境,于是在网上搜索了下如何在x86机器模拟arm环境来进行编译。我找到了一款神器:multiarch/qemu-user-static简介项目地址:https://github.com/multiarch/qemu-user-staticqemu-user-static是一个用于利用当前操作系统来运行其它架构的一个仿真器,这个github项目可以通过x86的机器编译出其它各个架构的docker镜原创 2020-11-11 21:22:04 · 15104 阅读 · 6 评论 -
vue入门:属性绑定与事件绑定
简介vue中的html元素的属性和事件是支持通过变量方式动态修改,和原始js的dom操作有一些区别。这里总结一下vue的属性绑定与事件绑定的方法,以及与原生js的对比。属性绑定属性绑定指的是将html元素的一个属性值设置成变量。原生的html中,比如<input type="text" />,这里的type的值就是text。在vue中,我们可以把text设置成一个变量:input_type。可以写成<input :type="input_type" />,这里原创 2020-11-06 08:10:46 · 895 阅读 · 0 评论 -
vue踩坑:axios使用this指针
前言在vue中,请求后端接口的模块有三种:vue-resource axios fetch这我们使用axios去请求后端接口。安装进入vue项目的目录,执行:npm install axios --save使用axios支持的http请求方法如下axios.request(config) axios.get(url[, config]) axios.delete(url[, config]) axios.head(url[, config]) axios.opt原创 2020-11-05 07:56:13 · 995 阅读 · 0 评论 -
go编译gomod项目报错:timeout&terminal prompts disabled&输入密码
前言最近在用go编译某gomod管理的项目时,由于是新安装的go环境(参考go环境安装),在编译的时候出现了三个问题:1. go的proxy超时:dial tcp 34.64.4.17:443: i/o timeout2. go get读取用户名失败:terminal prompts disabled3. git输入密码无法正确识别,且每次go get都需要输入密码问题记录问题1:dial tcp 34.64.4.17:443: i/o timeout这个是由于go1.13.原创 2020-11-03 07:52:32 · 942 阅读 · 0 评论 -
yum使用报错:Cannot find a valid baseurl for repo: base/$releasever/x86_64
背景项目有几台机器(centos7)时间不准,为了让时间能够定时同步,需要安装ntpdate。然而,我在使用yum安装ntpdate的时候却报错了:Cannot find a valid baseurl for repo: base/$releasever/x86_64原因分析看到这里我第一反应是centos的yum源有问题。首先我试了下本机是否能ping外网,结果是可以的。然后我去网上找了一圈解决此类问题的文章,尝试解决这个问题。网上主要介绍的是修改/etc/yum.rep原创 2020-10-29 08:00:52 · 1884 阅读 · 0 评论 -
Python环境搭建系列
本文对Python以及相关环境搭建汇总安装系列python3.6和pip3:Windows10下安装与升级与踩坑之路python3.6和pip3:Mac下安装与升级与踩坑之路python3.6和pip3:Centos下安装与升级与踩坑之路python3.6和pip3:Ubuntu下安装升级与踩坑之路踩坑系列pip3:no acceptable C compiler found in $PATHpython调用shell脚本:OSError: [Errno 8] Exe..原创 2020-10-28 07:55:08 · 273 阅读 · 0 评论 -
RocketMQ系列:rocketmq的运维控制台FAQ(陆续补充ing)
这里汇总rocketmq的控制台的一些常见问题:1. consumer group这里TPS只显示master节点的消息TPS,如果是master-slave模式,从slave消费的TPS不会显示在这里。所以实际显示的TPS小于真实的TPS2. 删除某个topic后,之前已经从topic消费的消费组不会被删除3. 这里Delay指的是consumer的offset与topic落盘的offset的差值,如果为-1则表示还未开始消费,如果是0则表示全部消费完毕...原创 2020-10-27 08:05:48 · 815 阅读 · 0 评论 -
yum安装冲突:Another app is currently holding the yum lock
背景由于需要在环境中用yum安装多个软件,于是通过终端在机器上打开了两个窗口,分别使用yum安装不同的软件,结果报了错:Another app is currently holding the yum lock; waiting for it to exit...解决方法1)查看yum进程:ps aux |grep yum2)处理方法:杀掉对应的进程:kill -9 28044 等待pid为28044的yum安装完成如果是无关紧要的安装就采取第一种处理方法,如果是比较原创 2020-10-15 08:26:22 · 229 阅读 · 0 评论 -
Jenkins:Git拉取代码版本不对
Jenkins:Git拉取代码版本不对血泪史最近在使用Jenkins拉取Git工程编译代码时候遇到一个很奇怪的的问题:Jenkins的GitPlugin下载代码的版本不对(commitId不对)。由于线上部署和线下部署的编译产物是同一版本,导致最后发布到生产环境的代码版本也不对。这个问题在线上验证阶段才最终被发现,回顾整个job构建过程,控制台没有报错,也成功编译出来了上线包,那到底是哪里出了问题?初步定位我最开始怀疑是本地Git工程残留的问题,于是尝试删除jenkins对应job所运...原创 2020-09-18 08:50:37 · 2938 阅读 · 0 评论 -
pip3:no acceptable C compiler found in $PATH
前言在使用pip安装安装locust的过程中,会遇到各种各样的问题,例如:执行:pip3 install locust报如下错误:no acceptable C compiler found in $PATH这个错误指的是环境里未安装gcc编译器,安装一个就可以了解决方法Centos:sudo yum install -y gccUbuntu:sudo apt install -y gcc后话由于Python语言本身底层也是C语言实现的,所有很多python工原创 2020-09-17 07:41:38 · 162 阅读 · 0 评论 -
Git克隆工程报错:Failed to connect to 127.0.0.1 port 1080
前言我想在Mac上安装wondershaper,本来想使用Mac上的brew安装,但brew的软件安装列表中没有wondershaper,于是便准备下载Git工程进行安装。下载wondershaper的git工程,输入:git clonehttps://github.com/magnific0/wondershaper.gitfatal: unable to access 'https://github.com/magnific0/wondershaper.git/': Failed to.原创 2020-09-14 08:03:53 · 440 阅读 · 1 评论 -
MAC关闭SIP:system integrity protection is on, some features will not be available
在MAC下安装了iotop,在启动的时候报了一个错:system integrity protection is on, some features will not be available网上查了下,是因为Mac启用了SIP策略,那该如何关掉SIP呢?1.首先查看sip状态sudo csrutil status输出如下:System Integrity Protection status:enabled.2.尝试禁止sip:sudo csrutil disable..原创 2020-09-10 07:43:58 · 7351 阅读 · 0 评论 -
RocketMq安装踩坑:docker0网桥冲突
前言最近项目用到了RocketMq,需要在Cento7系统上搭建一套集群环境用于测试。整个的环境搭建过程中,我遇到了一个比较初级的问题:启动RocketMq的broker失败。问题经过首先我看了下broker启动时候打印的信息,里面的IP引起了我的注意,我感觉这个IP的网段比较陌生,如图:执行:ip a,查询机器的所有网卡信息。原来这个ip是docker0的ip,也就是说在启动broker的时候,绑定的是docker0的ip。那是不是把docker0停掉之后,Br..原创 2020-09-07 08:52:06 · 763 阅读 · 0 评论 -
openssl1.0在mac下的编译安装(踩坑精华原创)
踩坑回顾:由于不小心在mac做了一下brew版本升级,然后用pip3安装一个第三方lib就报错了(涉及到openssl库):ImportError: dlopen(/usr/local/Cellar/python/3.6.5_1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/lib-dynload/_ssl.cpython-36m-darwin.so, 2): Library not loaded: /usr/local/opt/ope原创 2020-09-02 08:20:47 · 4693 阅读 · 5 评论 -
微信小程序测试:缓存清理
在日常测试微信小程序的时候,有没有遇到这种情况:开发进行功能升级或者修复BUG,然后重新部署了新版微信小程序,这时候我们打开小程序,发现小程序版本还是以前的。这时候我们首先想到的是可能是小程序缓存的原因,那么该如何清理小程序缓存呢?下面介绍一种方法,无论是IOS和Android都可以适用。清理方式:步骤:「我的」-「设置」-「通用」-「存储空间」-「清理」点击存储空间下的清理即可清除缓存,这时候在重新进入小程序,就能看到最新版的小程序了。博主:测试生财座右铭:通过.原创 2020-08-29 07:16:10 · 1022 阅读 · 0 评论