memoryboxes blog

Been here so long got to calling it home.

Pycon2014 in Shanghai

| Comments

今年又去打酱油了。在上海有这点好处,可以很方便的找到各种组织~~~

去年拿了个帽子,今年发了件T恤,明年来条短裤就套装啦。

这次Pycon非常赞,上海的组织者真用心,这次无论是演讲还是气氛都很到位。志愿者们真的辛苦了,十二分的敬礼。

讲的内容有几点让我很惊艳的:

  • 讲协程的时候提到,函数的返回值不必返回给调用者,可以返回给三方,很有启发

  • 黄冬老师讲测试3层设备或者网站性能的最好办法,是把一段时间的DDOS发包抓下来,或者造出一堆SYN,直接用tcpreplay打到目标机上。很好很粗暴,也很有效

  • 关于OpenCL在数据计算领域的应用,让我有点吃惊,已经这么易用了,回头要看看

  • 以前一直听人说postgresql怎么怎么好,这次又被强化了一遍,这个也要研究研究

  • 中间看到有演讲者调试程序用lldb,之前我一直以为它不靠谱,貌似已经很成熟了

  • 机器学习讲的简洁明了,让我这个门外汉也听得津津有味

  • 中间的台湾演讲同五地互动的创举,太有想法了,虽然效果不理想,但我想说太Cool了,未来的大会互动会更多元,更精彩,为这个尝试鼓掌

  • 主持人非常专业,聪敏又风趣,可以直接上央视啦

还有几点不足的:

  • 话筒时好时不好,这个估计让大家有点提心吊胆的。这个是经验啊,以后组织类似的活动话筒要多多益善,还要多备电池。

  • Django和创业的两个议题都有点浅,太多讲Python的ABC了,这方面的内容可以收缩下

另外有点Confuse,会上有人提到用libpcap抓包分析网络流的,黄冬老师说性能没问题。其实我们这测试下来,绑定CPU抓包,libpcap通常的性能就在单网卡400Mbps左右。 如果用Zero Copy的话,可能性能有提升,但也不会太高。目前抓流量效率最好的是Intel的DPDK,可以到10Gbps。

还有魔豆提到用Selenium做自动化测试的事情,我用Selenium觉得,他的适用场景在WEB UI很少变化,并且页面结构简单的企业软件,像传统的路由器管理界面这样的东西,用它的录制测试还是可以的。 但是界面稍微个性化一些,想让测试代码长久,必须手写代码,而且是简单可靠的代码,不能单纯追求覆盖率。Selenium的测试代码虽然好写,但也容易废弃,要想写的简单可靠还是很有难度的。

关于UI测试,我的想法就是,尽量降低编写成本,如果一个UI测试挂了,你不能在5分钟之内修复它,直接丢弃掉!编写UI自动化测试的成本不应该超过5分钟,如果一个测试要频繁维护,那么,是重新写一个的时候了。 要想达到这个目标,我想到的简单解决方案就是图像DIFF,facebook之前出过一个huxley,我很有兴趣的研究过,还PULL过代码,但这个东西还是离我心目中的自动化图像DIFF有距离。后来又自己写了一个能把每天的测试结果保存下来,并能基于时间查看对比的东东,但效果也不好。

我想象中的web UI自动测试是这样的:

  • 支持比较模板点自定义

    对比的截图可以是基于录制时间最早的case的,如果中途重新录制,提供用户自定义机制。

  • 支持时间轴功能

    1、查询时间范围的灵活选择,可以很简洁的查询某段时间、或某个时间点的case.

    2、可以在时间轴上直接修改比较模板的base时间点

    3、以不同颜色标识base时间点、pass的测试、fail的测试以及fail的个数,测试名称等

  • 比较智能的图像DIFF算法:

    1、首先要能忽略指定区域,因为有些区域能够预测到是不断变化的。

    2、能对整张图、或某几个区域提供多个选择,如果符合其中一个我们就认为是OK的

    3、能提供组件级的识别,比如某个button,某个搜索框等等,一张截图里面如果所有指定的组件都OK,我们就认为是OK的。

PS:已经出现了类似的开源项目:

https://github.com/Huddle/PhantomCSS

最后感概下,Pycon一年比一年进步,志愿者们功不可没。对于他们的工作,怎么赞誉都不过分。非常感谢!

Comments