Web自动化测试基础

1、自动化测试的概念

自动化测试概念

2、自动化测试优点

自动化测试优点自动化测试的好处

3、自动化测试的分类

自动化测试分类

4、xpath路径表达式

xpath路径表达式@的使用方法:
(1)路径[@属性名]
(2)路径[@属性名=‘属性值’]

5、查找某个特定的节点或者包含某个指定值的节点

在这里插入图片描述

在这里插入图片描述
在xpath中列表结果以1开头

6、通配符

通配符* ;@;(是星号)
//
:匹配所有节点
/*:匹配绝对路径最外层
/html/node():匹配html的子标签

7、选取若干路径

选取若干路径在这里插入图片描述
(1)//*[starts-with(@属性名,‘属性值’)] (值的拼写不全也能找出来,但值的开头要写上;contains中则不用,只要是属性值中的内容就可以)
(2)最后一个要两个属性值完全匹配

8、css选择器

css选择器在这里插入图片描述(1)element>element:选中的其实是父子关系
(2)element+element:选中的是兄弟关系
(3)[[attribute~=value] 或者[attribute|=value]:要求value是一个完整的单词(有的class里面有两个属性,value即为其中一个)
(4)写属性值的时候给属性值加上引号,属性值有多个的时候写其中一个时同样。
在这里插入图片描述在这里插入图片描述

9、框架的定义

在这里插入图片描述

10、seleniunm IDE(仅支持火狐)

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

11、selenium组件

在这里插入图片描述

12、selenium页面操作

12.1.1 url的格式:
在这里插入图片描述
中括号格式的可以没有。比如:[:port#]
12.1.2 页面请求操作
在这里插入图片描述
12.2 获取断言信息
在这里插入图片描述
get_screenshot_as_png()保存的是二进制文件;get_screenshot_as_file(‘file’)保存的是图片
12.3 元素定位
在这里插入图片描述
12.3.1 元素定位方法分类
在这里插入图片描述
(1)使用标签名定位时,如果该标签不是唯一,则返回的是一组标签中的第一个标签
(2)使用xpath定位时,xpath中有双引号时,外面用单引号;xpath中有单引号时,外面用双引号。eg:el = driver.find_element_by_xpath(’//*[@id=“screening”]/div[1]/h2/span[2]/a’)
12.4 定位一组元素
driver.find_elements_by_xxx(value)
该方法返回一个元素对象列表
12.5 元素的操作
在这里插入图片描述
在这里插入图片描述
12.6、多标签之间的切换
有的时候点击一个链接,新页面并非由当前页面跳转过去,而是新开一个页面打开,这种情况下,计算机需要识别多标签或窗口的情况。
在这里插入图片描述
建议使用driver.switch_to.window(handles[n])。(版本问题)
12.7 多表单之间的切换
1)什么是多表单?
实际上就是使用iframe/frame,引用了其他页面的链接,真正的页面数据并没有出现在当前源码中,但是在浏览器中我们看到,简单理解可以使页面中开了一个窗口显示另一个页面
在这里插入图片描述
3)多表单切换
driver.switch_to.default_content()
  跳回最外层的页面。

driver.switch_to.parent_frame()
  跳回上层的页面。
12.8 鼠标和键盘操作
手动测试时键盘的操作在selenium页有实现,关于鼠标的操作由ActionChains()类来提供,关于键盘的操作由Key()类来提供

(1)鼠标操作

导入动作链类,动作链可以储存鼠标的动作,并一起执行
from selenium.webdriver import ActionChains
ActionChains(driver)

执行ActionChains中储存的所有动作
perform()

1) 鼠标右击
el = driver.find_element_by_xxx(value)
context_click(el)
对el执行右击

2)双击操作
el = driver.find_element_by_xxx(value)
ActionChains(driver).double_click(el).perform()

3)鼠标悬停
el = driver.find_element_by_xxx(value)
ActionChains(driver).move_to_element(el).perform()

(2)键盘操作
键盘操作使用的是Keys类,一般配合send_keys使用

导入
from selenium.webdriver.common.key import Key

常用键盘操作
1)send_keys(Keys.BACK_SPACE) 删除键(BackSpace)

2)send_keys(Keys.SPACE) 空格键(Space)

3)send_keys(Keys.TAB) 制表键(Tab)

4)send_keys(Keys.ESCAPE) 回退键(Esc)

5)send_keys(Keys.ENTER) 回车键(Enter)

6)send_keys(Keys.CONTROL,‘a’) 全选(Ctrl+A)

7)send_keys(Keys.CONTROL,‘c’) 复制(Ctrl+C)

8)send_keys(Keys.CONTROL,‘x’) 剪切(Ctrl+X)

9)send_keys(Keys.CONTROL,‘v’) 粘贴(Ctrl+V)

10)send_keys(Keys.F1) 键盘 F1

11)send_keys(Keys.F12) 键盘 F12
12.9弹出框操作

  1. 进入到弹出框中
    driver.switch_to.alert()

  2. 接收警告(点击弹出框中的‘确定’)
    accept()

  3. 解散警告(点击弹出框中的‘X’)
    dismiss()

  4. 发送文本到警告框
    send_keys(data)
    使用:driver.switch_to.alert.accept()

12.10 下拉框操作

selenium关于下拉框的操作都交由Select类进行处理,一般获取到下拉框元素之后使用该类构建对象,调用对象的响应方法就能操作元素

  1. 导入Select类
    from selenium.webdriver.support.select import Select

  2. 将定位到的下拉框元素传入Select类中
    selobj = Select(element) 下拉框元素已经定位到

  3. 调用响应方法选择下拉框中的选项

select_by_index() 通过索引选择,index 索引从 0 开始

select_by_value() 通过值选择(option标签的一个属性值)

select_by_visible_text() 通过文本选择(下拉框的值)

eg:<option value="10" selected="">每页显示10条</option>

了解:

all_selected_options 查看所有已选

first_selected_option 查看第一个已选

is_multiple 查看是否是多选(布尔值)

options 查看选项元素列表

取消选择
deselect_by_index()
deselect_by_value()
deselect_by_visible_text()
12.11 selenium执行js

(1)方法
1) js = "window.scrollTo(x,y) " x为水平拖动距离,y为垂直拖动举例
2)js= “var q=document.documentElement.scrollTop=n” n为从顶部往下移动滚动距离

(2)driver.execute_script(js) 执行js代码

12.12 显式等待与隐式等待

(1)显式等待
显式等待是根据条件进行等待,等待条件出现

实现:
from selenium.webdriver.common.by import By
导入WebDriverWait等待类
from selenium.webdriver.support.ui import WebDriverWait
导入预期条件设置类
from selenium.webdriver.support import expected_conditions as EC

如果没有预期条件设置类可使用
WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
如果没有预期条件设置类可使用
WebDriverWait(driver, timeout, poll_frequency=0.5).until(EC.presence_of_element_located())
eg:WebDriverWait(driver,10,0.5).until(EC.presence_of_element_located((By.ID,'lg')))

WebDriverWait类是由WebDirver 提供的等待方法。在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常。
(2)隐式等待
隐式等待是根据是件进行等待,等待特定时间

driver.implicitly_wait(n)
n的单位为秒,n为最大值,在这个最大值内只要元素定位到就结束等待,超过最大值还没有定位到会报错

优先 隐式等待; 次之 显式等待; 最次 固定等待

12.13 cookies操作

1) 什么是cookies?
Cookie,有时也用其复数形式 Cookies,指某些网站为了辨别用户身份、进行会话保持而储存在用户本地终端上的数据(通常经过加密)

2)为什么要使用cookies?
1.因为http是无状态协议,他不对之前的的访问状态做管理,也就是说无法根据之前的登录状态进行本次访问的处理。
2.没有状态管理就不能保持登录状态,这样就会很麻烦。

3)selenium对cookies的操作

get_cookies() 获取所有cookies

get_cookie(key) 获取key对应的值

add_cookie(cookie_dict) 设置cookies

delete_cookie(name) 删除指定名称的cookie

delete_all_cookies() 删除所有cookie

13、unittest模块

Unittest单元测试框架是专门用来进行测试的框架

13.2 主要概念:
test fixture: 代表了用例执行前的准备工作和用例执行之后的清理工作。
(setUp()用于初始化一些参数,在测试用例执行前自动被调用;tearDown()用于清理,在测试用例执行后被调用)

test case: 测试用例,是测试的最小单位,一般检查一组输入的响应(输出)是否符合预期。unittest模块提供了TestCase类来帮助我们创建测试用例;(在TestCase类中,只把以test开头的方法当做测试用例,然后执行)

test suite: 经常被翻译成”测试套件”,也有人称为”测试套”,是测试用例或测试套件的集合,一般用来把需要一起执行的用例组合到一起;

test runner: 用来执行测试用例并输出测试结果的组件。可以是图形界面或命令行界面;

13.3 unittest基本用法

1.通过继承unittest.TestCase进行编写,继承unittest.TestCase的类会被框架识别为测试用例。

2.setUp和TearDown是用于事前和事后做相关处理动作的,就是前面说的Test Fixture,会在每个测试用例运行前后被框架自动调用

3.所有以test开头的方法会被框架自动识别为测试用例,并自动调用执行,不是以test开头的不会被调用

4.unittest.main()是最简单的测试执行方式

5.调用unittest.main()方法后,继承自unittest.TestCase类的类会被自动识别为测试用例并且被调用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值