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 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> web自动化测试方案分析 & web常见面试题总结 -> 正文阅读

[开发测试]web自动化测试方案分析 & web常见面试题总结

? ? ? ? 在进行web自动化测试前,我们需要注意哪些方面呢?我们简单的操作流程是怎么样的呢?今天就来简单的介绍,并记录下吧,以方便复习使用。


一、web自动化测试实战

1、web自动化测试流程

(1)需求分析(熟系业务,最好已经做过多次手工测试,对项目了解)
(2)自动化测试方案 ==> 
?    -目的 (提高效率?减少人工成本?)
     -主要应用场景,(在那方面进行自动化测试,主要注意点)
     -主要功能使用模块 ,(评估在什么功能、模块适合做自动化测试?)
     -技术选型和对比(Python/java、selenium/playwright、pytest/unittest...
                      po模式、数据驱动、关键字驱动...并做对比,列举优势
     -方案特点和优势 (简单列举测试时间的优化?)
     -具体运行手册(环境搭建并介绍)
     -产出和效率(用例、数据、时间节点)
     -运行策略 (Jenkins、git?)
     -维护空间,优化 (自动化测试平台、工具?)
(3)用例编写和自动化用例提取 (手工测试流程?)
(4)用例评审
(5)运行用例(代码编写,封装、PO模式、Basepage)
(6)测试报告  (allure运行,报告优化)

2、自动化测试使用场景

(1)需求稳定,不会频繁变更
(2)研发和测试周期长,需频繁执行回归测试
(3)须在多平台上重复运行相同的场景(接口、兼容性测试)
(4)某些测试项目通过手工测试无法实现,或手工成本太高
(5)被测软件的开发较为规范,能保证系统的可测试性

3、自动化测试工程效果

(1)实现代码
(2)易于维护
(3)节约劳力
web自动化测试,其操作就是:同手工测试提取自动化测试
(1)功能 ==>熟悉、了解
(2)web自动化做主流程测试
(3)手工的用例(xmind、excel)==>转化为自动化用例(test_函数)

二、常见web自动化测试面试题

1、八大元素定位的方式

driver.find_element_by_id()
driver.find_element_by_name()
driver.find_element_by_class_name()
driver.find_element_by_xpath()
driver.find_element_by_css_selector()
driver.find_element_by_link_text()
driver.find_element_by_partial_link_text()
driver.find_element_by_tag_name()

优先顺序:

id ==> name ==> class_name ==> xpath ==> css ==> link ==> partial_link ==> tag_name

栗子:

elem = driver.find_element_by_id('kw')
print(elem)  # 表一元素对象

2、find_element 和 find_elements的区别

1、find_element   得到的是一个webelement的对象,只会返回查找到的第一个对象;
   find_elements  得到的是一个列表(返回),返回查找到的所有,并保存到一列表中

2、如找不到,
   print(driver.find_element_by_id('kw')) find_element 会报错,NoSuch ElementException
   print(driver.find_elements_by_id('kw'))  find_elements  不会报错,但是会返回空列表
   
3、当我们想验证通过某个表达式,能否找到元素,判断页面是否存在元素
  # find_element  不存在会报错 ,可通过try...except...进行捕获
  try:
      driver.find_element_by_id('kw')
      print('元素存在')
  except:
      print('元素不存在')
      
  # find_elements 得到的是一列表,条件不满足是,可通过条件判断,返回True、False
  if driver.find_elements_by_id('kw')
      print('元素存在')
  else:
      print('元素不存在')

在自动化测试中,一般使用find_element,不加s会更常见

3、xpath元素定位有哪些方法

1、基本用法://input[@name='q']
2、and组合属性://input[@name='q' and @type='anony_srh']
3、单斜杠(/),通过父代找子带://div[@id='kw']/div[@class='anony_srh']
4、双斜杠(//),通过祖先找子孙元素://div[@id='kw']//div[@class='anony_srh']
5、..通过自带找父代元素://div[@class='anony_srh']/..
6、通过text文本,获取元素://a[text()='百度'] ==》可不用@,因为它不是属性 =====> 全部匹配
7、text()常与contains组合使用://a[contains(text(),'百度')]   =======> 部分匹配
                            //a[contains(@class,'anony')]
8、索引(需加括号):(//a[contains(text(),'百度')])[1] ,从1开始
9、轴运算,常用 following_sibling(元素之后,弟弟)、//*[@class='account-form-3rd-hd']//following_sibling::div
             preceding_sibling(元素之前,哥哥)、//[@class='account-form-3rd-hd']//preceding_sibling::div
             ancestor(祖先)://a//ancestor::div[@id='anony-srh']
10、*任意标签下的条件,//*[@id='kw']

4、xpath和css选择器,各有什么优势?

1、css写法更简洁;
2、css速度更快;
3、css不支持文本定位;
4、xpath功能更强大;
5、xpath对于复杂的元素定位更简单

5、web自动化测试要点

1、点点点(鼠标操作 ==> 点击、悬停、拖拽、双击、单击等操作),可通过ActionChains(driver),进行调用;
2、用户输入(输入信息、单选、多选、select下拉框操作)
3、控件(日期选择。。),文件上传
4、验证码;
5、窗口滚动
各种浏览器的操作,selenium、cypress、playwright、puppeter等,封装浏览器都是类似的;

6、报错,无法定位元素,出现的原因可能有哪些?

1、先确认元素定位表达式是否正确,通过在浏览器中,点击ctrl + f 查找元素,看是否唯一;
2、表达式正确,查看是否设置了等待(隐形等待 driver.implicity_wait(10),强制等待 time.sleep(2);)
3、元素是否在另一个窗口( 切换至最新窗口:driver.switch_to.window(driver.window_handles[-1]) )
4、元素是否存在在iframe中,进行iframe切换: driver.switch_to.frame(xx)
5、元素是否为动态变化,(表达式可能为变化),可不通过动态变化元素进行定位

7、验证码问题

1、先让开发关闭验证码;
2、让开发设置万能验证码;
3、第三方解码平台,超级鹰;
4、生产环境下,通过手工测试,进行验证;


总结

先简单记录,之后再补充吧。

坚持坚持再坚持,一定可以的,多远都可以到达。fighting~~11!!

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-07-28 08:07:20  更:2021-07-28 08:08:40 
 
开发: 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年11日历 -2024/11/17 20:24:51-

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