使用ftrace学习linux内核函数调用
Oracle 数据库常用SQL语句(2)查询语句
js获取页面url
解决plink报错:.bim file has a split chromosome. Use –make-bed by itself to remedy this.
Status bar could not find cached time string image. Rendering in-process?
jQuery:validate内置验证的使用
iOS进行单元测试OCUnit+xctool
iOS进行单元测试OCUnit+xctool

单元测试 什么是单元测试 wiki解释 简单说来就是为你的方法多专门写一个测试函数。以保证你的方法在不停的修改开发中。保持正确。如果出错,第一时间让你知道,这样从最小单位开始监控来保证软件的质量。 我为什么要单元测试 其实要开始写单元测试的原因是,由于我的原因格志的存储逻辑一直有问题。 一个是代码写的比较搓,一个是修改存储的逻辑的话。影响面比较大。可能修复了一个bug而引入了未知的多个bug。为了Sumi早日达到国际化大厂的标准。决定上单元测试于格志。其实最根本的目的还是想要项目变的更加可靠。 单元测试的一般方法 关于测试的书,一搜就一大把。都有高深的理论和方法来指导怎么写单元测试的方法。我觉得嘛不用搞了这么复杂。 无非就3种时候会去想写测试: 代码完成以后 开始写代码之前 修复了一个bug以后 第一种是完成了代码,恩我要测试一下我写的这些方法可靠不可靠。那这时候可以写测试。 第二种一个著名的方法论TDD。主要思想就是在写代码之前,就全部设计好借口。函数名字什么的。然后在写能通过测试的函数。 第三种就是发现了bug,我修复了这个bug。为了确保修复是成功的。那就写个测试吧。 我觉得啊,着三种都没有什么好或差。能写测试的少年都是好少年。何必这么在意什么时候去写呢。 一个完整的测试类组成像下图 在一开始可能测试方法里面需要一些上下文环境。这些可以在Setup里面去完成。然后才可是执行自己写的测试方法。 然后测试结束以后,可能产生了一些垃圾数据文件什么的。这时候你可以在TearDown方法里面把他们处理掉。 以上大部分都是我自己的粗浅理解,如果你需要更多关于单元测试请阅读更加系统专业的书籍。 OCUnit OCUnit是xCode里面自己带的单元测试框架。不必安装第三方的其他库就可以使用。最简单的就是创建项目的时候你把单元测试的那个勾点上。xCode就会自动的为你加入一个单元测试的target。快捷键Command + U。就可以运行测试。最喜欢这样方便又好用的东西了。当然运行OCUnit的测试输出的内容实在惨不忍睹。 创建一个OCUnit的Unit Test 新项目使用OCUnit 选上Unit Test 会自动的建立一个Target 自动的为你添加好需要的类库 为你添加一个Unit Test的类 看一眼Scheme 只有一个。 看看Scheme里面是怎么写的。 用Command + U运行一下测试看看结果。这是没有通过的。因为自动生成的模板就是不通过的。具体一会儿分析代码。 看看终端的输出。渣一般的难看。根本无法高识别度的分清。 已经存在的项目使用OCUnit 这是一个一开始没有选择过Unit Test的项目 点击增加Target 选择Unit testing Bundle 为我们的测试bundle取一个名字 我们可以看到Scehme多出来了一个。这时候如果选择的是App的Scehme。Command + U。是没有运行测试的。要选择我们新建立的Test Scehme。再按Command + U.就运行了测试了。 […]

JMeter之Ramp-up Period(in seconds)说明(可同时并发)(转载)
JMeter之Ramp-up Period(in seconds)说明(可同时并发)(转载)

Ramp-up Period(in seconds) 【1】决定多长时间启动所有线程。如果使用10个线程,ramp-up period是100秒,那么JMeter用100秒使所有10个线程启动并运行。每个线程会在上一个线程启动后10秒(100/10)启动。Ramp-up需要要充足长以避免在启动测试时有一个太大的工作负载,并且要充足小以至于最后一个线程在第一个完成前启动。  一般设置ramp-up=线程数启动,并上下调整到所需的。 【2】用于告知JMeter 要在多长时间内建立全部的线程。默认值是0。如果未指定ramp-up period ,也就是说ramp-up period 为零, JMeter 将立即建立所有线程。假设ramp-up period 设置成T 秒, 全部线程数设置成N个, JMeter 将每隔T/N秒建立一个线程。 【3】Ramp-Up Period(in-seconds)代表隔多长时间执行,0代表同时并发 Delay Thread creation until needed 延迟创建线程,直到该线程开始采样,即之后的任何线程组延迟和加速时间为线程本身。这样可以支持更多的线程,但不会有太多是同时处于活动状态。 调度器 选中调度器后,需要输入启动和结束时间。当测试启动时,如果必须JMeter会等待启动时间到达。在每个周期 结束,JMeter检验结束时间是否到达,如果是,运行停止,如果不是测试被允许继续,直到迭代限制到达。 另外你可以使用启动延迟和持续时间文本域。注意启动延迟会覆盖启动时间,持续时间会覆盖结束时间。

有关Java基础的一些笔试题总结
有关Java基础的一些笔试题总结

针对近期腾讯、京东、网易等公司的笔试。遇到一些有关Java基础的问题,在此总结。希望能通过这几道经典问题题发散,举一反三。借此打牢基础!自己总结,望提出宝贵意见! 一、关于null的一道小题 先开开胃。一道非常有意思的笔试题,题目例如以下: 以下这段代码能正确运行吗?假设能,输出什么? public class NULL { public static void haha(){ System.out.println("haha"); } public static void main(String[] args) { ((NULL)null).haha(); }} 答案是能正确运行。大家看出来答案用了多久?相信大家都比我强。 我第一次看到这个表达式。脑子一片蒙蔽,后来细致分析代码,大写的NULL是类名,括号是对null做类型强转,然后调用NULL类的静态方法。 输出为: haha 由于null值能够强制转换为不论什么java类类型,比如(String)null也是合法的。但null强制转换后是无效对象。其返回值还是为null。而static方法的调用是和类名绑定的。不借助对象进行訪问。所以能正确输出。反过来,没有static修饰就仅仅能用对象进行訪问。使用null调用对象肯定会报空指针错了。 这里和C++非常相似。 很多其它null相关知识可參看博客深入理解Java关键字null 二、有关类载入机制的 静态块、块、构造方法 运行顺序问题 非常经典、非常基础的问题,题目例如以下: class HelloA { public HelloA() { System.out.println("HelloA"); } { System.out.println("I'm A class"); } static { System.out.println("static A"); }}public class HelloB extends HelloA […]