0


开学了软测的同学也该跟上了--selenium介绍+简单操作

    Hi,大家好,关注过我的应该知道前面其实是有写selenium的,为什么要重新写,因为前面写的不是特别的明白,有很多小伙伴私信我说没怎么看懂,所以,这里写这一系列的手把手教写。

    我的微信是qing_an_an,公众号是Sea_Cha,有兴趣的可以加我一起学习,我也有一个学习群,群内都是刚刚学习的朋友,更有大佬的加持,分分钟教导

什么是自动化?

    让程序代替人为,自动化验证web项目功能的过程

为什么要自动化?

    1. 解决回归测试(新版本正式测试之前的问题回归以及周边功能的验证)

    2. 解决压力测试(多用户操作软件,统计软件服务器处理多用户请求的能力)

    3. 解决兼容性测试(兼容不同的软件环境,如浏览器,操作系统,分辨率等)

    4. 提高测试效率,保证产品质量

什么时候开始自动化测试?

    功能测试完毕(手工测试)》》》web UI自动化

自动化测试的优缺点:

    优点:

            1. 较少的时间内运行更多的测试用例;

            2. 自动化脚本可重复运行

            3. 较少人为的错误;

            4. 测试数据存储 

    缺点:

            1. 不能取代手工测试;

            2. 手工测试比自动化测试发现的缺陷更多;

            3. 测试人员技能要求高

    误区:

            1. 自动化测试完全替代手工测试

            2. 自动化测试一定比手工测试厉害

            3. 自动化可以发现更多的bug

什么web项目适合做自动化测试?

    1. 需求变动不频繁

    2. 项目周期长

    3. 项目需要回归测试

测试工具有哪些?

    主流工具

            1. web自动化测试:Selenium、Robot Framework

            2. App自动化测试:Appium、MonkeyRunner、UIautomation

            3. PC客户端自动化测试:QTP、WinRunner

            4. 接口自动化测试:Jmeter、Postman、HttpUnit、RestClient、Python+requests

            5. 云测平台:Testin、Testbird --》app兼容性测试

            6. 性能测试:Jmeter、LoadRunner

初识selenium

特点:

    1. 开源软件:源代码开放,可以根据需要来增加工具的某些功能;

    2. 跨平台:Linux、Windows、MacOS

    3. 核心功能:就是可以在多个浏览器上进行自动化测试,Chrome,Firefox,IE,Safari,opear

    4. 多语言:java、python、C#、JavaScript、Ruby等

    5. 成熟稳定:目前已被百度、腾讯等公司广泛使用

    6. 功能强大:能够实现类似商业工具的大部分功能,因为开源,可实现定制化功能。

Selenium+WebDriver环境搭建

    1. WebDriver是一种用于web应用程序的自动化测试工具;

    2. 它提供了一套友好的API;

    3. WebDriver完全就是一套类库,不依赖与任何测试框架,除了必要的浏览器驱动;

webDriver原理

    1. WebDriver API(基于Java、Python、C#等语言),对于java语言来说,就是下载下来的selenium的Jar包,比如 selenium-java-3.8.1.zip包,代表Selenium3.8.1的版本

    2. 浏览器的驱动(browser driver),每个浏览器都有自己的驱动,均以exe文件形式存在比如谷歌的 chromedriver.exe、火狐的geckodriver.exe、IE的IEDriverServer.exe

    3. 浏览器,浏览器当然就是我们很熟悉的常用的各种浏览器(IE、Firefox、Chrome)。

    简单一点就是,有一把刀,它的作用就是削水果,也可以切菜等,这把刀相当于webDriver,你呢就是写代码的人,你想让它干嘛,切菜,削水果还是其他的,写一系列的代码,然后水果刀完成它要做的动作。

    道理讲完了,我们也该进入正题了,一些简单的操作,也是非常实用的。

简单的操作

1. 打开网页:get(url)

from selenium import webdriver

# 打开火狐浏览器
fox = webdriver.Chrome()
fox.get('https://baidu.com')

# 打开谷歌浏览器
gu = webdriver.Chrome()
gu.get('https://baidu.com')
    其他的浏览器方法类似,通过实例化驱动,指定浏览器,打开百度网址。至于驱动,在这里之说下载自己浏览器所对应的版本的驱动即可。如果你浏览器版本是2.1.1,驱动没有的只有2.3.3也没关系,是兼容的,但是你不能下载比你浏览器版本低的驱动。

2. 刷新:refresh()

from selenium import webdriver

fox = webdriver.Chrome()
fox.get('https://baidu.com')
fox.refresh()

3. 前进:forward()

from selenium import webdriver

fox = webdriver.Chrome()
fox.get('https://baidu.com')
fox.forward()

4. 后退:back()

from selenium import webdriver

fox = webdriver.Chrome()
fox.get('https://baidu.com')
fox.back()
    注意:3、4这两个操作,只能在你浏览了其他页面的情况下才能使用,这里还没有讲到元素定位,所以这里先做了解,后续熟悉元素定位后,可自行操作

5. 截屏:get_screenshot_as_file(保存路径)

from selenium import webdriver

fox = webdriver.Chrome()
fox.get('https://baidu.com')
fox.get_screenshot_as_file('F:\MES\baidu.png')

6. 退出:close(),quit()

from selenium import webdriver

fox = webdriver.Chrome()
fox.get('https://baidu.com')
fox.quit()
    注意,这里两者是有区别的,quit是关闭打开浏览器中的所有窗口,而close是关闭当前窗口,所以,用的时候可别搞混了,搞混不得。

    看看下面的例子,就明白了:
from selenium import webdriver

driver = webdriver.Firefox()
driver.get('https://baidu.com')
js = "window.open('https://www.jd.com/')"
driver.execute_script(js)
driver.close()
    这里我用js重新打开了一个窗口,然后用close的方法关闭一个窗口,此时,你会觉得关闭的是京东的窗口吧。其实不然,你错了哦。我没有切换窗口,所以关闭了还是第一次打开的窗口,也就是百度窗口。至于为什么要做窗口切换操作,这一点后续会有一章专门讲到。敬请期待吧。

本文转载自: https://blog.csdn.net/weixin_52040868/article/details/120151225
版权归原作者 清安无别事 所有, 如有侵权,请联系我们删除。

“开学了软测的同学也该跟上了--selenium介绍+简单操作”的评论:

还没有评论