精华内容
下载资源
问答
  • selenium自动化测试框架,里面包含了实例,页面、元素分离,testng.xml执行测试用例
  • Selenium自动化测试框架

    千次阅读 多人点赞 2020-09-27 22:34:10
    什么是Selenium框架框架(framework)是一个框子——指其约束性,也是一个架子——指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题。 框架是整个或部分系统的可重用设计,表现为一组抽象...

    Selenium概述

    什么是Selenium框架?

    • 框架(framework)是一个框子——指其约束性,也是一个架子——指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题。

    • 框架是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架。前者是从应用方面而后者是从目的方面给出的定义。

    • 框架,其实就是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。

    为什么使用框架?

    • 1)自己从头实现太复杂

    • 2)使用框架能够更专注于业务逻辑,加快开发速度

    • 3)框架的使用能够处理更多细节问题

    • 4)使用人数多,稳定性,扩展性好

    Selenium工作原理

    在这里插入图片描述

    selenium环境搭建(详情查阅讲义)

    1.材料:

    1)python3.7

    2)Firefox35(大于43)

    3)selenium2框架
    稳定版 2.48.0 (pip install selenium=2.48.0)

    4)浏览器驱动
    chrome
    ie


    Selenium IDE

    什么是Selenium-IDE?

    Selenium的IDE(集成开发环境)是一个易于使用的Firefox插件,用于开发Selenium测试案例。它提供了一个图形用户界面,用于记录使用Firefox浏览器,用来学习和使用Selenium用户操作,但它只能用于只用Firefox浏览器不支持其它浏览器。

    1.环境安装

    官网:http://www.firefox.com.cn/

    2.IDE功能简介

    1. 文件:创建、打开和保存测试案例和测试案例集。编辑:复制、粘贴、删除、撤销和选择测试案例中的所有命令。Options : 用于设置seleniunm IDE。
    2. 用来填写被测网站的地址。
    3. 速度控制:控制案例的运行速度。
    4. 运行所有:运行一个测试案例集中的所有案例。
    5. 运行:运行当前选定的测试案例。
    6. 暂停/恢复:暂停和恢复测试案例执行。
    7. 单步:可以运行一个案例中的一行命令。
    8. 录制:点击之后,开始记录你对浏览器的操作。
    9. 案例集列表。
    10. 测试脚本;table标签:用表格形式展现命令及参数。source标签:用原始方式展现,默认是HTML语言格式,也可以用其他语言展示。
    11. 查看脚本运行通过/失败的个数。
    12. 当选中前命令对应参数。
    13. 日志/参考/UI元素/Rollup

    Selenium API基础

    1.浏览器驱动对象

    1)库的导入
    	from selenium import  webdriver
    

    在这里插入图片描述

    2)创建浏览器对象
    	
    	driver = webdriver.xxx()
    	
    	使用dir(driver)查看方法
    

    在这里插入图片描述

    3)浏览器尺寸相关操作
    	
    	maximize_window()		最大化
    

    在这里插入图片描述

    在这里插入图片描述

    	get_window_size()		获取浏览器尺寸
    

    在这里插入图片描述
    在这里插入图片描述

    	set_window_size()		设置浏览器尺寸
    

    在这里插入图片描述
    在这里插入图片描述

    3)浏览器位置相关操作

    	get_window_position()		获取浏览器位置
    

    在这里插入图片描述
    在这里插入图片描述

    	set_window_position(x,y)		设置浏览器位置
    

    在这里插入图片描述

    在这里插入图片描述

    	注:显示器以左上角为(0,0),所有的位置操作都是相对于显示器左上角展开的位移操作,单位是像素。
    
    4)浏览器的关闭操作
    	
    	close()			关闭当前标签/窗口
    
    	quit()			关闭所有标签/窗口
    
    案例:
    	打开浏览器,调整大小,调整位置,并关闭
    

    4)页面请求操作

    	driver.get(url)				请求某个url对应的响应
    
    	refresh()				刷新页面操作
    
    	back()				回退到之前的页面
    
    	forward()				前进到之后的页面
    

    案例:
    1.
    1)访问 http://www.baidu.com
    2)访问 https://zhuanlan.zhihu.com/
    3)回退

    3.获取断言信息

    0)什么是断言?
    	断言是编程术语,表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真,可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言。
    
    
    1)获取断言信息的操作
    
    	current_url				获取当前访问页面url
    
    	title						获取当前浏览器标题
    
    	get_screenshot_as_png()	保存图片
    
    	get_screenshot_as_file(file)	直接保存
    	
    	page_source				网页源码
    

    在这里插入图片描述

    4.元素的定位

    1)元素定位方法的分类(调用方式):
    	
    	1.直接调用型(推荐方式)
    		driver.find_element_by_xxx(value)
    	
    	2.使用By类型(需要导入By)
    		from selenium.webdriver.common.by import By
    		driver.find_element(By.xxx,value)
    
    
    案例:
    		用以上两种方式是实现百度中搜索 传智播客 
    
    
    
    2)元素定位方法的分类(按定位方式):
    

    在这里插入图片描述

    3)八种定位方式的示例:

    	1. driver.find_element_by_xpath(value)
    		
    
    	2. driver.find_element_by_css_selector(value)
    
    
    	3. driver.find_element_by_id(value)
    			
    
    	4. driver.find_element_by_name(value)
    
    
    	5. driver.find_element_by_class_name(value)
    		
    
    	6. driver.find_element_by_tag_name(value)
    		案例:	必应搜索
    
    	7. driver.find_element_by_link_text(value)
    		
    
    	8. driver.find_element_by_partial_link_text(value)
    

    5.元素的操作

    对元素的相关操作,一般要先获取到元素,再调用相关方法
    element = driver.find_element_by_xxx(value)
    
    1)点击和输入
    
    	点击操作
    		element.click()
    	
    	清空/输入操作(只能操作可以输入文本的元素)
    		element.clear()				清空输入框
    		element.send_keys(data)		输入数据
    
    2)提交操作
    	element.submit()		
    
    	案例:
    		1.打开百度搜索		2.搜索关键字 selenium
    		3.清空			4.搜索python
    

    Selenium API高级

    1.多标签之间的切换
    场景:有的时候点击一个链接,新页面并非由当前页面跳转过去,而是新开一个页面打开,这种情况下,计算机需要识别多标签或窗口的情况。

    1)获取所有窗口的句柄
    
    	handles = driver.window_handlers()
    	调用该方法会得到一个列表,在selenium运行过程中的每一个窗口都有一个对应的值存放在里面。
    
    2)通过窗口的句柄进入的窗口
    
    	driver.switch_to_window(handles[n])
    	
    	driver.switch_to.window(handles[n])
    
    	通过窗口句柄激活进入某一窗口
    
    案例:
    	58同城租房信息
    

    2.多表单切换
    在网页中,表单嵌套是很常见的情况,尤其是在登录的场景

    1)什么是多表单?
    	实际上就是使用iframe/frame,引用了其他页面的链接,真正的页面数据并没有出现在当前源码中,但是在浏览器中我们看到,简单理解可以使页面中开了一个窗口显示另一个页面
    
    
    2)处理方法
    	
    	直接使用id值切换进表单
    		driver.switch_to.frame(value)/driver.switch_to_frame(value)
    
    	定位到表单元素,再切换进入
    		el = driver.find_element_by_xxx(value)
    		driver.switch_to.frame(el)	/driver.switch_to_frame(el)
    
    案例:
    	126网站登录
    
    展开全文
  • Selenium自动化测试框架设计指南,学习自动化测试框架的教程,详细讲解,很不错的教程。
  • python pytest selenium 自动化测试框架搭建

    千次阅读 多人点赞 2020-07-01 15:39:46
    python pytest selenium 自动化测试框架搭建 公司一直有这个自动化测试需求,前期利用c++或者python进行了一些自动化脚本的编写。这几天没有版本更迭,基于前期的工作,把自动化测试整理了一部分功能模块。现在的...

    python pytest selenium 自动化测试框架搭建

         公司一直有这个自动化测试需求,前期利用c++或者python进行了一些自动化脚本的编写。这几天没有版本更迭,基于前期的工作,把自动化测试整理了一部分功能模块。现在的状态基本达到预期:即搭建了一个AutoTest框架,基于此实现了login、设备管理两个模块的自动化测试,并基于实际,进行了合理的wait优化,后期的工作就是继续完善其它模块的内容。截止2020年7月1日11:41:37,该架构,可实现模块自动化测试、html报告输出、log日志输出、邮件发送。部分设计、方法取于网络。

         写一篇详细一点的,完整搭建web端自动化测试的过程出来。其中包含自动化从分析到落地的全过程。

    以下为主要的几个时间节点。

    1.自动化的可行性分析。√2020年2月28日14:12:28已完成。
    2.自动化可测试内容明确。√2020年2月28日14:12:43已完成
    3.自动化测试用例设计注意事项。√2020年2月28日15:12:47 已完成。
    4.AT测试工具、语言、结构确定。√2020年7月1日09:09:16 已完成。python做基础。pytest做框架。selenium为方法
    5.开始编写testcase。ing 已完成login以及manage-vehi模块已完成。包含html报告生成、log生成。
    6.需要解决两个问题。sleep过多。导致执行效率慢 √2020年7月1日11:35:01 已完成,由于项目内web无特殊控件加载需要特别长时间,暂时只使用了隐式wait

    1、自动化可行性分析

       此部分主要进行公司内部各项目的自动化可行性分析。这部分我主要大体上考量了作用域、优劣、适用项目。

    展开全文
  • 在本篇文章里小编给大家分享了关于python3+selenium自动化测试框架的相关知识点内容,有兴趣的朋友们学习下。
  • Selenium自动化测试框架 最近有打算用python重写一下,感兴趣的朋友可以叉首先需要安装python,之后安装selenium lib pip install -U selenium 使用Selenium 3.x + Testng + Jenkins + Maven 使用页面对象模型 ...
  • Selenium自动化测试框架视频-Testng使用介绍(自动化测试)
  • 打造属于自己Selenium自动化测试框架视频教程,课程内容有一线高级工程师为同学们全程讲解,课程内容从测试环境的搭建逐渐深入到后续的持续集成,以及项目过程中Selenium的高级技术实战课程,都是非常值得同学们参考...
  • 基于Selenium自动化测试框架的数据驱动技术研究及应用.pdf
  • Selenium自动化测试框架入门整理

    千次阅读 2018-12-18 10:47:48
    本文主要针对Selenium自动化测试框架入门整理,只涉及总体功能及框架要点介绍说明,以及使用前提技术基础要求整理说明。作为开发人员、测试人员入门参考。 本文参考:Selenium框架最新技术规范及相关资料   简介...

    ​​

    关注嘉为科技,获取运维新知

    本文主要针对Selenium自动化测试框架入门整理,只涉及总体功能及框架要点介绍说明,以及使用前提技术基础要求整理说明。作为开发人员、测试人员入门参考。

    本文参考:Selenium框架最新技术规范及相关资料

     

    简介

    Selenium也是一款同样使用Apache License 2.0协议发布的开源框架。Selenium也是一套完整的Web应用程序测试系统工具,它包含了:

    • Selenium的核心Selenium Core基于JsUnit,完全由JavaScript编写,因此可运行于任何支持JavaScript的浏览器上;
    • 测试的录制(Selenium IDE);
    • 编写及运行(Selenium Remote Control)(3.X移除了);
    • 测试的并行处理(Selenium Grid);
    • Selenium2.X包含该了WebDriver和SeleniumRC(兼容以前版本)。Selenium3.X只包含WebDriver,移除了SeleniumRC。

     

    Selenium整体产品结构如下:(3.x以后版本去除了SeleniumRC)

     

    Selenium IDE: 

    是一个用于构建脚本的初级工具,其实是FireFox的一个插件,拥有一个易于使用的界面。它拥有记录功能,能够记录用户执行的操作,并可以导出为可重复使用的脚本。如果没有编程经验,可以通过Selenium IDE来快速熟悉Selenium的命令。该工具实际使用不多。Selenium-core 是使用HTML的方式来编写测试脚本,你也可以使用 Selenium-IDE来录制脚本,但是目前Selenium-IDE只有 FireFox 版本。

     

    Selenium-RC(Selenium3.X 移除): 

    selenium-remote control 缩写,是使用具体的语言来编写测试类。Selenium RC支持多种不同的语言编写自动化测试脚本,通过SeleniumRC的服务器作为代理服务器去访问应用,从而达到测试的目的。主要包含以下两大部分:

    • ClientLibraries库主要用于编写测试脚本,用来控制SeleniumServer的库。
    • SeleniumServer负责控制浏览器行为。SeleniumServer包含三部分:Launcher,Http Proxy和Core。其中,Selenium Core是被Selenium Server嵌入到浏览器页面中的,其实SeleniumCore就是一堆JavaScript函数的集合,即通过这些JavaScript函数,我们才可以实现用程序对浏览器进行操作。Launcher用于启动浏览器,把Selenium Core加载到浏览器页面当中,并把浏览器的代理设置为SeleniumServer的HttpProxy。

     

    WebDriver: 

    Selenium2.x提出了WebDriver的概念之后,它提供了完全另外的一种方式与浏览器交互。那就是利用浏览器原生的API,封装成一套更加面向对象的SeleniumWebDriver API,直接操作浏览器页面里的元素,甚至操作浏览器本身(截屏,窗口大小,启动,关闭,安装插件,配置证书之类的)。由于使用的是浏览器原生的API,速度大大提高,而且调用的稳定性交给了浏览器厂商本身,显然是更加科学。然而带来的一些副作用就是,不同的浏览器厂商,对Web元素的操作和呈现多少会有一些差异,这就直接导致了Selenium WebDriver要分浏览器厂商不同,而提供不同的实现。例如Firefox就有专门的FirefoxDriver,Chrome就有专门的ChromeDriver等等。(甚至包括了AndroidDriver和iOS WebDriver)

     

    Selenium Grid: 

    实现测试的并行处理。

     

    基于Selenium进行测试的方式及流程

    Selenium RC方式(3.X以后版本移除该方式):

     

    • 测试用例通过Http请求建立与 Selenium-RC server 的连接;
    • Selenium RC Server 驱动一个浏览器,把Selenium Core加载入浏览器页面当中,并把浏览器的代理设置为Selenium Server的Http Proxy;
    • 执行用例向Selenium Server发送Http请求,Selenium Server对请求进行解析,然后通过Http Proxy发送JS命令通知Selenium Core执行操作浏览器的动作并注入 JS 代码;
    • Selenium Core执行接受到的指令并操作;
    • 当浏览器收到新的请求时,发送http请求;
    • Selenium Server接收到浏览器发送的Http请求后,自己重组Http请求,获取对应的Web页面;
    • Selenium Server中的Http Proxy把接受到的页面返回给浏览器。

     

    WebDriver(目前主流方式):

    Selenium 2.X启动SeleniumRC至今为止还保留着,应该是考虑到向前兼容。Selenium 3.X完成移除了SeleniumRC。

     

    Selenium2.X增加了WebDriver,保持RC向前兼容。WebDriver项目是由Simon Stewart创建的,它是一个非常便捷的自动化测试工具。WebDriver对不同浏览器的处理方式和RC有着明显的不同,RC是不管什么浏览器都是JavaScript来处理,而WebDriver是选择浏览器最容易接受的语言来处理。比如,在IE中,C++最合适,在Firefox中, JavaScript最合适等等。通过灵活选择最合适的语言来处理多浏览器,我们可以很好的回避某些浏览器对JavaScript的安全限制。而且WebDriver不仅仅具有这些能力,它还能够调用操作系统API,尤其是当用户需要模拟鼠标和键盘进行真实的页面操作的时候,这项能力的作用尤为明显。

    现在支持的WebDriver:AndroidDriver,ChromeDriver, FirefoxDriver,  HtmlUnitDriver, EventFiringWebDriver,InternetExplorerDriver,  IPhoneDriver,  IPhoneSimulatorDriver,  RemoteWebDriver。

     

    Selenium Grid(目前主流的方式):

    传统的无Grid的模式,只能在一台机器上进行测试。Selenium可以在上面两种方式下进行执行,第一种是每台机器都是一致的,第二种是可以指定特定的浏览器或者特定的操作系统执行。

     

    自动化测试脚本编制要求

    • 前提熟悉:HTML /XML/...
    • 前提熟悉:XPath(XML路径语言 http://www.runoob.com/xpath/xpath-tutorial.html)
    • 开发语言:Java/Python/C#/PHP/…,最起码熟悉一种开发语言。
    • FIT模式:Selenium脚本(JS):命令用法 。
    • Driver模式:库(不同语言有不同客户端)的熟练使用:方法、函数等。
    • 可采用Selenium WebDriver + TestNG框架(TestNG 是一个测试 Java 应用程序的新框架)模式。
    • 建立测试用例脚本的编制规范(针对WebDriver模式)
    • 可利用Jenkins集成Selenium Grid + WebDriver,及 Selenium Report插件。

     

    测试结果报告展现方式

    要结合其他框架的测试报告模板,例如TestNG的测试结果报告、ReportNg等;

    Jenkins集成selenium,可利用 selenium report 插件输出;

    可结合自主开发测试结果展现处理平台,关联到任务平台当中。

     

    集成成本及方式

    需进行Selenium脚本的学习以及相关技术的学习;

    基于Selenium的WebDriver模式,测试用例的编制要求具备数据一种开发语言(主流模式);

    如结合TestNG,则需熟悉Java。

     

    我们可采用Jenkins + Selenium + TestNG  + Selenium report (ReportNG) 集成的模式进行Web应用的自动化测试。在DevOps产品研发中,可融合封装使用Selenium进行WEB应用自动化测试。

    如需深入了解,请在网络上参考官方的文档及相关资料等。

     


    Selenium+蓝鲸,可以实现应用功能自动化拨测哦!点击文章查看是如何实现的?《分享 | 基于蓝鲸平台实现应用功能自动化拨测

    展开全文
  • python selenium 自动化测试框架搭建 PC端 需要安装python环境 下载python相关selenium包 去官网下载chrome webdriver 根据当前chrome版本选择下载http://chromedriver.chromium.org/downloads 配置环境...

                                 python selenium 自动化测试框架搭建

     

    PC端  

      需要安装python环境

      下载python相关selenium包

      去官网下载chrome webdriver 根据当前chrome版本选择下载 http://chromedriver.chromium.org/downloads

      配置环境变量 chromdriver   例如 D:/develop/webdriver

     相关代码如下

    # -*- coding: utf-8 -*-
    import random
    from time import sleep
    from selenium import webdriver
    from selenium.webdriver import ActionChains
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support import expected_conditions as EC
    from selenium.webdriver.support.ui import WebDriverWait
    from elecall import Call
    driver = webdriver.Chrome()
    driver.implicitly_wait(10)
    driver.maximize_window()
    url = "https://www.1688.com/"
    driver.get(url)
    # sleep(2)
    # 设置明确等待
    WebDriverWait(driver, 10, 0.5).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="check-dialog"]')))
    # js = 'document.getElementById("check-dialog").style.display="block";'
    # driver.execute_script(js)
    # WebDriverWait(driver, 10, 0.5).until(EC.visibility_of_element_located((By.XPATH, '//*[@id="fui_widget_2"]/input')))
    # wait.until(Call(driver))
    inp = driver.find_element_by_class_name('result')
    action = ActionChains(driver)
    action.move_to_element(inp).perform()
    sleep(1)
    ul = driver.find_element_by_class_name('fui-combobox-panel').find_element_by_tag_name('div').find_element_by_tag_name(
        'ul')
    lis = ul.find_elements_by_xpath(".//li")
    print(len(lis))
    li = lis[1]
    action.click(li).perform()
    sleep(3)
    ok = driver.find_element_by_class_name('identity-confirm')
    action.click(ok).perform()
    sleep(1)
    # driver.find_element_by_id("kw").send_keys('alert("小鲜肉")')
    # sleep(3)
    # driver.find_element_by_id("su").click()
    # sleep(3)
    driver.quit()
    

     

    app端环境配置(安卓自动化环境配置)

    安装Android SDK(安卓软件开发包),测试Android手机必然是要安装Android SDK。

    下载地址:http://tools.android-studio.org/index.php/sdk/ (直接下载zip版本,解压至任意目录即可)

    也可以用链接:https://pan.baidu.com/s/14IT584E249LmmkiPycSzmw 密码:ek6s

    添加环境变量 ANDROID_HOME的变量。

    安装node.js,由于Appium的server端是node.js编写的所以需要先安装node.js。安装node.js后,可以直接通过npm安装Appium。到官网下载node.js:https://nodejs.org/en/download/

     但是node.js官网版本太高,会出现报错
    所以安装node.js6.8.0 版本即可,下载链接https://nodejs.org/zh-cn/download/releases/

    appium 建议安装最新版本操作方便

       python 通过 appium 发送指令到appium adb命令控制手机

     

    未完,后期更新

     

    常用连接参数

    {
      "platformName": "Android",
      "platformVersion": "5.1.1",
      "deviceName": "127.0.0.1:5555",
      "appPackage": "com.ss.android.ugc.aweme",
      "appActivity": ".MainActivity",
      "noReset": true
    }

     

     

     

     

     

     

    展开全文
  • 基于Selenium自动化测试框架的数据驱动技术研究及应用.rar
  • Python + selenium 自动化测试框架搭建(一)
  • 框架采用python3+selenium3+PO+yaml+ddt+unittest等技术编写成基础测试框架,能适应日常测试工作需要。1、使用PageObject模式将页面定位和业务操作分开,分离测试对象(元素对象)和测试脚本(用例脚本),一个页面...
  • python3+selenium 自动化测试框架初探

    千次阅读 2019-03-17 10:06:29
    python3+selenium 自动化测试框架初探 首先,对于软件测试行业的人员技术发展。我的个人看法是:不能一味的追求自动化测试、性能测试、压力测试的技术,而忽略了功能测试 不过对于大公司肯定是各司其职效率上肯定会...
  • Selenium自动化测试框架—简单了解

    千次阅读 2020-09-27 23:29:11
    Selenium自动化测试框架—简单了解 Selenium自动化测试框架 什么是框架? 框架(framework)是一个框子——指其约束性,也是一个架子——指其支撑性。是一个基本概念上的结构,用于去解决或者处理复杂的问题。 框架...
  • 主要是基于TestNG和Selenium自动化测试框架实现对日期控件的封装,完成自动化测试。
  • python selenium自动化测试框架搭建的方法步骤 更新时间:2020年06月14日 22:28:01 转载作者:YinJia 这篇文章主要介绍了python selenium自动化测试框架搭建的方法步骤,文中通过示例代码介绍的非常详细,对大家...
  • 自动化测试领域专业培训资料,理论代码实例详细拆解,从菜鸟到专家必备
  • 本文来自csdn,本文主要简单介绍了一个完整的Selenium自动化框架的思考过程和框架的演进过程,希望对您的学习有所帮助。由于公司的开发团队偏向于使用Java技术,而且公司倡导学习开源技术,所以我选择用Java语言来...
  • selenium自动化测试框架搭建思路,介绍用例编写方式、代码设计思路、测试报告
  • Selenium自动化测试框架第1讲_Java开发环境搭建、入门
  • Web自动化测试框架详细介绍,包括selenium等待方式,元素定位方法详细介绍。适合初学UI自动化测试和想对selenium有更多了解的小伙伴~
  • Selenium自动化测试框架第1讲_Java开发环境搭建、入门3
  • Selenium自动化测试框架第1讲_Java开发环境搭建、入门2

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,769
精华内容 9,107
关键字:

selenium自动化测试框架