自动化测试常见问题

这篇具有很好参考价值的文章主要介绍了自动化测试常见问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、开发能力的帮助

(1)提高编程能力,缺陷定位到更底层,通过Exception或者error日志能够初步判断哪里出了问题,跟开发的沟通更方便。
(2)写脚本过程中,让脚本可复用,可维护,有封装和复用的思想。比如引入做UI自动化测试框架的时候,做关键字驱动。
(3)测试用例和测试计划评审,站在开发的角度提出一些更专业的建议,更好的推动测试工作。

2、测试框架封装的优点

在没有框架的时候是通过工具让人工去运行的,有了框架之后就只需要去维护测试用例,通过跟Jenkins的配置,就能够在迭代的一个周期里面自动的运行测试脚本,自动发现问题,自动生成测试报告,能够省去大量执行回归测试的一个工作。

3、发现问题处理的流程

发现问题,收到邮件,查看日志的问题。

4、接口脚本的维护频率

有新增的业务时,在一个迭代周期里面,在编写完用例后我们更新接口自动化的用例,框架就能够自动化的读取用例执行。

5、共享类

导出jar包,给到测试同事,导入使用,即是热加载。

6、ui自动化的脚本的编写方式

人工编写比脚本录制的维护起来更容易,成本更低。但是冒烟测试和主流程覆盖率不到30%,一些具体的业务还需要人工去测试。

7、docker容器的优点。

(1)利于开发,测试,运维环境的部署(结合项目);
(2)需要一些依赖的软件直接pull就可以了
(3)docker容器编排可以根据服务的情况实施扩容和减容,以及在容灾方面有很多的效果。
(4)UI自动化中,可以多浏览器,分布式运行UI自动化的用例,从而减少我们的UI用例的测试时间。

8、紧急的项目处理

(1)进行测试计划和风险控制。
(2)提取测试点,可以暂时不写详细的测试用例。
(3)根据开发和产品计划做对接。

9、结果校验

断言的实际:一般返回的是json格式的数据,有三个字段:
code:0
msg:成功返回码的说明
data:数据列表
断言的预期:
①返回码的断言,预期来自接口文档的说明。
②业务的断言,预期来自项目,需求,数据库。根据项目提取关键的业务值。

10、封装的使用情境

(1)可以重复利用的情况,就会封装。
(2)可以增加代码的可维护性的需要封装。
(3)可以使自动化落地简化的需要封装。
(4)能够形成流程化,标准化的需要封装。

11、需要通过JS强制处理的特殊场景

(1)可见不可控(不可读),readonly,比如日历。
(2)不可见,style="display:none",比如隐藏的主键,动态显示。
(3)元素高亮显示。

12、PO模式的定义

PO模式,全称为Page Object Model,简称PO,是页面对象模式。意思是把一个页面当做一个对象,页面的元素就是对象的属性,页面的操作就是对象的行为(方法),PO模式一般使用三层架构,分别为:基础封装层BasePage,PO页面对象层,TestCase测试用例层。
使用PO模式可以使我们的测试用例更简单,更清晰,很多时候我们可以在页面对象中封装很多业务操作方法,测试脚本只需要调用相关方法就可以。
另一个就是如果有页面元素发生改变,我们只需要去修改这个页面对象的元素定位和相关方法就可以了,不需要修改其它脚本,增加代码的可维护性。

13、数据驱动和关键字驱动的区别

(1)数据驱动是从某个数据文件(例如Excel文件、Csv文件、YAML文件等)中读取输入、输出的测试数据,然后通过数据驱动方法(ddt,paramTerize等)传入自动化测试脚本中。在整个过程中,自动化测试脚本实现数据的读取、测试状态的改变、结果的判断等,从而实现数据和代码分离,这种方式叫数据驱动。
(2)关键字驱动是从面向对象的思路出发,同样的业务逻辑会编写成一个函数作为关键字来被不同的测试脚本所调用。当所有的业务逻辑测试都可以被写好的函数所组合完成时,就是关键字驱动框架。这个时候测试用例的开发就变成了测试数据和关键字的组合,并把这种组合工作简化为所有人都很熟悉的表格填写任务,从而最终达到一个由数据和关键字驱动整个测试的效果。

14、自动化测试常用的Python库和常见的异常

