自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Rainy Chan

只追求有价值的原创 个人开源项目https://github.com/rainydew

  • 博客(29)
  • 资源 (4)
  • 收藏
  • 关注

原创 python轻量级定时任务库cron-lite

python轻量级的crontab定时任务库。pypi开发,支持函数装饰器,cron表达式和优雅退出

2022-05-14 03:31:43 1333

原创 Jenkins docker下JNLP slave节点远程连接报错port not reachable的解决

场景jenkins master运行在物理机A的容器a中,jenkins agent运行在物理机B的容器b上,A和B是同一个局域网当使用JNLP协议时,agent启动,主动连接master时闪退,报错port not reachable。(可能的表现:不用websocket连接则必然闪退;如果给节点连接启用websocket,则可能能连上,但很容易断开)报错信息类似这样root@ubuntuVM:~# java -jar agent.jar -jnlpUrl http://10.12.78.42:9

2020-11-22 15:34:55 4812 1

原创 go中装饰器初探

虽然对于动态类型的语言,比如python或者js里,装饰器模式已经很常用go中的函数是一等公民,可以直接作为参数传入传出,装饰器是可行的但go的问题是静态类型,func addAllInt(a …int) 和 func addAllStr(a …string)是不同的类型。本身作为装饰器函数,只能传入出入参数一致的同类型的函数,这样限制了装饰器的应用场景。为了兼容通用的类型,需要使用反射来做一些事,但真正实现起来,却踩了不少坑,蛮有难度需求:go的协程一旦发生panic,就只能在自己的协程里捕获,一

2020-10-20 19:37:38 572

原创 windows中VMWare下安装Mac Os X 10.11踩坑记

这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...

2020-05-10 02:41:28 704 3

原创 pip安装库用回官方源,检查库内提供的版本

今天自己更新了自己的库到pypi以后,发现无法更新到最新的版本,清华和豆瓣的国内源迟迟不同步我的国内源配置如下(git bash)admin@DESKTOP-36Q0EK4 MINGW64 ~$ cat pip/pip.ini[global]index-url = https://pypi.tuna.tsinghua.edu.cn/simple[install]trusted-hos...

2020-05-07 16:12:44 1065

原创 python操作服务器,迷你库ssh-lite发布升级(支持shell交互/文件上传下载,封装自paramiko)

在做后台测试/自动化运维的时候,使用python操作ssh服务器是很常见的情况。常规是使用paramiko库,但他比较复杂,主要是读取的请求是阻塞的(需要自己多线程管理)。甚至好多自动化测试教学培训,都不涉及paramiko这个库。但操作linux确实是作为测试,尤其自动化测试来讲,算是四大基础设施之一(其他的如操作数据库,操作文件和操作网络[发请求的客户端,和收请求的服务端])。网上并没有找...

2020-04-02 18:39:39 535

原创 python中写入utf-16 bom文件 (用来批量生成xshell的docker登入脚本)

在docker容器的实际应用中,对于我这样的测试来讲最头疼的事情反而是有时候需要同时操作容器外和容器内容器外给挂载的路径rz文件,编译服务(以供容器内启动使用),查看日志而容器内则负责启动服务,查看进程等操作经常不小心操作错误后来想到个解决方式就是像这样把容器外和容器内用标签分开并且给登入容器的配类似这样的脚本但到了后来,模拟的节点变多,容器越来越多store这个容器已经多到...

2020-03-02 12:28:55 770

原创 解决flash播放器与您的地区不相容,中国特供版锁区+弹窗广告的流氓行为

文件下载和使用说明在https://github.com/rainydew/flash-player-without-help-service,使用帮助在首页,欢迎issue/PR/star伴随flash的没落,Adobe在中国区代理权给了重庆重橙,后者提供的中国特供版flash播放器存在锁区+弹广告+禁用广告服务就不播放flash的问题,例如这个帖子几经折腾,终于弄好。奇怪的是,网上却没有多...

2020-02-15 07:23:05 5067

原创 docker exec 命令执行无效果,不报错的坑

