IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 【软件测试】selenium自动化测试1 -> 正文阅读

[开发测试]【软件测试】selenium自动化测试1

1.什么是自动化测试

金字塔越往下效率越高,因为测试的往下是内核的东西

所以要把主要的精力放在单元测试的自动化?

单元测试:

对程序最小的单元模块进行测试

java的单元测试框架是Junit ? //自己学习

接口测试:

测试时间段:在项目前期接口开发而成就可以开始进行测试

用例维护量比较少(与UI测试比较)

适合的项目:接口变动较少的项目

UI自动化

对系统的界面元素进行操作,模拟用户的使用,完成功能的正常和异常测试。

测试时间段:项目后期,项目完成前后端的开发和联调后‘

用例维护量:比较大

适合的项目:适合界面元素变动小的项目
?

?2.UI自动化的好处

(1) 进行大量重复的测试,进行回归测试

(2) 减少人为出错的几率,创建一个可靠的测试过程

(3) 可以进行繁琐的测试。(比如测试过程一致,每次输入的数据不同,ddt)

(4) 进行手工测试很难执行的测试。(精准计时)

(5) 节省资源(人力资源)

(6) 脚本的复用性(脚本复用性越大,价值越高)
?

?3.自动化框架

简单介绍一些自动化相关的框架。

RoBotFramework 关键字驱动,底层实现语言Python。

Django 接口 Python

selenium unittests Python

4.为什么选择selenium?

免费,小巧,容易安装

支持多语言:java C# ?ruby ?JavaScript Python?

支持多平台:Chrome Firefox edge Opera Safari

支持多浏览器多平台的好处?

可以进行兼容性测试

支持分布式测试:selenium Grid
?

?5.webdriver的原理

(1)运行脚本,把浏览器绑定到一个端口,这个端口就是浏览器的remote server

(2)脚本通过commandexecutor,向浏览器发送HTTP请求,控制浏览器进行一系列操作

(3)浏览器驱动把指令解析成web service的命令,驱动浏览器进行一系列的操作

?6.selenium IDE

7.脚本的编写 (python环境自行安装)

(1)定位元素的方式(原则:必须全局唯一)(问:定位元素的方式有哪些)

?

?完整练习代码如下

from idlelib import browser
 
from selenium import webdriver
import time
 
from selenium.webdriver import ActionChains
from selenium.webdriver.common.keys import  Keys
 
driver = webdriver.Firefox()
driver.get("https://www.baidu.com/")
time.sleep(5)
#通过id来定位,全局唯一,可以唯一定位一个元素
#driver.find_element_by_id("kw").send_keys("迪丽热巴")
#time.sleep(3)
#driver.find_element_by_id("su").click()
#通过name来定位,name又能不全局唯一
#driver.find_element_by_name("wd").send_keys("赵盼儿")
#driver.find_element_by_id("su").click()
#tag_name定位
#driver.find_element_by_tag_name("input").send_keys("孙二娘")
#driver.find_element_by_tag_name("input").click()
#class name
#driver.find_element_by_class_name("s_ipt").send_keys("孙二娘")
#下面这个会失败,要用id定位
#driver.find_element_by_class_name("btn self-btn bg s_btn").click()
#link text
#driver.find_element_by_link_text("hao123").click()
#partial link text
#driver.find_element_by_partial_link_text("123").click()
#xpath  任何元素都可以定位
#driver.find_element_by_xpath("//*[@id='kw']").send_keys("赵盼儿")
#driver.find_element_by_xpath("//*[@id='su']").click()
#driver.find_element_by_css_selector("#kw").send_keys("双笙")
#driver.find_element_by_css_selector("#su").click()
 
#driver.maximize_window()
#获取文本信息,把内容赋给变量,获取元素上的内容
#text =driver.find_element_by_id("bottom_layer").text
#print(text)
#先搜索李易峰
#driver.find_element_by_css_selector("#kw").send_keys("李易峰")
#driver.find_element_by_css_selector("#su").submit()
 
#固定等待
 
#time.sleep(10)
#智能等待
#driver.implicitly_wait(10)
#driver.find_element_by_link_text("百度百科").click()
#driver.find_element_by_id("kw").clear()
 
#信息打印
#title=driver.title
#print(title)
#url=driver.current_url
#print(url)
#driver.quit()
 
 
#对浏览器操作,浏览器的最大化
#driver.find_element_by_id("kw").send_keys("王牌部队")
#driver.find_element_by_id("su").click()
#time.sleep(4)
#driver.set_window_size(400,1000)
#time.sleep(3)
 
#driver.maximize_window()
#time.sleep(8)
##浏览器的前讲和后退
#browser.forword()
#time.sleep(8)
#browser.back()
#ime.sleep(8)
 
 
#浏览器的滚动条的控制
#js0 ="var q =document.documentElement.scrollTop=10000"
#driver.execute_script(js0)
#time.sleep(3)
#js1 ="var q =document.documentElement.scrollTop=0"
#driver.execute_script(js1)
#time.sleep(8)
#driver.quit()
 
 
#driver.maximize_window()
#driver.find_element_by_id("kw").send_keys("元旦快乐")
#driver.find_element_by_id("su").click()
#b=driver.find_element_by_id("su")
#time.sleep(5)
#然后再用剪切的方式clear掉文本框中的输入内容
#driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')
#time.sleep(3)
#driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x')
#time.sleep(3)
 
#双击
driver.maximize_window()
driver.find_element_by_id("kw").send_keys("元旦快乐")
driver.find_element_by_id("su").click()
b=driver.find_element_by_id("su")
#双击
#ActionChains(driver).double_click(b).perform
#右击
ActionChains(driver).context_click(b).perform()
time.sleep(5)

上面的代码都是根据一个元素进行查找和操作的,下一篇会讲讲根据一组元素进行操作和查找。

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 11:12:24  更:2022-08-06 11:12:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 7:51:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码