(1)web自动化测试:
webdriver,WebDriverWait,By,os,xlrd,xlwt,unittest/pytest,time,logging,HTMLTestRunner等。
(2)接口自动化测试:
requests,time,logging,json,csv,jsonpath,pyyaml,re,unittest/pytest,allure。
(3)常见的异常有以下:
NoSuchElementException:没有如此元素异常;
NoSuchAttributeException:没有如此属性异常
NoSuchFrameExceptio:没有如此frame异常
ElementNotSelectableException:元素不能选择异常
ElementNotVisibleException:元素不可见异常
Element not visible at this point:在当前点元素不可见
TimeoutException:超时异常

15、自动化测试误报的原因

误报就是指自动化测试发现了 bug,实际去通过手工测试去确认又不存在该bug;
误报原因可能是:
(1)元素识别不稳定–尽量提高脚本的稳定性;
(2)开发更新了页面–测试没有及时维护;

16、ui自动化元素定位方法

定位方法:id,name,xpath,css,link text,partial link text,tag name,class name
定位不到的原因可能是:
1.定位器或者是定位字符串选择错误;
2.页面加载元素过慢,加等待时间;
3.页面有frame/iframe框架页,需要先跳转入frame框架再定位;
4.元素在新打开的窗口window中;
5.可能该元素是动态元素,定位方式要优化,可以使用部分元素定位或通过父节点或兄弟节点定位。
6.可能识别了元素,但是不能操作,比如元素不可用,不可写等。需要使用 js 先做处理;
7.元素可能不在当前页面。

17、Webdriver中关闭浏览器的quit和close的区别

简单来说,这两个都可以实现退出浏览器session功能;
close 是关闭你当前聚焦的 tab 页面,而quit 是关闭全部浏览器tab页面,并退出浏览器session。
close用在执行单个用例过程中关闭某一个页面的操作,quit一般用在结束测试之前的操作。

18、ui自动化三类等待的特点

(1)线程等待(强制等待)如time.sleep(3):线程强制休眠3秒钟,3秒过后,再执行后续的代码、建议少用。
(2)imlicitlyWait(隐式等待):这种是全局设置的等待,如设置超时时间为 10秒,使用了implicitlyWait后,如果第一次没有找到元素,会在10秒之内不断循环去找元素,如果超过10秒还没有找到,则抛出异常,特点是必须等待整个页面加载完成。
(3)WebDriverWait(显式等待):也称为智能等待,通常是我们自定义的一个函数代码,这段代码用来针对指定元素定位指定等待时间,在指定时间范围内进行元素查找,找到元系则直接返回,如果在超时还没有找到元素,则抛出异常,显示等待是selenium 当中比较灵活的一种等待方式,他的实现原理其实是通过whiie 循环不停的尝试需要进行的操作。

19、验证码的几种处理方式

(1)在产品没有上线前,需要找开发将验证码先注释掉,或者让开发给web验证码留一个万用验证码,只要输入给定的验证码,就可以强制登录
(2)可以通过Coakie 跳过登录验证码
(3)滑块验证码可以直接使用人工智能+代码的方式处理。
(4)使用第三方的验证码识别技术(比如百度智能)

20、selenium处理多窗口

当你点击一个链接,这个链接会在一个新的tab打开,然后你接下来要在新tab打开的页面定位元素并处理。步骤如下,
1.我们在点击链接前使用driver_corent_window_handle获得当前窗口句柄;
2.再点击链接,点击后通过 driver_window_handles获得所有窗口的句柄;
3.然后再循环找到新窗口的句柄,然后再通过driver_switch_to.window()方法跳转到新的窗口;
4.window 太多则可以按照title、url等其它信息进行判断切换。

21、iframe里面元素定位

有时候我们写的元素定位表达式没有问题,但是脚本还是提示nosuchelement,那么我们就需要考虑这个元素是否在frame/iframe中。通过f12查看元素HTML中是否有 frame/iframe标签,如果有frame/iframe,需要先将driver切换到frame/iframe中,可以通过frame的name和id和索引三种方法来定位frame,步骤如下:
先用driver.switch to.frame()跳转进去frame,然后再操作页面元素,操作完后使用driver.swith to.defaultcontent跳转出来。

22、在执行脚本过程实现当前元素高亮显示

用javaScript修改当前元素的边框样式来到达高亮显示的效果。

23、数据库校验的场景

数据库主要用于断言核心关键点的时候用的,比如走完一个流程之后校验这种流程的最终状态。或者是增加和修改数据的时候。
比如:电商从登陆到搜索商品到加入购物车到支付到下单完成后,需要验证order订单表中增加了一条记录,并且这个记录中orderstatus 为0,表示待发货状态。

24、在Selenium中实现用例执行失败截图

在Selenium中提供了一个get_screenshot_as_file()的方法来截图的,一般结合try/except捕获异常时使用,进行错误截图。文章来源地址https://www.toymoban.com/news/detail-421005.html

