Jan 15 2015
Write a Tiny Shell-based Test Framework

    Write a Tiny Shell-based Test Framework

    参与过服务端的后台开发和测试的同学对服务器压力测试应该都不陌生了。为了对线上服务进行模拟测试,往往需要编写自动化的测试工具。一个常见的原型通常是这样的:

    1. 从指定地址下载待测的服务器程序,完成本地化配置和部署;
    2. 使用事先构造好的压力词表生成一系列的请求,并以指定的速率(QPS)向服务器发送这些请求;
    3. 解析服务器的日志,统计压力测试结果。

    当然,实际上的测试环境可能更加复杂。比如,有些服务还要防止同一个 ip 地址在短时间内发出大量请求,相应的就要通过伪造 ip 等手段覆盖这种 case 。但“万变不离其宗”,基本的流程不会有太大的改动。

    无需借助其他语言,以上的工作其实只需用 Linux 自带的 Shell 就可以实现了。这给大多数 Linux 服务器开发测试人员所带来的好处就是完全轻量级,省去了配置开发环境的环节。本文就围绕如何基于 Shell 编写一个简单的测试框架,完成上面的所有工作。

Read More

Feb 20 2014
Learning UTF-8 From A Bug

    Learning UTF-8 From A Bug

    去年 8 月份,我尝试自己写代码解析 Linux Man-Pages 的页面。

    Man-Pages 使用的是 groff 文本标记语言,其最大的特色就是格式标记宏置于行首,例如 man(7) 第 35~48 的内容为:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    .SH NAME
    man \- macros to format man pages
    .SH SYNOPSIS
    .B groff \-Tascii \-man
    .I file
    \&...
    .LP
    .B groff \-Tps \-man
    .I file
    \&...
    .LP
    .B man

Read More

Jul 3 2013
A Shell Script to Notify the Network Status

    实验室的网络经常瘫痪,这点让人非常纠结。

    为了检查网络是否正常,需要经常敲 ping 命令,久而久之就感觉很 stupid 。

    终于我忍不住了,写了一个工具定期帮我测试网络,一旦网络状态发生改变,就弹窗提醒。

    截图:

    1 网络连接失败时的提醒

    网络连接失败时的提醒

    2 网络恢复正常时的提醒:

    网络恢复正常时

Read More

© 2017 Joseph Pan with help from Hexo and .