设为首页 收藏本站
查看: 1129|回复: 0

[经验分享] 使用jenkins + python + selenium一步步搭建web自动化测试“框架”(1)

[复制链接]

尚未签到

发表于 2018-1-7 17:06:00 | 显示全部楼层 |阅读模式
  原先搭建过一个自动化测试框架,迷迷糊糊不求甚解,算是搭建了一个仅限于能用的、根本算不上框架的玩意儿。
  现在回过头来好好看看究竟每一步是怎么联系起来的,是怎么运行起来的。
  本次博客先说说各部件都是干什么的。
  各部件简介:
  jenkins
  提到jenkins就不能不提持续集成。jenkins是一个持续集成方面很好很成熟的开源软件,jenkins本身又是一个java的开源项目,提供了很多功能丰富的插件。
  那到底持续集成是个什么东西?整这么多专业名词一点都不接地气。说说我的白话理解:
  先看看持续和集成本身的意思:
  持续就是指日复一日,年复一年不断的做一件事儿。
  集成是指把一堆分离的东西弄到一块去。
  那么回来再看看jenkins中的持续集成:
  不间断的自动的,把每天的新东西整合到一起。新东西包括源代码,机器环境、测试代码等等。让这些重复的、繁琐的并且有规律的工作交给机器去做。
  说了半天,那么为什么要用到jenkins呢?jenkins最突出的一个功能就是可以关联代码版本库(svn、git等),当版本库有改动时(有人提交了代码,使代码库有变动)。会自动触发jenkins的构建,也就是会自动执行测试用例。当测试用例全部通过了,则表明本次改动没问题。如果测试失败了则表明改动后出了问题,需要查明原因并解决才能再次提交代码到版本库。
  python:
  我用python编写测试用例脚本。
  其实写测试用例脚本可以用很多语言写,java,c#编译型语言也可以。但是python本身是一个很灵活的脚本语言,书写起来方便快捷。
  与其他脚本语言,比如php、ruby、perl等等相比,python语法简洁,书写格式清晰,数据类型使用起来方便顺手,类库丰富,涉及范围涵盖绝大多数领域。
  最简单的一点:python写起来很舒服。
  selenium:
  做web测试必然需要跟浏览器打交道。那么做web的自动化测试,怎样操作浏览器呢?这就需要使用selenium了。
  selenium又是什么呢?selenium提供了很多类、方法等,使脚本可以通过其提供的方法,模拟真实用户操作浏览器。
  selenium到现在为止大体经过了两个阶段,也算是两个版本。
  在selenium1.0阶段,selenium是通过js操作页面上的全部动作,由于是通过调用js来操作的,所以有很大的局限性。
  例如无法做出拖拽动作、对系统弹窗也没办法操作,因为js只能操作页面元素。
  在selenium2.0阶段,selenium和webdriver整合到了一起。
  有了webdriver,selenium从两方面有了改进,一方面selenium不再使用js操作浏览器了,而是通过不同浏览器厂商提供的大部分页面操作的接口来操作页面元素。
  另一方面webdriver可以与系统底层交互,直接发送动作信号。例如按下什么键、鼠标移动到哪里等。可见selenium2.0比1.0强大很多。
  这里简单说说webdriver:
  webdriver我的理解:
  他算是一个API,一个规范。
  各种不同的浏览器厂商参照这份规范,给出selenium调用自家浏览器的接口。
  然后各种编程语言也是参照这份规范,给出语言自身的、可以操作不同浏览器的类库。
  例如我要用python写测试脚本,要通过python脚本,打开Firefox浏览器,进行一些列页面操作。
  这个过程能得以实现,是因为:python有一个叫做selenium的外部类库,selenium类库里面又有针对不同浏览器而实现的不同的浏览器包。
  这样我就可以通过导入selenium类库,再调用selenium类库里面的Firefox包来打开浏览器、填写表单、点击按钮了。
  好了,第一阶段先到这里,随着一点点完善“框架”,博客也会不断更新。后续贴上一些图片加深理解。
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-432643-1-1.html 上篇帖子: jenkins系列(9) 下篇帖子: 【转】手把手教你利用Jenkins持续集成iOS项目
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表