结论:需要关注是否有bash -c,开发的脚本是否有#!/bin/bash在测试环境准备中,docker容器初始化的时候,比如通过jenkins或python脚本(paramiko)部署的时候,部署脚本经常需要使用docker exec来执行语句,启停容器内的服务。由于开发的start.sh脚本使用了相对路径,必须进入路径再执行./start.sh,所以我使用分号隔开先后两条语句执行。例如d...

2019-10-18 16:31:16 5413

原创 深挖python上下文管理——类的__init__、__enter__、__exit__、__del__在with下的表现

场景:今天因为需要测试一个服务,在测试前,需要把它依赖的服务干掉,在测试完成后(不论报错),再把服务起来。因为它是其中的一个步骤,其他时间服务需开启,不适用unittest通用的setup和teardown所以想到写一个类,通过上下文来管理服务状态。这是第一段测试代码# coding: utf-8class C: def __init__(self): print...

2019-09-27 15:16:25 3395

原创 linux和windows中安装并让python连接couchbase

首先,官方的couchbase库实测只完好支持python3.7。如有版本需求者,可以二选一1.使用pyinstaller打成二进制文件,然后给其他的程序以纯文本的方式调用2.使用http方式访问couchbase。具体可以见其restful api文档。此方式会造成性能损失,建议只用于功能测试windows下安装在windows下,直接安装msi包的python,然后可以直接使用pip...

2019-08-30 03:30:02 844

原创 python打包发布pypi踩坑记(最新贴心版本,认真对待自己的库)

在之前这个实现json比较的库的帖子里,我把库上传pypi的时候,相当坑。而且pypi有个特点,就是你一旦弄错了,就不能删除原来的名字(但可以删库,也可以更新版本,就是不能替换)。所以上传时应该尽量谨慎。注册pypi的账号访问pypi.org并点击register(有部分网络pypi访问速度较差,可能发生上传或下载失败的情况,请换个网络环境,或者自备代理)。可以使用QQ邮箱,它会要求你的邮...

2019-07-22 04:53:17 3602

原创 RobotFramwork二次开发,微小改动RF,实现while关键字的功能

我们都知道RF里只支持for循环,不支持while循环。或者说,不能造出一个死循环(实际上,while循环就是一个带判断条件的死循环)而且两种通融的办法也做不到li=[0,1,2]for i in li: li.append(i) # break in some condition在python里,这样做会导致无限循环。但在RF里,列表在循环前就解析定死,所以对列表的修改并不会影...

2019-07-10 20:22:19 2413

原创 python中递归比较json、列表和字典,显示差别的库,可忽略顺序,可支持正则,可设浮点精度(已上传至pypi,库名jsoncomparedeep)

在做接口自动化测试的时候,经常需要对返回的json串做断言。但是如果返回的json串很大,手写断言就非常的麻烦。网上虽然有很多轮子,但是都不是特别好用,存在比较严重的这样那样的缺陷。所以我自己写了一个。注意,我写的环境是python2.7,因为公司的RF库都还是python2.7(虽然RobotFramework早就支持python3)。如果使用3,请做相应适配,适配后最好发我适配后的源码...

2019-06-27 20:22:25 3078 14

原创 告别乱码——7行代码判断当前python运行编码,是控制台还是IDE(如PyCharm)

由于众所周知的原因,python中的PyCharm输出时使用utf-8编码,而控制台窗体里则遵循系统编码。在windows简中版本下,系统使用gbk编码,而调试用的PyCharm使用UTF-8,这就带来了一系列困扰人的问题。这些问题在python2尤甚,但python3里,读写文件、执行cmd命令等仍然会发生乱码。(由于Linux默认UTF-8编码,在纯Linux下并不发生这类问题)比如,调试好...

2019-06-25 22:27:48 1532 4

原创 思维定势引起容易写错的代码(预计长期更新)

突然想开始记录以前容易习惯性敲错的代码,欢迎回复各自的经历,也许之后会开个仓库~python:if "xx" or "yy" in something: ...结果恒为True,实际应该为if "xx" in something or "yy" in something: ...# 如果量大,可写if any([pattern in something for pattern in ...

2019-06-21 15:32:34 82

