Wakatime 测试工作时间

Wakatime – 现在几点了,你在做什么呢

前面提到了一个用来QS自己的工具Clarify。这次介绍一个专门给程序员用的工具。
大家都知道一万小时定律,但我究竟写java写了多久了呢?WakaTime知道。估计很多人都知道RescueTime,我也是用RescueTime来记录我的工作时间。但它无法记录更具体的行为(也许实际也做了),比如我写了多久javascript,多久objective-C。Waka就可以啦,因为它提供了几个主要的IDE的插件,只需要安装对应的插件,Waka就能自动记录你在IDE里的行为。

WakaTime

Waka的基本设计和rescuetime类似。每个人注册完将获取一个key,装一个客户端,把key输进去(登陆是同一个道理),然后它就把本地的所有行为带个key扔给服务器来统计,一段时间之后给你个报表。不过Waka做的真的很精准,精确到每一个文件用了多少秒,每一种语言用了多少时间。


据说Waka还能知道你在每个branch用了多久,这还真是一个量化程序员的好办法。如果有项目管理会用这种工具,相信也能更精准的把握开发进度,控制每一次开发尝试的代价。

作为一个付费用户狂人,登陆以后做的第一件事当然是搜Pricing~对比一下,付费用户的功能就是无限期数据查看和原始数据导出。想了想…算了这次…还有团队版本哦~

工作原理

Waka让我觉得好玩的是他的plugin都是开源的,而且在他的开源项目列表里看到了一个叫wakatime的核心项目,python写的,说是大家基本不需要直接使用的。基本可以确定是每个plugin都会去调用的核心库。

从queue.py里看出所有的log都会被放到~/.wakatime.db下,那我们就去看看它存了啥。打开以后发现是空的…想必是Waka把log都传走了以后就删掉了本地的。于是,断网,假装写代码,再看看。

可以看到它记录了我在哪个文件,什么时间,什么项目下,写了什么语言,甚至在哪一行下都记录下来了。如果这个数据结合版本管理,动态的展现出来,将会是多酷啊~

Anyway,由于我很想用koding这样的WebIDE来工作,这样就又没发用Waka了,所以我需要知道发送记录的具体API是什么。

这也叫API文档

Wakatime是觉得代码是最好的文档么,居然在API文档里没有写出这些log是如何被打进数据库的…文档里只有认证,获得统计信息,和当前用户信息的接口…

好吧,那我们直接去刚才那个python的repo里看吧。首先,这里面肯定有个代码文件是包括http和wakatime.com的。那就搜吧,找到了init.py里一个函数叫send_action。很明显这是用来发log的。

那先让我们用curl模拟一下这个请求吧(看起来也不用太多域)。

$ curl -d ‘{"time":"1414688349","file":"/root","lines":"123","language":"javascript","is_write":"0","project":"manhattan"}‘ -H "User-Agent: space" -H "Content-Type: application/json" -H "Authorization: Basic ODMwOTliYjMtZGUwZS00NWFkLThhODItZmY4OWUwYzxxxxxxx" https://wakatime.com/api/v1/actions
{
  "data": {
    "id": "83682870-8306-4d12-b4a9-e0ba5f6cc295"
  }
}

把Key base64一下,用date +%s拿一下当前的timestamp,就可以往Waka里扔数据啦。扔完了以后看看Dashboard~好啦,我们的曼哈顿项目出现啦~

如果你愿意可以把它改成各种SDK(当然browser里会出现跨域的问题,所以你可以找个中间服务器做这事儿)。

在未来做点儿事儿

刚才看到了有个timestamp来表示时间,如果改成以后呢。估计waka不会蛋疼到做这个检查吧…往2015年1月1日扔几个action,等一小会儿,看manhattan项目的URL,改成https://wakatime.com/project/manhattan?start=2014-12-26&end=2015-1-3。就能看到我在未来写javascript了~

扩展的waka

所以其实wakatime是一个特别基础的action记录和统计平台。如果它愿意开源(其实这真的还不如一个logger分析平台…),完全可以搭建成一个QS小服务。比如晚上9点连续发出20分钟加速度变化数据,然后就停止了10分钟…

时间: 2024-10-11 15:00:21

Wakatime 测试工作时间的相关文章

测试管理-测试工作量估算实践

测试工作量估算是整个测试过程中不可忽视的环节,关乎项目整体的交付计划及时间工期安排.预估的越准确,对项目整体节奏的把握更有利. 我们首先要强调,估算估算,本身就带有预测性质,其准确程度是要受到多方面因素制约的,尤其是信息的充分性. 越是大型的复杂项目,对于估算的要求就越高:反之,小规模“短频快”的项目则对于估算要求不那么高. 1. 估算办法 如何得出对于测试时间的准确估算,可以从三种思路去保证: 参照以往项目的经验 依靠专家经验进行估算 使用专业的估算算法 项目中常见的估算形式有自上而下式的,也

读书笔记:读完互联网测试经验的感受

