web自动化总结

web自动化项目流程

  • 测试计划时分析哪些功能需要进行自动化测试,哪些进行手工测试
  • 什么时候开始介入web自动化测试?在项目稳定的时候

web自动化代码流程

  • 手工测试,分析测试步骤及准备元素定位方式,写到PO中
  • 测试类中,用注释写清楚测试步骤
  • 测试类中,准备前置条件、后置条件
  • PO类中,封装页面行为
  • 测试类中,调用具体的PO类

重点内容

元素定位

常用定位:id、name、classname

xpath

  • xpath表达式
    • 一定要使用相对路径//(为什么不能使用绝对路径?无法应对页面的改动)
    • 逻辑符,and、or
    • 索引从1开始,[1](极易出现错误)
    • 关系运算,通过父亲找儿子,通过儿子找父亲
    • 轴运算,找哥哥姐姐、找弟弟妹妹、找祖先
  • xpath和css的比较
    • css表达方式比xpath更简洁些;主流浏览器(chrome、firefox)使用css选择器查询速度较快(毫秒级差距)
    • xpath功能更强大,有更丰富的函数及轴定位,可定位一些复杂关系的元素;xpath支持用text文本,css选择器不支持;对于一些复杂的元素,xpath的写法反而更简洁些

selenium运行原理

  • 结合图说明:
    在这里插入图片描述
  • 客户端与webdriver如何沟通?
    通过json wire protocol协议(其本质就是http协议)
  • selenium为什么能够跨语言?
    • webdriver的接口服务。无论用什么语言,均可调用webdriver的接口
  • webdriver与浏览器如何沟通?
    通过Js。因为浏览器内置Js解释器,也只能听懂Js。

三大切换

  • 窗口切换
  • iframe切换
  • alert切换

页面操作

元素操作

  • 单一操作
    • 鼠标操作:click()
    • 键盘操作:send_keys(),输入某个按键可调用Keys类的具体按键。
  • 链式操作
    ActionChains(driver).click(el).move_to_element(el).perform()
    • 为什么要加perform()?让动作生效(极易出错)
    • 为什么能进行链式调用?每个函数均return self。在PO模式中,我们也运用了链式调用的原理进行PO的链式调用。

下拉框操作

select = Select(下拉框的element)
通过select调用一下方法进行选择、反选:
在这里插入图片描述

文件上传

方法

  • send_keys(“文件路径”)
  • 系统交互,需使用第三方模块:pywinauto, pyautogui

JS操作

execute_script, arguments[0]

PO模式

  • 什么是PO模式?
    把页面封装成对象,对象的属性包括页面的url、网页标题、元素定位器,对象的方法包括元素定位方法、元素操作方法。
  • PO模式有什么用?
    • 可维护性
    • 可读性
    • 可扩展性
    • 可复用性
  • PO的封装原则
    • 是不是所有的动作都需要单独封装成页面对象的方法?
      • 根据需要。遵循的原则:你用到了什么行为, 你就封装什么行为。
    • 封装的页面操作的返回值
      • self, 或者是其他的页面的对象
      • 如果你需要获取某个元素或者属性,就直接返回元素本身或者属性。
      • 如果一个操作它可能会有多个结果,比如进行页面跳转或者本页面。
      • 根据结果封装成多个方法。

如何提高web自动化测试的稳定性?

  • 加上等待。
    • 隐性等待。只能等待元素,且只能等待元素被找到
    • 显性等待。可进行多种情景的等待,等待的条件也很丰富
    • 强制等待。用在多个系统进行交互的地方
  • 元素定位。找前端工程师不会轻易修改或修改影响不大的定位方式;在用xpath或css定位时使用相对路径。
  • 异常处理。如果要定位的元素不在当前页面,可抛出异常,方便定位。写在basepage的构造方法中:
    在这里插入图片描述
  • 使用pytest的重运行机制。

自动化测试(包括appium、web、接口)还有哪些可以优化的地方?

  • 展示上的优化
    • 平台化。用前端实现一个测试平台,只需页面操作即可进行自动化测试
    • 数据可视化。以表格、图表的形式展示测试结果
  • 执行效率的优化
    • 使用并发
    • 分布式处理
    • 分析接口响应速度慢的原因,进行性能分析(需要有架构设计的能力)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值