Selenium自动化测试 一.自动化测试简介 1.生活中的自动化处处可见,比如洗衣服、工厂等。 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程步步执行测试,得到实际结 果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。 我们将测试分为三个层次,分别是UI层、service层和unit层。 三个层级投入测试的分配比: Unit 占整个测试工作的70%,Service占20%,UI占10%, 在单元层作自动化测试实现成本较低,容易看见成效,越往上层维护成本越高尤其UI层的测试很多都是站在用户的角度上去测的,元素时常发生改变,旦发现大的bug返工的代价高昂,所以应尽量将unit的测试做充分,将错误尽早暴露。 2.适合自动化测试的场景 任务测试明确,不会频繁变动; 回归测试比较频繁; 界面比较稳定; 有大量的重复任务; 软件的维护周期较长; 项目进度方面的压力较小; 测试人员具备较强的编程能力。 二.常用自动化测试工具 1.qtp:支持b/s,c/s 架构, 企业版 收费 ,因此现在用的比较少。 RF(Robot Framework)是基于python编写的自动化测试的框架,支持关键字驱动,是基于关键字的接口自动化测试工具,具备良好的可扩展性,可进行分布测试。 Selenium Selenium是thoughtworks公 司开发的一个用于Web应用程序的测试工具,是免费的开源测试工具. 2. Selenium的特点 (1)支持众多浏览器,Firefox、 Chrome、 1E、 Opera、 Safari (2)支持众多语言,Java、Python、 ruby、 PHP、C#、JavaScript (3)开源、免费 (4)支持众多平台,Linux、windows、 Mac (5)对web页面具有良好的支持 (6)简单( API简单),灵活(用开发语言驱动) (7) 支持分布式测试用例 三.Selenium的发展史 Selenium经历了三个版本 1.0 2.0 3.0 1.Selenium 是通过往浏览器里嵌入js,同时发送js命令来控制浏览器 ①selenium IDE Firefox浏览器中的一个小插件,实现浏览器操作的录制和回放。 ② seleniumGrid 用来对测试脚本做分布式执行,即实现在多台机器上和异构环境中运行测试用例(分布式的概念是写好一条用例可以调用不同的平台执行 ,如A电脑上有一个测试用例,可以调用B电脑( linux )的Firefox浏览器来跑A电脑上的测试用例;也可以调用C电脑( windows )的Chrome浏览器来跑A电脑上的测试用例,这是分布式的概念(兼容性)。这样就可以把总用例的-部分用例分始B,-部分分给C从而提高了工作效率) ③ selenium RC ①client libraries :用于编写测试脚本, ②selenium server :负责控制浏览器行为,Selenium Server主要包括3个部分: Launcher.Http Proxy、Core Launcher :用于启动浏览器,把selenium Core加载到浏览器页面当中 Http Proxy:拦截请求 SeleniumCore就是一堆JavaScript函数的集合,即通过这些函数,解释selenese命令 2、 selenium 20版本 通过WebDriver去替代RC,webdrive提供了更出色的API,可以绕过JS,直接控制浏览器,更快,安全性更高。 3. selenium 3.0版本 Seleniu3 0是在Selenium2.0的基础上,彻底放弃Selenium RC,把FirefoxDriver独立化,对IE、Edge有更好的支持。 4、 webdriver的原理 四.搭建selenium环境 1、安装selenium的python客户 端库(若是Java语言写脚本安装Java的客户端库) pip install selenium 2、安装浏览器 3、安装浏览器驱动 https://www.cnblogs. com/puhongjun/p/10232489.html 安装的版本是最新版本的 指定版本: pip install selenium==3.5. 2 4.自动打开百度的脚本 from selenium import webdriver
drive = webdriver.Firefox()
drive = webdriver.Chrome()
drive.get("https://www.baidu.com/")
|