- 博客(553)
- 资源 (5)
- 收藏
- 关注
原创 测试用例在软件开发中的重要地位
很早的时候看到过有人提问,测试中最重要的是什么,有味大牛的回答是Case,至今印象深刻。测试有很多种类了,下面说的场景偏自动化测试,也就是说case可以通过结构化的数据存储下来,通过工具重放。csae来源现代软件太复杂,特别是回归场景下需要回归的测试点太多,case的来源也不仅仅是手工维护了。通过线上的请求日志或者通过流量录制都大大的增加了case的获取量,这种大都属于正向case,对于逆向case或者边界条件,还需要通过人工补充,或者通过规则自动补充,这样case库才算比较完整。现在的case可能不止一个
2022-07-10 10:37:06
1361
原创 [Chaoblade]jvm-sandbox UnsupportedOperationException错误
jvm-sandbox UnsupportedOperationException在使用基于 jvm-sandbox 的agent chaosblade-jvm-exec 的attach java进程的时候,发现某些 AOP 切点无法被正常切到,错误如下java.lang.unsupportedoperationexception: class redefinition failed: attempted to change superclass or interfaces 经过排查是跟公司内部的
2021-08-19 19:55:23
1869
原创 [Chaosblade] chaosblade-jvm-exec和chaosblade交互
chaosblade-jvm-exec 是负责 chaosblade 中 Jvm 故障注入的模块,是基于 jvm-sandbox 的 java agent。本篇文章介绍下他俩的目录关系,以及交互逻辑。1 目录关系chaosblade-jvm-exec 最终是打包成为一个jar包,放在sandbox的目录下面,sandbox又在chaosblade的目录下。├── bin│ ├── chaos_addfile│ ├── chaos_appendfile│ ├── chaos_bur.
2021-08-13 21:48:29
1449
原创 Dev的质量保障
当前的团队中有产品和开发,只有产品验收环节,并没有专门的QA来做测试保障。开发同学自测的质量就非常重要了,公司中有些自动化的测试工具,因为工具更多的是面向业务产品,所以能利用的也是有限,更多是需要开发同学自己想办法提高测试效率。背景是后端开发同学,服务Http居多需求阶段一定要跟产品同学对明白需求,可能需要来回往复几次沟通RDQA开发中 (对开发细节有疑问,及时找产品沟通,有时候可能就是逻辑遗漏或者细节处不合理)开发完成(简单的对下验收测case)可以自己简单整理核心的流程,关键c.
2021-07-11 12:26:40
337
2
原创 Devops质量卡点
概念对齐质量检查点(卡点,门禁)质量检查对象(工程的某个分支 || Appcode应用)阻断规则配置部分规则部分 配置模块 配置继承(project会继承project中的配置,这里会有2层的继承关系,如果是appcode,根据应用树继承关系有点多) 配置对象(工程和appcode)有多种类型的阻断对象。 是分开还是统一到appcode呢? 服务集市中的配置(对接外部) 接入服务的方式增加阻断类型数据汇总数据表部分结果汇总
2021-07-11 12:16:44
872
原创 Devops中的消息总线
Devops 中有非常多的功能是事件驱动的,不管是开源还是自建的产品体系中,有2个东西应该是绕不开的,WebHook和消息总线。比如说下面的一些场景代码Push之后,怎样触发Sonar检查,自动化测试?提测之后怎样触发分支自动部署?配置变更之后,触发回归测试?…自动化测试,发布,打包这种行为大多数都是一种较长时间的异步任务,如果想要在结束的时候通知调用方结果,一种是webhook同步通知,一种是MQ的方式进行广播。webhook的方式麻烦的地方是可能需要配置多个回调方,需要主动.
2021-07-10 21:19:03
296
原创 [jvm-sandbox] 多个agent并用
背景:某些需求导致会同时使用 jvm-sandbox-repeater 和 chaosblade-exec-jvm 两个基于jvm-sandbox的agent 同时注入到java程序中尝试jvm-sanbox版本(后面简称sandbox)jvm-sandbox-repeater 2.1chaosblade-exec-jvm 3.1两个agent先后attach,只能attach成功第一个,第二个会失败,并且几乎没有什么日志。解决办法jvm-sandbox的最新文档中看到支持多租户,我们.
2021-05-07 13:04:39
1545
1
原创 [Maven]Nexus自建伺服切换地址之后遇到的问题
背景:公司有自建的nexus伺服,需要从老的地址 http://svn.xxxx:8081 (老地址) 切换到新的域名 (http://nexus.xx)。 过渡期已经有一两年了,最近老地址的机器要退了,所以必须迁移到新机器,记录下遇到的问题。Nexus 使用公司内部的开发,测试,以及发布都统一的Nexus仓库,包括Java服务端,安卓。下面说的502,是无法从老地址下载的一种统称问题和解决1 需要更怎么更新配置呢主要包括repositories pluginRepositories 节点中.
2020-07-04 09:20:09
1098
1
原创 orangleliu的2019年小结
19年过的比较惶恐,突然感觉自己没有了竞争力,内心战斗力还是有的,就是感觉有力使不出,发挥不出来。去年的心愿旅行读书其他的完成度比较低说说今年的印象深刻的几个词失业随着老ken不能说服爱立信,elmeast一直无法盈利,5月份的时候公司就几乎停止开展业务了。从年后一直陆陆续续的裁员,5月底几乎全部走光了,甚至5月下半个月连办公室都退租了,蛮惨的。几乎从5月下半月就开始找工作...
2020-01-02 20:33:02
578
2
原创 [bpf]bcc-tools和bpftrac运行错误 Error creating printf map: Operation not permitted
最近把公司的电脑安装了 ubuntu系统,用来做日常开发和学习的环境,看到内核比较新,所以想弄点新玩意玩玩。环境为# cat /etc/issueUbuntu 18.04.3 LTS \n \l# uname -aLinux zhizhiliu-hp 5.0.0-32-generic #34~18.04.2-Ubuntu SMP Thu Oct 10 10:36:02 UTC 2019...
2019-10-31 22:38:14
2009
原创 [Python]threading local 线程局部变量小测试
概念 有个概念叫做线程局部变量,一般我们对多线程中的全局变量都会加锁处理,这种变量是共享变量,每个线程都可以读写变量,为了保持同步我们会做枷锁处理。但是有些变量初始化以后,我们只想让他们在每个线程中一直存在,相当于一个线程内的共享变量,线程之间又是隔离的。python threading模块中就提供了这么一个类,叫做local。多线程中共享变量和局部变量的区别我画两个小图,简单描述...
2019-10-29 11:44:13
5568
原创 [Python] MultiprocessTimedRotatingFileHandler
Python logging模块在多进程下不保证同步,所以 TimedRotating 的情况下可能会导致某些日志文件丢失,下面是一种简单的解决办法,对于日志完整行要求不是很严格的情况下可以使用。# coding:utf-8import timeimport osimport loggingfrom logging.handlers import TimedRotatingFileHan...
2019-10-29 11:39:40
648
原创 随笔201906
本年度Blog写的很少,加上去年的总结一共3篇,是什么原因呢?工作的事情不是很稳定,有些计划就被打乱了,之前蛮多的文章都是工作总结,还有就是看东西有些凌乱,不够专注,导致蛮多的知识只在皮毛,没有什么体系,所以就没啥记录。搬家4月份的时候已经交房拿到钥匙了,接着贴了墙纸,小修小补,然后就是看家具买家具,一直拖拖拉拉,直到租的房子到期才算搬过来,这段时间又把家里的生活用品,家电陆陆续续买买回来...
2019-06-11 15:07:48
402
1
原创 Flume avro client和hdfs sink 完成自定义目录文件收集
准备背景: 把分散在个边缘Node的访问日志收集到中央节点,然后在做后续的处理。边缘Node(例如hostname为BJ-NODE1) 上的日志每分钟切出来一个文件,通过 Flume avro client 把5分钟粒度内的日志上传到中央节点,生成一个文件,文件名类似 BJ-NODE1_timestamp.log。大概的逻辑如下图avro clientD中央avro clientavro ...
2019-04-11 14:23:03
1453
原创 说说HTTP 202状态码的场景
最近线上有对接其他系统的HTTP请求,总是取不到数据,导致数据偶尔丢几次。这是个交接过来的系统,之前也没对过API,后来拿到API以及测试之后,才发现是202状态码的异步任务导致的。概念rfc2616MDN HTTP 202200 OK200 OK 表明请求已经成功. 默认情况下状态码为200的响应可以被缓存。不同请求方式对于请求成功的意义如下:GET: 已经取得资源,并将...
2019-03-08 10:54:19
48807
9
原创 Orangleliu的2018年小结
生活今年总的来说家庭合睦,身体健康,蛮好的。最大的事情就是买房子,借遍了亲戚朋友,加上父母的家底才凑够首付,虽然房子不大,也算有了自己的家,年后就可以搬进去了。虽然一下子欠下很多钱,有点不适应,但是有家的感觉还是蛮好的。18年房产调控比较厉害,所以买房的时机并不是很理想,稍微贵了些,从买房子整个过程来看,还是缺乏社会经验,考虑不周全,场面上也比较稚嫩,谈判中立场,以及沟通技巧都需要增强,以后才...
2019-01-20 10:51:41
719
1
原创 Golang 按行解析日志测试 ldetool
比较早的时候写过一篇 Python Golang 解析web日志正则一例 当时发现 Golang的正则模块性能不是很好。最近在逛 reddit的时候发现了这样一篇文章 Fast log parsing with Go ,文中提到了一个基于行做半结构化解析的库ldetool, 于是又做了一些尝试和学习。ldetool 这个工具更像一个DSL,通过一种语法来写解析的语法,然后通过 ldetool g...
2018-12-16 16:43:35
2098
原创 Mac上使用SecureCRT
之前在mac使用ssh是用的一个开源的python + expect 脚本来做的,简单的连接操作还是挺好的 https://github.com/upton/ssh-auto-login-manage ,最近一些工作这个方式不太好满足,一个是同时操作多个机器,一个是使用rzsz 来传输文件(mac终端使用expect之后 lrzsz就不好使了)。 于是开始用 SecureCRT 了。我这里用的是...
2018-11-14 17:04:46
7656
1
原创 Python 使用office365邮箱自动发送邮件
现在公司用的是 office365 的邮箱,有需要自动发邮件的需求,发现了一个还不错的库,写了个小demo,主要是smtp的配置注意下安装方式 pip install emailsimport emailsfrom emails.template import JinjaTemplate as TUSERNAME = 'xxx'PASSWORD = 'xxx'smtp_conf...
2018-11-14 14:06:14
10280
1
原创 Unix like系统清除 ^M
最近在接手其他人的项目,有些是用windows开发的,安装到linux发现执行不起来,出现了错误 -bash: /etc/init.d/tm: /bin/sh^M: bad interpreter: No such file or directory (还有一些配置无法读取等等了), 后来想起来windows 和unix 的换行符不同导致的,windows下默认为 \r\n, mac和linu...
2018-10-23 09:51:11
594
原创 随笔201809
不好好读文档的惨痛教训大家都知道golang的 time layout是一个特殊的字符串 Mon Jan 2 15:04:05 -0700 MST 200, 比如最常用的格式就要这么写 "2006-01-02 15:04:05", 每个数字都是固定的含义。今天使用gokit做日志解析的时候愣是写成了 02/Jan/2006:03:04:05, 结果上午的数据解析的好好,下午的解析不了了...
2018-09-12 17:34:20
406
原创 Python 大文件多进程并行处理小例
这里的需求很简单,统计比较大的log文件的行数,最终版本请看最后一段代码。环境64G 32核心 机械盘python2.7.5文件的信息$ tail www.geniatech.net14.182.200.249 - - [23/Aug/2018:00:11:06 HKT] "GET http://www.geniatech.net/down-eng/upgrade/...
2018-09-04 14:02:33
12451
1
原创 Python日志解析入库优化
上周做了一些测试还有改进,这里简单的总结下。需求需求是这样的:网络存储Gluserfs每天的日志文件大概有400多G的样子,全是类似nginx的默认格式的web日志,文件的大小分布不一定,几kb也有,几个G的也有,目录深度3~4层的样子。 现在把网络存储挂载到ServerA上,需要做的就是扫描昨天的所有日志文件,然后解析日志,存储到另外的ServerB上,B上是一个单机的Cli...
2018-09-03 13:28:57
1752
原创 随笔201808
为了可以看看很大的世界,我和 远总 各买了VPS,主要用来搭建天梯,一般都是我来维护的。最近想看看流量使用情况,于是弄了下监控来把玩下, grafana + prometheus + node_exporter 做了一套简单的监控平台来监控我们的主机基础指标还有网络流量。 用作监控的是 openvz主机,1G内存,20G硬盘,比较惊讶的是这几个组件跑起来之后总的内存消耗不到 60m,记得之前用za...
2018-07-30 18:04:16
1257
原创 kubeadm安装k8s测试环境
目标是搭建一个可测试的k8s环境,使用的工具 kubeadm, 最终一个master节点(非高可用),2个node节点。环境以及版本Centos7.3kubeadm 1.11.1kubelet 1.11.1kubectl 1.11.1docker-ce-18.06 说明 kubeadm默认的etcd是本地的,所以这里使用的是本地 etcd,而不是kubeadm中的...
2018-07-30 14:34:14
3526
1
原创 [Macos] ssh登陆小工具 ssh-auto-login-for-macos
ssh-auto-login-for-macos SSH自动登陆小工具Macos 上登陆 ssh 其实在 terminal 或者 iTerm 使用原生的 ssh 命令就行,但是如果我们的服务器稍微多一点,即使用key的方式登陆,那么多ip总是难以记住。常见的几个解决方法配置 ~/.ssh/config ,设置免密码登陆使用 alias,设置免密码登陆使用第三方的客户端,例如...
2018-07-25 10:21:02
2925
原创 黑夜路人2聊天小群
17年的白天某个时间,不堪忍受灌水的 黑夜路人群 的群友们自建了一个非技术的聊天专用微信群,群主是被大家成为大姐大的 静姐(后来大家聊天太火热,她也不堪忍受,退群了 - -!)。 但是这个群促成了我第一次和网友聚会,然后还交到了几个朋友,这对于不善交际的我,有种收获不小的感觉,下面是根据回忆点评一下这些群友,以便以后回看。(顺便感谢 黑夜路人大哥)大小聚会3次,我都跟着去了。。少爷总也去了,先...
2018-07-17 21:29:10
2240
原创 陈天-软件开发能力-live 笔记
工程师往往忽略的软件开发能力 slide 地址软件开发能力在刚开始的阶段大家对于语言的关注度往往大于系统层级,业务层级。软件系统是个大工程,包括 separate programs, configration files ,代码或者编程语言都只是一部分。发展阶段 idea -> mvp -> business -> real system(provid...
2018-07-04 15:24:25
2242
原创 [macos] 通过usb共享网络给iphone
主要是想抓iphone的包,现在只有一个mac pro电脑,一个iphone手机,有wifi网络,(通过uuid抓包的方式不稳定),所以需要iphone的流量都从mac上走,然后在mac上进行抓包。macos 10.13 phone7 ios11.3操作步骤首先是mac电脑连接上wifi,mac可以正常的上网 系统偏好设置 -> 共享, 看到左侧有复选框,点击 ...
2018-06-23 14:53:52
27200
原创 2018.06~7 阅读随笔
Your State is Not Mine: A Closer Look at Evading Stateful Internet Censorship 加州大学滨河分校的的一个关于gfw绕过的研究,gfw阻止网络有IP禁止,以及tcp reset的方式,这个研究主要是提出一种绕过TCP connection reset这种qiang的对抗方式。 Once a sensitive...
2018-06-21 14:02:17
2120
1
原创 内网IP端口扫描统计+服务识别简单思路
前提:内网是10网段的,几乎所有机器都开了80和22端口,所以以此为依据认为扫描到的都是在线的IP。 目标是得到在线的IP启动了哪些端口,尽量猜测端口对应的服务。Centos7 (macos用brew直接安装就行)Nmap 6.47Masscan 1.0.4Python 2.7.xcentos7 sudo yum install nmap## masscan 需要...
2018-05-31 10:03:22
8318
原创 [linux]非root账户 sudo cd 无法切换目录解决办法
在Centos上有个账户A(非root),有sudo权限(权限比较大),想要用 cd 命令切换到 B账号的 /home/B 下的目录,结果没作用[liuzz ~]$ sudo cd /home/xiejl/[liuzz ~]$ sudo cd 无法使用是因为 cd 是 bash 的内置命令。sudo 让A变成了root,然后 bash 再去查找 sudo 后面跟着的命令,然而找不到c...
2018-05-26 22:35:39
12036
原创 [python]使用pycrypto 或者 cryptography 生成rsa 公钥私钥对
简单的例子分别使用了 pycrypto 和 cryptography 库,可以根据自己的需求调整 key的长度或者是格式,默认是 PEM的。代码# coding:utf-8from Crypto.PublicKey import RSAfrom Crypto import Randomdef generate_rsa_keys(): """crpyto inst...
2018-05-10 22:19:58
4669
原创 [Flask] pytest 文件上传单元测试
http 小文件上传的接口一般采用 表单形式的上传(http post) 或者是 stream 的直接上传 (http put), 用flask实现了上传接口之后就需要测试,怎么造请求折腾了一会,下面记录下代码片段test_upload.py # coding:utf-8from cStringIO import StringIOimport pytestfrom .....
2018-05-03 15:59:27
4103
1
原创 [flask小坑] request.json 无法获取请求body的json数据
写接口自动化测试的时候,发现用httpie发送带有put请求,flask后端api可以获取到json数据,而我用robotframework发送的请求就不行,flask的 request.json 获取到的数据为 None怎么办?查文档,看代码呗代码 https://github.com/pallets/flask/blob/master/flask/wrappers.py#L53...
2018-04-28 16:26:49
26660
5
原创 orangleliu 的笔记分享
有些内容没有系统的整理,也因为经常编辑,所以通过链接的形式分享下,有空再整理分享s3cmd访问ceph rgw用fakes3作为ceph对象存储测试环境linuxcurl 常用case curl是简单手工测试的神器,非常有必要掌握...
2018-04-26 11:12:02
1550
原创 Openresty 反向代理返回非200进行retry到自定义upstream
利用 error_page 指令对反向代理返回的 404, 302... 等状态码,做子请求的二次处理。client -[1]-> nginx proxy <--[2]--> 站点A(返回404,302) |[3] V 站点B (返回200)比如作为CD...
2018-04-22 16:37:59
3956
原创 [Nginx] proxy cache 中对带有 Range header 请求的处理
media 文件下载服务需要一层cache,使用的是 Nginx 的 proxy_cache 模块,文件下载常见的一个需求就是要使用 Range 这个请求header来下载文件的一部分。下面就是测试 proxy_cache 模块,对这种请求的处理。思考前提下载服务本身支持range请求第一种情况:请求Range --> nginx proxy cach...
2018-04-17 09:39:35
6552
原创 Flask http 上传下载demo
说明http 上传通常有两种模式 利用 enctype 为 multipart/form-data的表单上传,通常我们上传图片等小文件都是用这种方式. 参考MDN的文档 Using FormData Objects。一般的web框架支持都还不错,注意稍大一些文件写到disk就好,否则可能内存用的比较多,常见的问题还有多文件批量上传。使用 Range 模式上传,思路就是把大文件拆分成很多...
2018-04-13 14:40:54
2702
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人