• 自动化测试:webdriver的断言详解


    前言

    在编写自动化测试脚本时,为了使“机器”去自动辨识test case的执行结果是True还是False,一般都需要在用例执行过程中获取一些信息,来判断用例的执行时成功还是失败。

    判断成功失败与否,就涉及到断言。webdriver的断言使用有三种模式:操作(action)、辅助(accessors)、断言(assertion)。

    1、操作(action)

    模拟用户与Web应用程序的交互,一般用于操作应用程序的状态;

    如点击链接,选择选项的方式进行工作;如果一个动作执行失败,或是有错误,当前的测试将会停止执行。

    常见命令如下:

    • open(打开页面)
    • click(点击)
    • clickAndWait(点击并等待)
    • type(文本类型)
    • select(选择下拉菜单)
    • selectWindow(选择弹出窗口)
    • pause(等待指定时间,以毫秒为单位,即要睡眠的时间)
    • setSpeed(设定执行速度。以毫秒延迟间隔长度。默认没有延迟,即为0)
    • setTimeout(指定等待动作完成的等待时间。默认为30秒,需要等待的动作包括了OPEN 和WAITFOR)
    • goBack(模拟用户点击其浏览器上的“back”按钮)
    • close(模拟用户点击弹出窗体或表单标题栏上的”关闭”按钮)

    同时,我也为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看,也可以直接点击文末小卡片免费领取资料文档

    软件测试视频教程观看处:

    2023完整版阿里大牛7天软件测试零基础速成内部教程,从基础到项目实战学完即入职。

    2、辅助(accessors)

    辅助工具,用于检查应用程序的状态并将结果存储到变量中;

    如:storeElementPresent(locator,variableName)

    其中参数locator表示元素定位器,variableName用于存储结果的变量名;

    即将locator定位到的状态存储到variableName变量中,如果该元素出现返回true,否则返回false,可同断言一同使用。

    3、断言(assertion)

    验证应用程序的状态是否同所期望的一致。

    常见的断言包括:验证页面内容,如标题是否为X或当前位置是否正确,或是验证该复选框是否被勾选。

    常用断言如下:

    • assertLocation(判断当前是在正确的页面)
    • assertTitle(检查当前页面的title是否正确)
    • assertValue(检查input的值, checkbox或radio,有值为”on”无为”off”)
    • assertSelected(检查select的下拉菜单中选中是否正确)
    • assertSelectedOptions(检查下拉菜单中的选项的是否正确)
    • assertText(检查指定元素的文本)
    • assertTextPresent(检查在当前给用户显示的页面上是否有出现指定的文本)
    • assertTextNotPresent(检查在当前给用户显示的页面上是否没有出现指定的文本)
    • assertAttribute(检查当前指定元素的属性的值)
    • assertTable(检查table里的某个cell中的值)
    • assertEditable(检查指定的input是否可以编辑)
    • assertNotEditable(检查指定的input是否不可以编辑)
    • assertAlert(检查是否有产生带指定message的alert对话框)
    • waitForElementPresent (等待检验某元素的存在,为真时,则执行)

    使用断言的注意点:

    ①不要使用断言作为公共方法的参数检查,公共方法的参数永远都要执行;

    ②断言语句不可以有任何边界效应,不要使用断言语句去修改变量和改变方法的返回值;

    总结

    我给大家整理了一套软件测试面试文档和一整套的软件测试资源,应该对朋友们跳槽面试、升职加薪、摆脱职业困境、提高自己的技术有很大的帮助,希望各位都能前程似锦。【点击文末小卡片免费领取软件测试全套资料】

    资料包括:测试理论、Linux基础、MySQL基础、Web测试、接口测试、App测试、管理工具、Python基础、Selenium相关、性能测试、LordRunner相关等。

    上面是我收集的一些软件测试视频资源,在这个过程中帮到了我很多。如果你不想再体验一次自学时找不到资料,没人解答问题,坚持几天便放弃的感受的话,可以加入我下方扣扣群,里面有各种软件测试资源和技术讨论

  • 相关阅读:
    Tomcat高级配置(应用场景总结及示例)
    讨论面向对象及方法学的特点?为什么要用面向对象方法开发软件?
    Go语言学习(八)-- Gin入门
    如何优化百度搜索引擎?(10个技巧让你的网站更容易被搜索到)
    【Python爬虫】初识爬虫及requests模块入门
    大数据课程K22——Spark的SparkSQL的API调用
    【云原生之k8s】K8s 管理工具 kubectl 详解(一)
    凯撒密码加解密过程与破解原理
    基于inotify实现落盘文件的跨进程实时读写交互
    PHP 获取当前时间戳,精确到毫秒
  • 原文地址:https://blog.csdn.net/huace3852/article/details/134407137