网站测试总结
前段时间忙网站的测试方案的确定,选择使用selenium RC作为测试工具,该测试工具主要分为两部分,selenium server 和selenium RC脚本(脚本采用Python编写,而且正确安装了selenium RC模块.),在脚本的编写中采用HTMLTestRunner.py进行测试报告的输出(将测试结果输出为html文件),下面说明在环境搭设和脚本编写中遇到的几个问题:
1.环境搭设的问题.环境的搭设主要分为selenium Rc和server,其中rc采用Python的pip自动安装即可(前提是已经装好了setuptools和pip,同时安装的时候可能会提示编码问题,更改换代码的编码即可.安装命令pip install -U selenium,也可以尝试使用pycharm的插件实现),然后是server,他其实是一个jar文件,我们安装好java运行环境,然后使用java -jar jar文件名称即可.
当需要对自己的网站进行测试的时候需要保持虚拟机和selenium server都是开启状态,而且虚拟机设置好了端口转发(修改vagrant配置文件),尤其是数据库要设置好用户的访问权限.
2.脚本的编写问题,下面附上编写的脚本模版.
1 #-*- coding: UTF-8 -*- 2 from selenium import selenium 3 import unittest,time,re,HTMLTestRunner 4 import MySQLdb,os 5 6 7 class Untitled(unittest.TestCase): 8 def setUp(self): 9 self.verificationErrors = [] 10 self.selenium = selenium("localhost", 4444, "*chrome", "http://localhost:8080/account/register/") 11 self.selenium.start() 12 13 #这里是测试案例 14 def test_untitled2(self): 15 sel = self.selenium 16 sel.open("/account/register/") 17 sel.type("id=id_username", "z") 18 sel.type("id=id_email", "a") 19 sel.type("id=id_password", "s") 20 sel.type("id=id_password_again", "d") 21 sel.click("//button[@type='submit']") 22 23 def test_untitled(self): 24 sel = self.selenium 25 sel.open("/account/register/") 26 sel.type("id=id_username", "z") 27 sel.type("id=id_email", "a") 28 sel.type("id=id_password", "s") 29 sel.type("id=id_password_again", "d") 30 sel.click("//button[@type='submit']") 31 32 def test_untitled1(self): 33 sel = self.selenium 34 sel.open("/account/register/") 35 sel.type("id=id_username", "z") 36 sel.type("id=id_email", "a") 37 sel.type("id=id_password", "s") 38 sel.type("id=id_password_again", "d") 39 sel.click("//button[@type='submit']") 40 #上面都是测试案例 41 42 43 def tearDown(self): 44 self.selenium.stop() 45 self.assertEqual([], self.verificationErrors) 46 47 if __name__ == "__main__": 48 #unittest.main() 49 #定义一个单元测试容器 50 test = unittest.TestSuite() 51 #将测试用例加入测试容器 52 #testsuit.addTests(unittest.defaultTestLoader.loadTestsFromTestCase(b)) 53 test.addTest(Untitled('test_untitled')) 54 test.addTest(Untitled('test_untitled2')) 55 56 #定义一个报告存放路径 57 filename = os.getcwd()+'\\result.html' 58 print filename 59 fp = open(filename, 'wb') 60 61 #定义测试报告 62 runner = HTMLTestRunner.HTMLTestRunner( 63 stream=fp, 64 title=u'数月亮测试结果', 65 description=u'测试报告.' 66 ) 67 #运行测试用例 68 runner.run(test)
其中可以看到,我们可以很方便的将测试的板块进行划分,然后通过Python导入模块,并且由于rc只是Python下面的一个模块,我们还可以通过在脚本中导入其他模块(比如数据库)进行一些额外的测试,比如结合数据库,然后通过selenium的action以后查看数据库的情况,是否插入了数据等.这里我们采用的是白盒测试,通过自己编写逻辑认证脚本,进行测试.
同时我们可以将自己所需要测试的用例加入到测试容器,这样可以有针对性的测试.
接下来就是学习下Python下selenium RC的具体api的学习了,然后开始第一个测试的开始!!!
总的来说,在学长的项目中学到了太多太多,比如敏捷开发方法,github代码管理,tower团队档案分工,ssh等,团队开发方案严格的采用了正式公司的开发方法,对自己的帮助特别大.
有时候总在担心,基础不足的我是否能够承担起团队开发的重任,我会不会拖慢团队进度,但是通过这次网站测试调研发现,其实很多事情并没有我想象的那么难,只是纯粹的担心而已,这是一个好的开端,那么等到这个项目开发结束,也是对于我自身的一种认可吧!
跟自己定下来的东西就像是一条很长很长的道路,有时候路上难免会有所偏差,但是幸运的是没有偏离的太狠,仍然朝着那个方向在不断的前行.每走一步都会觉得离自己的理想越来越近,就这样一直到自己理想实现的那天吧!
还记得有多少次自己曾熬夜看书,寒假都会抱着一本书看着看着累的睡着,感谢曾经努力得让我感动的自己!
还记得在考研之前跟自己说过一句话,只要自己的考研成功了,那么我的大学也就完美了.一年后,我也亲手兑现了这句话,现在已经成功转型,接下来的还剩两个月就把毕设好好弄下,最重要的是把项目尽量多做点,然后从这个暑假开始踏上新的旅程!!!!
四年计划转型第一年成功KO!
附上the piano guys的titanium,很喜欢的一首曲子,美到窒息的音乐~