到了这里,关于自动化测试常见问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • App自动化测试的常见痛点 —— 弹框处理

    很多同学在项目中落地实践 App 自动化测试时,会发现编写的自动化脚本无缘无故地执行失败、不稳定。而导致其问题很大原因是因为应用的各种弹窗(升级弹窗、使用过程提示弹窗、评价弹窗等等),比如这样的: 处理方向 弹框的影响范围 弹框对我们自动化的影响主要是

    2023年04月13日
    浏览(30)
  • Selenium自动化测试框架常见异常分析及解决方法

    现象: pycharm中输入from selenium import webdriver, selenium标红 原因1: pycharm使用的虚拟环境中没有安装selenium, 解决方法: 在pycharm中通过设置或terminal面板重新安装selenium 原因2: 当前项目下有selenium.py,和系统包名冲突导致, 解决方法:重命名这个文件 1)未找到响应的浏览器驱动 WebDriv

    2024年02月06日
    浏览(42)
  • 前台自动化测试:基于敏捷测试驱动开发(TDD)的自动化测试原理

    一、自动化测试概述 自动化测试主要应用到查询结果的自动化比较,把借助自动化把相同的数据库数据的相同查询条件查询到的结果同理想的数据进行自动化比较或者同已经保障的数据进行不同版本的自动化比较,减轻人为的重复验证测试。多用户并发操作需要自动化模拟来

    2023年04月20日
    浏览(81)
  • selenium 自动化测试:如何搭建自动化测试环境,搭建环境过程应该注意的问题

    最近也有很多人私下问我,selenium学习难吗,基础入门的学习内容很多是3以前的版本资料,对于有基础的人来说,3到4的差别虽然有,但是不足以影响自己,但是对于没有学过的人来说,通过资料再到自己写的代码,发现有些东西没有,有些方法又不相同,导致脚本不能运行

    2024年02月10日
    浏览(53)
  • 【测试开发】自动化测试 selenium 篇

    目录 一. 什么是自动化测试 二. selenium 1. selenium的工作原理  2. selenium+Java的环境搭建(Chrome浏览器)  三. selenium中常用的API 1. 定位元素 findElement 1.1 css选择语法  1.2 xpath 2. 操作测试对象 2.1  sendKeys-在对象上模拟按键输入 2.2 click-点击对象 2.3 clear-清除对象输入的文本内容 2.4 s

    2024年02月13日
    浏览(39)
  • 自动化测试如何解决chrome自动更新问题

    调试好的自动化测试脚本,有时候总是在第一天或过几天就不好使了。产品并未进行功能逻辑,ui修改,一切还和调试自动化脚本的时候保持一致。运行自动化测试脚本时,控制台总是会在driver = webdriver.Chrome()这一行报错。 在看到控制台错误时并没有立马想到是chromedriver版本

    2024年02月13日
    浏览(48)
  • 浅谈自动化测试框架开发

    在自动化测试项目中,为了实现更多功能,我们需要引入不同的 库、框架 。 首先,你需要将常用的这些库、框架都装上。 然后,在项目中使用他们。 例如上面的自动化项目代码,我们写多了之后,就会发现常用的库就是那么几个,而且用法大同小异,俗称样板代码。 这个

    2024年02月05日
    浏览(49)
  • 【测试开发】第五节.测试——自动化测试(Selenium工具)

    作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:Java测试开发 每日一句: 人的一生,可以有所作为的时机只有一次,那就是现在!!! 前言 一、自动化测试的概念以及分类 二、Selenium—web自动化测试工具 2.1 自动化测试的一些前置工作 2.2 第一个自动化实例

    2024年02月04日
    浏览(64)
  • 【开发神器】自动化测试、用 Apipost!

    Apipost是一体化研发协作平台,满足整个研发生命周期的业务需求。从产品经理确定需求,前后端一起过会讨论接口结构如何设计,提前设计mock好并分享给前端使用;后端进入代码开发并调试接口是否符合预期;接口正确后前后端联调并交付给测试;测试人员基于开发完成的

    2024年04月09日
    浏览(37)
  • 软件测试 | 测试开发 | Django+Celery框架自动化定时任务开发

    ** 本章介绍使用DjCelery即Django+Celery框架开发定时任务功能,在Autotestplat平台上实现单一接口自动化测试脚本、业务场景接口自动化测试脚本、App自动化测试脚本、Web自动化测试脚本等任务的定时执行、调度、管理等,从而取代Jenkins上的定时执行脚本和发送邮件等功能。** 自动

    2023年04月08日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包