`
senvon
  • 浏览: 37292 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

利用Selenium集成TestLink做自动化测试

阅读更多

 

再牛逼的CI环境,都不能测试出逻辑上的问题(连CI环境都没有的,这边就不说了)。最终的问题还是反映在浏览器上。

作为一个程序员,最让我不能接受的是,程序员要争取一些时间是那么的困难,而测试要时间是那么容易。我们把大量的时间花费在毫无意义的回归测试上,而且每次迭代都要回归。

吐槽一下,程序员是创造性的人员,而测试是检查错误的。各位有没有发现开发的时间和测试的时间是差不多的???甚至测试的时间远大于开发的时间。。。什么狗屁,明显是测试没能力。

 

 

我们希望的样子

selenium来操作浏览器,然后把测试结果报告给testlink,在testlink上查看测试结果。

执行一条命令,执行所有的testcase,然后可以去testLink上查看报告。

 

Selenium是浏览器模拟器,可以通过脚本来实现对浏览器的操作。

Testlink是测试管理软件,可以负责test case的管理和report的管理。

 

 

当然,seleniumtestlink也都有自己的弱点。

Selenium的弱点在于,啥都要自己做,除了做操作浏览器的,还要testcase的管理,每次test执行的配置,居然还要做测试报告。实在是娘西皮。。。。

Testlink的弱点在于,testlink虽然有testcase的管理,但是这里的testcase都是文档,而不是自动化执行的脚本。虽然按照testlinkroadmap来看,2.0以后的testlink会越来越多的支持自动化测试,testlink官方也并没有说要怎么来支持自动化测试。

 

两者的结合可以很好的弥补各自的短处,很完美的配合。

 

下面介绍一下,我的实现思路

利用testlink的导出功能,导出test plan所有的test case,当然,这些test case都是文本,是不能执行的。但是导出的xml里面包含了所希望被执行的testcase,可以通过testlink导出的xml,来指导测试引擎,最后由测试引擎来调用selenium,调用浏览器来执行操作。当测试结束的时候,调用testlinkxml-rpc接口,把绑定运行的测试结果输入到testlink,然后就能在testlinkreport界面上,看到执行结果了。

 

看上去很不错的解决方法。。。。

但是xml和测试引擎需要数据绑定,把testlink管理的testcase和测试引擎管理的testcase绑定起来。在我的实现里面,是使用的testcasename来作为绑定依据的,所以一定要让testlink中的testcase的名称和测试引擎管理的testcase一致。

 

附件为我写的一个简单的测试执行引擎。

就是按照上面的思路实现的。

 

 

如何使用我的程序

1.打开testlink的远程调用

2.新建一个远程访问用户,在数据库中手动修改script_key字段,该字段是远程调用testlink的时候,用户的识别字段,对应到程序中的配置为dev_key

 

testlink中存在一个testcasetestcase的命名请用“googletest”,大小写区分。。。。

testlink中,导出test plan,得到一个xml

把这个xml放到classpath路径下面

 

修改Main类的静态变量PLAN_FILE设置为xml的路径,运行Main类,就开始自动执行xml中的testcase了。

 

可执行testcase的管理是在application.xml里面,testCaseFactory管理的所有的可执行testcase,通过testcase的名称关联。

 

程序认为执行失败的标识是执行过程抛出异常,并且会把异常的message作为note上传到testlink,同时上传已经打开页面的数据截图。方便让用户看到这个失败的testcase到底出了什么错。

 

程序中testlink.propertiestestlink的配置

Remote_server

Testlink远程调用的地址,一般只要换ip和端口就可以

Dev_key

远程调用testlink的时候,被testlink所识别的用户字段,需要手动修改User表中的script_key字段

browserType

Selenium使用的浏览器类型,如果不能识别,就是用HtmlUnit无界面的方式来做测试,这个模式下面不能截图

 

结果分析

这样只是一个临时性的方法,实现了selenium和testlink的集成,可以做自动化测试

但是有一些硬伤是不能解决的,在正式引入项目前,必须要考虑到

1.testlink的testcase执行状态,不能被赋予NOT RUN,也就是说,一个testcase开是绑定到testplan以后,并且被执行,当解除绑定后,这个testcase应该不被执行,由于testlink的执行状态不能设置NOT RUN,所以这个状态不能设置到testlink上,在report页面上看到的结果都是先前执行的结果

2.测试数据的绑定。脚本化的testcase所用到的数据,应该和sql绑定。在每次执行testcase的时候,应该对数据库进行初始化。但是在我的测试引擎里面,怎么做都是不合适的。。。这边有考虑欠妥的地方

 

 

最后,大家要是有时间,访问一下我的产品www.groob.net

帮我增加点人气

目前,产品开放试用版下载,请访问http://www.iteye.com/topic/1122520

 

由于iteye不能看到我上传的附件,可以使用我的网盘下载

http://163.fm/DpvF9mW 提取码:grOBiDGU

 

 

或者

http://www.rayfile.com/zh-cn/files/dba18c30-8445-11e1-ab55-0015c55db73d/

http://www.kuaipan.com.cn/file/id_48764891175059459.htm

分享到:
评论

相关推荐

    2022自动化测试面试宝典根据公司内部题和培训机构老师整理的这些年来高频的自动化测试相关面试题。.zip

    2. 自动化测试框架:理解Selenium WebDriver、Appium、Junit、TestNG等主流自动化测试框架的使用和优缺点。 3. 编程语言基础:自动化测试通常基于编程语言实现,如Java、Python、C#,熟悉至少一种语言的基本语法和...

    robot framework集成环境与web测试资料

    TestLink是一款测试管理工具,testlink_jenkins.pdf可能介绍了如何在Jenkins中集成TestLink,以管理和跟踪测试用例执行的状态,提升测试管理水平。 7. **Appium手机自动化测试**: "002appium手机自动化测试_...

    自动化测试知识ppt包含qtp实践

    自动化测试是指利用测试工具和测试规范,来替代部分或全部的人工测试工作,从而提高测试效率的一种方法。其核心在于通过软件工具模拟用户的操作行为,并对测试结果进行验证。 ##### 1.3 自动化测试的特征 - **模拟...

    testlink1.8.5完全汉化包

    6. **自动化测试支持**:与自动化测试框架(如Selenium)对接,方便进行自动化测试执行和结果同步。 汉化包中的“zh_CN”文件夹通常包含了所有中文翻译的资源文件,例如语言包、界面元素的字符串文件等。安装或更新...

    testlink-1.9.17.tar.gz

    TestLink可以通过API与其他工具(如Jenkins、Selenium)集成,实现测试自动化,提高测试效率。1.9.17版本可能已优化了这部分功能,使得自动化测试更加顺畅。 总之,TestLink 1.9.17作为一款强大的测试管理工具,...

    Robot Framework 自动化测试框架

    Robot Framework 是一个开源的自动化测试框架,广泛应用于各种测试领域,包括接口测试、数据库测试、Web测试和App测试。这个框架以其灵活性、可扩展性和易读性而受到业界的青睐,尤其适合大型项目的综合测试需求。 ...

    testlink工具

    TestLink还提供API接口,可以与其他工具如持续集成服务器(如Jenkins)、自动化测试工具(如Selenium)进行集成,实现数据交换和自动化任务。 8. **版本升级与扩展** 由于TestLink是开源项目,社区活跃,因此有...

    实训手册-软件测试过程管理工具-Testlink2

    《实训手册-软件测试过程管理工具-Testlink2》 在软件测试领域,有效地管理和...在实际工作中,结合其他测试工具如Jenkins、Selenium等,你将能构建起一套完整的自动化测试框架,为软件产品的质量和稳定性保驾护航。

    软件测试工具

    TestLink支持与各种自动化测试工具集成,如QTP、Selenium等,使得测试生命周期管理更加顺畅。通过其强大的报告功能,测试团队可以清晰地了解测试进度和结果。 Mantis则是一款开源的缺陷跟踪系统,用于记录、跟踪和...

    软件测试复习大题.pdf

    测试自动化工具是用于自动执行测试的工具,例如Selenium和Appium;缺陷跟踪工具是用于跟踪和管理软件缺陷的工具,例如JIRA和Trello;配置管理工具是用于管理软件配置和变化的工具,例如Git和SVN。 软件测试在软件...

    《测试员》特刊之软件测试基础

    常见的自动化测试工具有Selenium、Junit、Appium等。 5. **软件安全性测试**:评估软件抵御攻击和保护数据的能力。包括漏洞扫描、渗透测试、安全编码审查等,确保软件在设计和实现上遵循安全最佳实践。 6. **测试...

    25岁零基础想转行软件测试能不能成功?.pdf

    * 自动化测试工具:如Selenium、Appium等,用于自动化测试。 * 性能测试工具:如JMeter、Gatling等,用于性能测试。 * 缺陷跟踪工具:如JIRA、Trello等,用于跟踪和管理缺陷。 零基础如何转行软件测试 对于零基础...

    软件测试教程.zip软件测试教程.zip

    - 自动化测试工具:如Selenium(Web自动化)、Appium(移动应用测试)、Junit(Java单元测试)。 - 测试管理工具:如TestLink、HP Quality Center,用于规划、执行和报告测试。 6. 性能测试 - 压力测试:评估...

    软件测试学习

    Web UI自动化工具如Selenium、Watir、SilkTest和QTP用于自动化界面测试,接口测试工具如SoapUI和Curl可以进行API测试。自动化测试框架如Selenium和RobotFramework则提供了更高级的自动化测试支持。性能测试工具如Bad...

    软件测试笔试题.doc

    - **功能自动化测试**:如Watir、Selenium、MaxQ、WebInject,用于自动化UI测试,提高测试效率。 - **性能自动化测试**:如JMeter、OpenSTA、DBMonster、TPTEST、Web Application Load Simulator,用于压力测试和...

    软件测试基础要点

    1. **自动化测试工具**:如Selenium、TestComplete等,用于自动化执行重复性的测试任务。 2. **性能测试工具**:如LoadRunner、JMeter等,用于模拟高并发场景下的系统表现。 3. **缺陷跟踪系统**:如JIRA、Bugzilla...

    系统aweb测试

    最后,测试过程中会用到各种工具,例如Selenium用于自动化Web界面测试,JMeter进行性能测试,Postman进行API接口测试,以及禅道、TestLink等测试管理工具。熟练掌握这些工具能有效提升测试效率和质量。 总之,系统a...

    软件测试面试常见问题笔记

    18. **常用测试工具**:TestLink、禅道用于用例管理,Mantis、BugFree用于缺陷管理,QTP、Selenium用于功能自动化,LoadRunner、JMeter用于性能测试,SVN作为版本控制工具,Charles、Fiddler用于抓包,Postman、...

Global site tag (gtag.js) - Google Analytics