欢迎来到天天文库
浏览记录
ID:5571291
大小:21.25 KB
页数:4页
时间:2017-12-19
《一个菜鸟测试工程师的简易自动化测试框架》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、引子 作为一个无dev经验的tester来说,目前遇到许多新的问题,关于tester以后的人员基本素质的构成,现在也有许多说法,在这里,不想过多的铺开讨论了。作为一个tester,本身当然必须对test这件事情感兴趣,才能把工作做好。有的人天生喜欢找茬,喜欢提意见,在我看来,就是一个不错的tester的料。当你天天对着同一个产品的不同版本不停的测试的时候,自然会产生一些怨言,由此产生懈怠。 “某些功能点我都连着测试了N个版本了,肯定不会出错了”“这种基本功能点,怎么可能出错”这样的论调是很有可能产生的。于是,一个test
2、er很有可能在某次release的过程中,经验主义的放过了某些功能点的测试。几天后,一个用户反馈上来,那个功能点出了问题......... “偷懒”这个词语,在测试过程中,不应该算一个贬义词(当然了,故意漏过功能点不测试,不在此列)。因为“偷懒”催生新的技术,“偷懒”节省更多的时间。我相信,自动化测试就是这样来的。 正题 任何事情都可以分解为很小的部分,让我们先分析一下,手工执行测试案例的一个过程: 打开被测软件 执行测试案例 给出测试结果 然后,我们不断重复这个过程。最后给出测试报告。 显然,我们的自动化测
3、试也要满足上面的这个过程中的所有要求。既然是自动化,首先要求是所有的测试用例可以无人值守运行;其次,每个测试用例都由机器来模拟人对软件的操作;第三,某个测试用例失败不能影响其他测试用例的继续执行;第四,测试数据和测试用例最好分离开来;最后一点,测试结束之后,给个报告或者给个图告知测试结果。 根据上面的分析,我们逐个来一一解决,当然了,本篇都是很初级的解决方式,相信有许多大牛会有更好的方式来解决。 无人值守运行,那么python的unittest的框架就能达到这个目的。 模拟人的操作,selenium可以胜任。 测试用
4、例间无影响,同1 数据分离,那把测试数据都扔xml里。 待完善(本例中只是在部分方法中添加错误提示) 开始动手 对python的unittest进行一些小手术,当然了,如果只追求简单,直接用也行。 defassertLogEqual(self,arg1,arg2): print"[assertLogEqual('"+arg1+"','"+arg2+"')]:" ifarg1!=arg2: self.anyfailure=True print"->Failed:notequal" self.result_n
5、ote="'%s'and's%'isnotequal"%(arg1,arg2) else: print"->OK" self.result_note="%sOK"%self.result_note self.assertEqual(arg1,arg2) defassertLogTrue(self,arg1,note=""): print"[assertLogTrue("+str(arg1)+")]:"+note ifarg1isFalse: self.anyfailure=True print"->
6、Failed:ExceptingTrue" self.result_note="%sError:%s"%(self.result_note,note) else: print"->OK" self.resulte_note="%sOK"%self.result_note self.assertTrue(arg1) defassertLogFalse(self,arg1,note=""): print"[assertLogFalse("+str(arg1)+")]:"+note ifarg1isTrue
7、: print"->FAILED:ExpectingFalse." self.anyfailure=True self.result_note="%sError:%s"%(self.result_note,note) else: self.result_note="%sOK"%self.result_note print"->OK" self.assertFalse(arg1) 自己新建一个类,继承unittest,然后修改必要的一些方法,并添加部分方法,譬如设置testName啊,设置标记值来标记c
8、ase知否执行结束啊。这些都是可以根据自己喜好来加入的方法。 defsetTestName(self,tname): self.testname=tname defgetTestName(self): returnself.testname defsetCompleted(sel
此文档下载收益归作者所有