原创 PyCrypto AES CBC加解密结果不一致的解决

使用了CBC带偏移量的加密算法,pkcs5/7填充结果解密后的字串和加密前不一样,网上到处都没搜到原因后来发现,cipher对象只能用一次,同时调用两次cipher去对同一个东西加密,得到的结果不一样所以解密时,必须重新new一个cipher。下面是修正后的代码# coding: utf-8from Crypto.Cipher import AESimport base64BS ...

2019-06-21 11:14:03 3731 12

原创 RobotFramework中,选择注释套件中的某些用例的方法(主要用于RED/IntelliBot从套件执行单个用例)

由于项目较大,使用RIDE很卡,我使用Pycharm里的IntelliBot来编写。如果使用RIDE,则可以单独勾选要执行的用例来执行。单行注释很容易,前面加#就可以了,在Pycharm里可以选中要注释的行,ctrl+/快捷键就能做到。当想添加多行注释时,虽然可以选择很多行,同时使用#去注释。但常见的场景是,一个套件内十几个用例,失败了一个,想注释掉其他来重跑。如果文件较大,则会产生大量的#,...

2019-06-18 14:46:00 3173

原创 python-类内函数的全局装饰器

有时,比如写RF的测试库的时候,很多方法都写在一个类里。我们又可能需要一个通用的装饰器,比如,要给某个底层类的方法打桩,查看入参和出参,用以理解业务;或者要hold住所有的执行错误,打印堆栈又不想程序退出或用例直接失败比如捕捉错误的装饰器import tracebackfrom functools import wrapsdef trier(soft=False): ''' ...

2019-05-21 18:50:36 3425

原创 MySQL8.0.16版本在SQLYog8.14内执行查询均报错1064的解决

现象如下,执行任何一个语句,均报错,但大多能在报错后返回结果查看日志,发现sqlyog给所有的查询都同时执行了explain extended在mysql 5.7或更早的版本内,这么做可以得到详细的执行性能信息(SQLYog不仅仅会执行查询,还会向你展示性能情况),但mysql 8里,经过查阅文档发现,已经改为了直接使用explain,不含extended的语句后来在sqlYog里找到 ...

2019-05-07 11:11:29 2835 9

原创 RF可用的多线程装饰器(改进版)

在之前这篇文章里https://blog.csdn.net/qq_27884799/article/details/88709936,我的多线程装饰器虽然在我们的RF框架上用上了,但那是因为我们装饰的方法是静态方法。如果装饰的方法是写在类中,由于第一个参数是self,这个参数在被装饰时并不会传入,只有调用时才会在第一个位置传入,导致解析参数时报错。定位发现问题是在def multiThread...

2019-04-28 22:08:27 866

原创 RF二次开发,listerner监听器获取实施日志的坑 Listener does not have mandatory 'ROBOT_LISTENER_API_VERSION' attribute

参考了https://blog.csdn.net/wyb199026/article/details/78730097,写了个这样的listener# listen.pyclass RobotListener: ROBOT_LISTENER_API_VERSION = 2 def myprint(self, data): if type(data)==unic...

2019-04-23 13:10:45 995 5

原创 RF可用的多线程装饰器

RF本身没有多线程的库,我们可以使用类似下面的方法,并对外公开parseArg和multipleArg两个方法(写到测试类里面),给需要并发的函数套上装饰器,即可实现多线程执行函数。由于可以只传单个的参数,因此并不影响函数的单线程运行。比如在RIDE/RED内可以写成这样的调用${arg1}parseArgmi${arg2}parseArg故宫喵...

2019-03-21 11:09:50 780

原创 一个Python脚本,用于给geth循环解锁账户,方便合约调试

仅用于开发模式,给非0号账户自动解锁使用。为了资金安全考虑,切勿用于真实环境。#!/usr/bin/python# coding: utf-8import subprocess, threading, sys, timegeth=subprocess.Popen('./rungeth.sh',stdin=subprocess.PIPE,stdout=subprocess.PIPE,stde...

2019-01-28 00:40:34 472 1

原创 python实现的广域网聊天(无需搭建服务器,基于FICS和socket模块)

FICS是免费的国际象棋服务器(其实就是个命令行下棋的网站,有许多界面比如BabasChess、Arena、iNemesis或者我们的Verachess支持访问),里面允许未注册会员登录,而且他们登录以后也可以聊天。所以我就利用这一点,实现在广域网借FICS的服务器来聊天。(虽然延迟有点大,而且每次聊天的字数有限制,每一句只能有十几个汉字)这里真正的困难点在于,FICS客户端不支持中文字符的聊天...

2018-12-10 02:23:27 1883

原创 [大坑]pycharm里ctrl+单击动作即引起python.exe停止工作崩溃

前不久突然就出现一个问题,我的pycharm突然坏了一样,只要按下ctrl,鼠标点击open箭头那个位置i弹出联想到的内建库以后,没几秒钟就杯具了,而且是必然发生报错信息如下:问题签名:  问题事件名称: BEX  应用程序名: python.exe  应用程序版本: 0.0.0.0  应用程序时间戳: 59bd8781  故障模块名称: MSVCR90.dl...

2018-12-01 12:01:14 2295 3

原创 python强大生成式——一行代码不嵌套实现的小九九乘法表

原创代码print ('\t'.join([str(x)+"*"+str(y)+"="+str(x*y)+"\n%s"%('\t'*2*x)*(y-8) for x in range(1,10) for y in range(x,10)])).replace('\n\t','\n')# 或者print '\t'.join(['%d*%d=%d

2018-09-15 15:39:54 237

原创 解决 win7里部分依赖Qt的程序显示不清晰的问题

测国际象棋引擎,做引擎比赛会使用到CuteChess的界面。它是基于Qt5.9制作的。 我的是win7系统,1366*768的13寸屏幕。棋步那里总是显示不清晰,如下效果 网上找了不少资料但都没能解决问题,不管是cleartype还是换掉simsun字体还是视觉效果那里改为最佳性能或者去掉平滑边缘都没有用。后来实验出来应该打开控制面板里的个性化,选择窗口颜色 分别尝试选择不同的项目,...

2018-08-31 01:49:36 1109

原创 [PyQt5+Py2exe+Python2.7.14]打包exe遇到的坑

1.打包时找不到MSVCP90.dll报错 解决:打包脚本选项添加”dll_excludes”: [“MSVCP90.dll”,]# -*- coding: utf-8 -*-from distutils.core import setupimport py2exeoptions = {"py2exe":{"compressed": 9, #压缩 ...

2018-08-25 03:43:37 1013 3

cpu温度监测 命令行工具 (windows)

可靠的cpu温度监测工具,python实现。适配windows,非wmi,温度准确,无需提权。 打开后约每30秒更新一次数据,其他语言可以通过管道调用来获取和通信(建议以低优先级调用)。

2019-11-22

page-4.26 for windows(Python tkinter 界面设计工具,操作类似VB)

类似qt designer或者vb,可以在页面上拖拖画画,绑定属性和事件,就可以生成tkInter界面的python代码的工具 需要依赖python 2.7/3.5+,ActiveTcl 8.6+以上。如启动时提醒找不到wish.exe,请将ActiveTcl的可执行文件路径加入path环境变量内

2019-10-23

ActiveTcl-8.6.9.8609.2-MSWin32-x64-5ccbd9ac8.exe

python Tkinter图形界面开发,PAGE工具的必要依赖 是Tools Command Language工具命令语言的执行版本 直接下载需要账号,故上传到这里

2019-10-23

VB命令行管道控件(与CMD交互,风格类似WinSock)

本控件与cmd控制台和其他命令行程序交互的ocx控件,效果很像Winsock或MSCOMCTL。TestForm是测试该控件用的窗体。在VB6/IE10(asp-VBS)/Excel2003下测试成功。完美兼容单换行符(chr10)和vbcrlf两种换行格式。本控件接收回显的事件为DataArrive,发送命令的方法为DataSend,使用前需先调用InitFirst方法初始化。作者雨水[email protected],谢绝转载

2017-11-02

空空如也

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

TA关注的人

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