selenium2_python自动化测试实战PPT
- 格式:pptx
- 大小:553.96 KB
- 文档页数:5
关于《selenium2⾃动测试实战--基于Python语⾔》关于本书的类型: ⾸先在我看来技术书分为两类,⼀类是“思想”,⼀类是“操作⼿册”。
对于思想类的书,⼀般作者有很多年经验积累,这类书需要细读与品位。
⾼⼿读了会深有体会,豁然开朗。
新⼿读了不⽌所云,甚⾄会说,都在扯犊⼦,看了半天也不知道如何下⼿。
对于操作⼿册的书,⼀般会提供⼤量的实例,告诉你详细的步骤。
对于⾼⼿来说,这不就是翻译了⼀下官⽅⽂档嘛,好意思拿来骗钱。
但对于新⼿来说,反⽽认为是好处,跟着上⾯的步骤操作就掌握了某种技术能⼒。
显然,本书属于后者,书中提供了⼤量代码实例,并没有太多思想层⾯的指点与探讨。
当然,对于web UI层的⾃动化代码,随着时间推移书中的例⼦或不能运⾏成功。
所以,对于已经在⾃动化⽅⾯有经验的同学也不要抱太⼤希望,能从本书中看到太多⾼深技术。
但对于新⼿来说,也不要想得过于简单,如果你编程基础⽐较弱的话,读起来也会有点难度。
关于出书⽬的: Selenium⾃动化测试技术已经出来很多年了,知道2013年的时候,市⾯的关于该技术的书(中⽂版)都只是在讲Selenium⼯具本⾝,这导致很多⼈(包括我)看完这些书后,并没有什么卵⽤。
只会拿Selenium IDE录制⼀些简单的脚本。
单真正把Selenium⽤好,编程语⾔和单元测试框架是很重要的知识。
从我准备整理这本电⼦⽂档的时候,就把这两块知识作为⾮常重要的技术介绍。
另外,国内⼤多Selenium书籍都是基于Java语⾔的,其实,Ruby和Python更适合测试⼈员学习。
出⼀本基于Python语⾔的,也算是填补⼀下空⽩。
还会出版Java版的吗? 不会,虽然在今年⼋⽉份的时候我也整理出了Java版的电⼦书。
但现在市⾯上已经出版的基于Java的Selenium已经有了单元测试框架的讲解,所以,我感觉没有必要再将Java版的出版了。
关于出版的过程: 其实,本书能够出版中间也经历了曲折,早在2013年我就在整理关于Python+Selenium的⽂档,刚开始整理点内容免费共享,后来再加点内容卖5元,再后来加了些内容卖8元;再后来加了很多内容卖29元。
SELENIUM2自动化测试第1周第一周简介◆前言:课程背景介绍◆解惑:为什么需要自动化测试◆原理:自动化测试原理介绍◆环境:SELENIUM2环境配置◆其它:相关工具配置◆作业:务必完成前言:课程背景介绍场景:面试官:接触过敏捷模式吗?我:接触过。
面试官:敏捷测试中如何进行快速测试?我:组长分配任务。
面试官:你们不用自动化测试吗?我:或许。
有可能。
没用过?Balabala 自动化测试最近几年在测试人员中很火,出去面试时,要是说不会自动化测试,都能感觉到面试官的鄙夷之情溢于言表,甚至在公司做自动化测试的同事都感觉比做手工测试的有技术含量一些,正因为有这样的情怀,所以导致自动化测试越来越火,但是火的背后,却伴随着很多的盲目,盲目的追求自动化,盲目的夸大自动化的作用,甚至投入很多的人力物力去做自动化,但往往最后的效果并不太理想,失败的案例太多太多,于是,我们是时候停下来去冷静的思考一下,同时提出:做高质量的自动化测试。
几个问题:1.短平快的项目(一次性的项目),做完交付即可,没有后期维护,这样的项目不适合做自动化,做了也白做2.项目周期短的项目,要你一周做完,你有时间去写自动化吗?3.易用性测试,这些不适合做自动化,这些属于产品经理的事情4.系统不稳定,这个也不适合自动化,系统都不稳定,盲目的去自动化,只会让团队疲于奔命。
5.涉及一些与硬件交互的系统,这也不适合自动化。
NO,并不是所有的项目适合自动化。
适合自动化的情况:是不是所有的项目都适合自动化测试?几个问题:自动化测试的效率体现在,反复运行,快速运行,快速回归,所以,自动化测试适合于敏捷项目中,快速迭代,手工测试新功能,自动化回归老功能。
几个问题:自动化测试能发现新的BUG吗?答案也是否定的,自动化测试不会发现新的BUG,只是限于对老功能中的一些问题。
工具的选择:简单比较一下大家都熟悉的QTP与selenium21. QTP,商业工具,笨重,但是功能强大,易上手,是一套完整的自动化解决方案,且适用于C/S,B/S结构2. Selenium2,开源工具,轻量级,适合多种语言编写,能在多种主流浏览器上运行,但是只支持B/S系统,且需要一定的编程基础,上手比较难selenium2的原理:Selenium1是thoughtworks公司的一个产品经理为了解决重复烦燥的验收工作,写的一个自动化测试工具,其是用JS注入的方式来模拟人工的操作,但是由于JS的同源策略,也就是JS只能在一个域中的页面进行通讯,如果跨域,则就不能访问了,所以导致了如果页面中有iframe时,就无法操作了。
Selenium2+Python⾃动化测试实战本⼈在⽹上查找了很多做⾃动化的教程和实例,偶然的⼀个机会接触到了selenium,觉得⾮常好⽤。
后来就在⽹上查阅各种selenium的教程,但是⽹上的东西真的是太多了,以⾄于很多东西参考完后⽆法系统的学习和应⽤,有⼀次在⽹上随意搜索,找到了-⾍师-写的《Selenium2⾃动化测试实战基于Python语⾔》,觉得真⼼不错,内容也很调理,为了⽅便⾃⼰学习和知识的整理,就把其中⾍师编写的⾃动化项⽬教程整理⼀下,有兴趣的可以去参看⾍师的博客以下整理的只是书中⾃动化项⽬的知识内容,介绍怎么搭建⾃动化测试框架、执⾏⾃动化测试⽤例、⽣成⾃动化测试报告、发送测试报告邮件....,具体的Selenium和python语⾔基础不做介绍⼀、项⽬结构介绍下⾯逐级介绍此⽬录与⽂件的作⽤mztstpro/|-----bbs/| |-----data/| |-----report/| |------image/| |-----test_case/| |------models/| |----driver.py| |----function.py| |----myunit.py| |------page_obj/| |----*Page.py| |------*_sta.py|-----driver/|-----package/|-----run_bbs_test.py|-----startip.bat|-----⾃动化测试项⽬说明⽂档.docx1.mztestpro测试项⽬bbs:⽤于存放BBS项⽬的测试⽤例、测试报告和测试数据等。
driver:⽤于存放浏览器驱动。
如selenium-server-standalone-2.47.0jar、chromedriver.exe、IEDriverServer.exe等。
在执⾏测试前根据执⾏场景将浏览器驱动复制到系统环境path⽬录下。
船长带你看书——《selenium2python自动化测试实战》(1)有很多selenium的教程,你没有从头看,当你看的时候已经很难跟上作者的节奏了。
现在,你有机会再从头学一次了。
从今天开始,船长会从最基本的知识开始,和大家一起学selenium。
能不能跟着一起就看大家了。
我们是按照虫师的书《selenium2 python 自动化测试实战》写的,没错,我看了多少,就会在这里和大家分享多少。
还是老规矩,不明白的可以留言,现在有五六个人加了我好友,船长也尽力给大家解决问题了。
还有要谢谢@川小姐姐的赞赏,你是第一个真正赞赏的,哈哈,谢谢!好今天我们来第一课,搭建selenium环境,只需两步:第一步:安装python2.7第二步:下载一个46版本的Firefox完事。
不要问为什么用2.7,也别问能不能用最新的Firefox,按着我说的做,你就省去了大量的填坑的时间。
下载了46版本的Firefox以后打开进行如下操作:选择附加组件,搜索下载FirePath和Firebug只要下载了这两个,定位那里基本上就可以略过了,因为这两个工具简直太特么好用了~如果你比我还懒,那你就再下载个Selenium Builder:这个东西简直了,按着他给的写就行了,基本上连想都不用想就写完了,幸好他也不是万能的,要不然用selenium搞自动化的人就混不下去了。
准备就绪~~什么样的项目适合selenium自动化测试?第9条的意思是等你学会了selenium,你就“具备较强的编程能力”了。
先给大家来个代码热热身,不懂没关系,看看就可以,selenium 也就是这种东西:需要大家自己注册账号和密码。
这是和讯博客的自动发帖代码,大家可以试一试,船长亲测可用:。
Selenium2⾃动化测试实战25(⾃动化测试模型)⼀、⾃动化测试模型⾃动化测试模型介绍:线性测试、模块化驱动测试、数据驱动测试和关键字驱动测试线性测试:每个测试脚本相对独⽴,且不产⽣其他依赖与调⽤,只是单纯的来模拟⽤户完整的操作场景。
模块化驱动测试:把重复的操作独⽴成公共模块,当⽤例执⾏过程中需要⽤到这⼀模块操作时则被调⽤。
数据驱动测试:就是数据的参数化,因为输⼊数据的不同从⽽引起输出结果的不同。
不管我们读取的是定义的数组、字典,或者是外部⽂件(excel、csv、txt、xml等)都可以看做是数据驱动,它的⽬的就是实现数据与脚本的分离。
1. 参数化登录#public.pyfrom mon.keys import Keysfrom time import sleepclass loginTest():def login(self,driver,username,password):driver.find_element_by_id("username").send_keys(username)driver.find_element_by_name("j_password").send_keys(password)sleep(2)driver.find_element_by_name("j_password").send_keys(Keys.ENTER)def quit(self,driver):driver.quit()#testlogin.py#coding:utf-8from selenium import webdriverfrom time import sleepfrom public import loginTestclass testLogin():driver = webdriver.Chrome()driver.implicitly_wait(10)driver.maximize_window()driver.get("http://xxxxxx/adminAuth/login")#admin登录def login(self):username='admin'password='xxxxxxx'loginTest().login(self.driver,username,password)sleep(5)loginTest().quit(self.driver)testLogin().login() 2. 读取TXT⽂件python提供了以下⼏种读取txt⽂件的⽅式read():读取整个⽂件readline():读取⼀⾏数据readlines():读取所有⾏的数据txt⽂件内容如下图所⽰,⽤来存放⽤户名和密码数据,并通过该⽂件中的数据作为⽤例的测试数据。