之前下载了一些互联网公司的测试经验和技术介绍,因为太忙一直没有时间看.最近又翻出来重新看了一遍,感触还是挺多的,可能也是由于工作时间长了后有了一些新的感悟. 主要有百度,腾讯,阿里下属的几个子公司(淘宝,支付宝,一淘),豆瓣等等,内容比较杂,有介绍测试经验和测试技术的,也有介绍自己的测试工具和自动化平台的.总体感觉互联网公司的测试工作还是比较高大上的,最起码比我们部门做的好多了.总结了一下,主要优点体现在以下几个方面:第一,尽早测试:第二,尽可能深入,测试从最底层开始,逐步上升集成:第三,尽量减

转:什么样的测试人员是好的测试人员

1 工作积极主动 工作态度如何,是评价一个测试人员最主要的方面,一个高水平的测试人员(指纯技术能力)如果没有一个好的工作态度,在测试团队中有时候不但不能对测试工作起到推动作用,有时候还起到阻碍作用,而一个愿意工作的测试人员,哪怕他的技术水平不高,人也不聪明,但对自己的工作认真负责,你告诉他的事情,他都可以认真去做,这个测试人员也会对测试工作起到很大的促进作用.这也是为什么很多企业愿意让刚参加工作的人员做测试工作的一个主要原因.另外,测试人员对工作是否主动也会很影响一个测试人员的发展,举一个例子,

Linux运维的8个小时工作时间都做什么

跟着运维工程师的工作越来越香,不断增加的人选择它来开端自个的工作生涯.那么你想不想深化了解运维工程师的日子?他们的一天是怎样度过的?小编我就从baidu贴吧.知乎上整理了些运维大小牛们的自述,看看是不是有你的影子? 陈湛翀,从事运维工作在我面试了一些运维职位的同学以后,我觉得在中国很大一部分运维的同学都是每天过着我以下要提到的,我最不喜欢的最典型的一天.我最不喜欢的一天:早上一来到公司,就被一个跑过来的同事打断:他有一个需求.其他的同事在IM.邮件和电话中也分别提出了他们的需求.没办法,只能默默

web测试一般分为那几个阶段,哪些阶段是可以用工具实现的,都有些什么工具,哪些阶段必须要人工手动来实现呢?

这是我在知乎上遇到的一个问题: 首先这个提问本身就是有问题的, 没有哪个阶段是用工具实现的,每个阶段都是“人”用“工具”来“实现的”,每个阶段都需要“人“,也需要”工具”. 下面是我的原回答: 首先说分几个阶段:1.学习.了解产品2.计划/设计测试3.执行测试4.测试结果分析和报告 然后说工具,首先,每个阶段都可以使用工具,其次,每个阶段都需要人工介入,最后,强烈地指出,工具不可替代人类,人类使用工具. 不得不指出,有的人把测试的阶段理解成了测试的种类,题主问的可不是web测试包括哪些种类. 下

入行测试32天,总结

早八点半晚六.每天上午8:30到12:00,3.5小时.下午13:30到18:00,4.5小时.每天工作时间八个小时,2016-04-06入职,今天是2016-05-22,32天测试工作.正儿八经的上了32天测试的工作了,256小时.想好好写个总结,但是文笔不好一直没写过文章.一时间不知道怎么下手,偶然看过一写文章,里边的观点是:“动手吧!年轻人”.我总是不动手的话,也一直都总是不动手.所以,不管写的再烂,还是动动手写写吧! 自学第一周.我是于2016-03-14开始学习测试.2016年的三月份

经营成功的测试职业生涯(转载)

经营成功的测试职业生涯 (James A. Whittaker) 你是如何开始做测试工作的? 1989年,我在田纳西大学读研究生的时候,完成了从软件开发人员到软件测试人员的转型.而这一转型并非出于我自己的选择.我命运的改变发生在一个早晨,我的教授质问我为什么缺席那么多开发会议.我解释说因为会议被安排在星期六早上,很不方便. 而怍为一个生平第一次离开家的新入校的研究生,这个时间段有些麻烦.十分有意思的是,等待我的惩罚并不是一纸解聘通知书,而是被判罚为该小组的唯一一个测试人员,且不能与开发团队有任何

测试员,敢问路在何方

1  第一部分 - 成为资深软件测试员的四条进阶之路 在这篇文章中,我认为我们的软件测试员有四条潜在的进阶道路.它们是: 1)成为专业的QA.知道如何使用不同类型的测试工具开展网络测试,性能测试,负载测试和压力测试: 2)成为领域专家.可以像最终用户一样来使用你正在测试的产品: 3)成为测试架构师.可以领导整个团队和整个公司的测试以及质量保证: 4)成为工具和框架的开发人员.可以开发出世界一流的测试工具: 我还将讨论工程师的其他进价道路,比如转行去开发人员或PM,改变你的工作领域. 1.1 成为

为女票写的计算工作时间的SQL(二)

将非工作时间.非工作日.节假日去掉,计算工作时间,如下: 一.实现 -- 节假日表 CREATE TABLE Holiday ( id INT(10) DEFAULT 0 NOT NULL, DATE DATETIME(6), flag INT(1) DEFAULT 0, PRIMARY KEY (id) ); -- 向节假日表中插入数据 INSERT INTO Holiday (id, date, flag) VALUES (1, '2017-04-01 00:00:00', '1'); IN