前两个月,Boss说要搞自动化测试,这里说明一下,之前公司测试都是测试人员手动点来点去(个人觉得这样确实比较蛋疼,手点麻了也测不出太多的BUG,还要反复操作相同的步骤,这也有些太难为我们公司搞测试的两个小妹妹了。)
开始决定是用selenium工具,决定了就开始干起来,安装Eclipse,JDK,配置环境变量.......!这里说一下,本公司测试人员没有太多开发经验,所以这些都是在开发人员协助下完成的,风风火火前前后后差不多搞了一个星期,就在我们觉得可以用的时候,发现问题一大推,测试人员对工具不熟悉,测试用例不太会编写,最主要的是程序一直不稳定,这个时候真心觉得太TM坑爹了,搞了这么长时间竟然不能用。由于本公司两位测试人员开始不知道有C#版本的,就用JAVA版本的来部署,结果CTO建议改用C#版本,所有又从新来过。
在决定换版本之前,我们开了一个研讨会,讨论接下来这个事到底该怎么搞,避免再做无用功。会议上,公司的屌丝都积极发言,并且就在会议上,我们简单部署了一下测试环境,(本公司的单元测试之前已经实现自动化,用Nunit+CruiseControl,在CruiseControl上面可以很直观看到单元测试的运行结果,有错误会自动提示,现在我们想做的就是把系统测试也部署到CruiseControl上面,)录制了一个测试用例,然后把录制生成的代码Copy到测试类里面,这样就可以运用单元测试的环境来跑系统测试了,试了一下,确实爽了一把,所以我们就决定使用这个了。
接下来的工作主要就是测试人员录制测试用例,然后Copy到测试类里面,开发这边负责给她们提供数据接口,好让她们验证测试是否通过,本以为接下来的事情就是这么简单,可是接下来遇到的一系列问题都会让我怀疑我的IQ、EQ、MQ、AQ、QQ,现在就不是蛋疼了,简直就是蛋碎。
最初发现selenium录制的代码根本用不了,录制成功之后在运行的时候根本就通不过,(不是每次都通不过,抽风的时候会过。至于什么原因,后面会介绍)我们就改用WebDriver,按照录制的思路,自己写测试用例的代码。这样一来,让我们公司两个小妹妹可就头疼了。大家都知道,要写好测试代码也不是件容易的事,还要考虑性能,稳定性等原因。
公司廖姓程序员负责给自动化测试提供数据接口,接下来的几周,就开始了他们的自动化测试之旅。我们还是用Nunit的机制来跑测试用例,结果发现有时候单个的测试用例可以用过,但是一起跑的时候就会报错,而且还有时候第一次跑的时候通过,第二次跑就通不过,第一次没通过的,第二次会通过,总之就是各种不稳定,各种通过与不通过交织进行,寻找其原因,发现跑测试用例的时候,元素定位不准确、数据有冲突、账户有冲突、提示框有问题.......。一系列的问题就导致前面出现那么多的不稳定,我们廖姓程序员在给自动化测试提供数据接口的同时,还负责解决了这一系列问题,元素定位不准确就用各种方法在页面上查找元素,数据有冲突就先备份数据库,测试跑完再还原数据库,账户有冲突就需要的时候在测试用例中切换用户,监测提示框何时弹出。在解决这些问题的过程中,新的问题不断出现。公司两个搞测试的小妹妹整天修改自己的用例,这里修改好,哪里出问题。我不禁想说,生活把我们QJ了。
到这个时候我以为我再也不会相信爱情了。我终于发现永远没有完美的程序,就像没有完美的人一样,多少都会有点BUG。为了不让这么多天的努力与付出白费,我们依然在不停的解决问题、解决问题、解决问题,此处省略500个字......(说多了都是眼泪啊!!),终于在一个阳光明媚、鸟语花香、风和日丽的早上,所用的测试用例全部通过,看着测试报告一片的绿色,我们的心变成了红色,在这一刻,我理解了守得云开见月明的真谛,懂得了阳光总在风雨后的道理,重要的是我发现自己又开始相信爱情了。
回顾整个过程,发现我们还是走的不少弯路,开始的时候没有想太多可能存在的问题,导致问题出现的时候没有相应的解决办法。软件开发是一个靠经验累积成长的过程,是每一个菜鸟都必须经历的,技术也是一条学无止尽的不归路,如果你一直停滞不前,那等待你的必将是淘汰出局。
现在我们自动化测试已经非常稳定了,每天定时跑一次就OK。今天来公司之后,Boss说明天是七夕情人节,给你们放一天假,去寻找爱情吧,哈哈~~!
整理了一下我们做自动化测试用到的一些资料,
来源:https://www.cnblogs.com/liufeng429/p/3248189.html