【软件测试】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)

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值