Automated tests Web测试录制:在录制过程中自动插入断言?

Automated tests Web测试录制:在录制过程中自动插入断言?,automated-tests,integration-testing,selenium-ide,web-testing,katalon-studio,Automated Tests,Integration Testing,Selenium Ide,Web Testing,Katalon Studio,我需要尽可能地自动化Web测试场景的记录。Selenium IDE或更好的用于Chrome的Katalon插件似乎对此非常有效。然而,录音中缺少的是断言。到目前为止,我还没有找到真正的替代方法,只能在录音结束后“手工添加” 现在我知道我的页面的哪些部分包含相关的输出文本,即需要进行测试。例如,基于ID模式、类名、标记层次结构等 因此,考虑到我的web应用程序处于“已知良好状态”,理论上我可以在录制过程中获取相关标记的文本内容,然后在录制的场景中插入我的断言。我的目标是实现自动化 在Katalon

我需要尽可能地自动化Web测试场景的记录。Selenium IDE或更好的用于Chrome的Katalon插件似乎对此非常有效。然而,录音中缺少的是断言。到目前为止,我还没有找到真正的替代方法,只能在录音结束后“手工添加”

现在我知道我的页面的哪些部分包含相关的输出文本,即需要进行测试。例如,基于ID模式、类名、标记层次结构等

因此,考虑到我的web应用程序处于“已知良好状态”,理论上我可以在录制过程中获取相关标记的文本内容,然后在录制的场景中插入我的断言。我的目标是实现自动化

在Katalon插件、Selenium IDE或任何其他自动web录制工具中是否有这样做的方法?我读过关于Katalon扩展脚本的文章,但据我所知,这些脚本不能满足我的需要

--编辑--尝试重新措辞并更具体--

在录制过程中,对于某些事件(例如页面加载),我希望工具找到与某些选择器匹配的所有元素,并在场景中为每个匹配存储断言,断言页面上元素的实际当前值(例如div.innerText或input.value)。我想定义触发插入断言的事件和选择器,以及定义断言值的表达式

范例


假设我的webapp有一个搜索页面。我在输入字段中输入数据,然后点击“搜索”按钮。这些动作由大多数工具(如Katalon Recorder)记录。现在在下一页上,将显示搜索结果。每个搜索结果都将位于div class=“result”中。假设录制时我得到两个搜索结果“foo”和“bar”。因此,我希望工具在场景中存储一个断言,根据我的规则,第一个结果应该是“foo”,第二个结果应该是“bar”,即所有$(“div.result”)在页面加载时都应该断言其“innerText”。

避免使用Selenium IDE,由于与Firefox的兼容性已从Firefox版本55起停止,因此您将无法在最新版本的Firefox上运行测试

在浏览器中执行操作时,记录这些操作以再次运行它们相对容易。100%清楚您刚才按下的按钮。 你可能在一个页面上做一百万个不同的断言,任何工具都很难猜出你想要断言哪些东西,然后自动添加这些断言,所以如果你能找到一个能完全满足你需要的工具,我会感到惊讶

是什么阻止您从头开始用代码编写自己的自动化测试?根据我的经验,编写自己的测试不会慢很多,但一旦习惯了这样做,您将能够更轻松地处理更复杂的问题


我没有使用卡塔隆的经验。

您不能在录制时间添加断言,但您也可以在录制后使用
Selenese

查看此处的官方参考资料:

关于它的价值,我已设法获得了我所需要的,如下所示:

  • 在my Chrome中找到Katalon Recorder的扩展目录
  • 将整个内容复制到Eclipse
  • 通过添加以下内容修改源
    content/recorder.js
    ,方法
    recorder.attach()

    var self = this;
    $(...).each(function(i, el) {
        var target = self.locatorBuilders.buildAll(el);
        if (el.tagName == "SELECT" || el.tagName == "INPUT")
            recorder.record("assertValue", target, el.value, false);
        else
            recorder.record("assertText", target, el.innerText, false);
    });
    
    (注意,
    是JQuery选择器,用于定义我知道将在应用程序中包含相关数据的区域。这可以在该源代码中进行调整(例如,通过添加更多选择器),也可以在应用程序本身中进行调整(例如,通过向HTML中的某些标记添加信号类来触发断言)

  • 在chrome中,激活“开发者模式”并加载修改后的插件
  • 录制时,现在会在每次页面加载时自动为我的web应用程序的相关部分(
    )添加断言
  • 快乐

谢谢,但这还是后期录制。我希望一些“业务用户”在录制时使用该应用程序,并自动声明相关部分。录制完成后,数据(相关部分的文本内容)已消失,因此重建断言值要困难得多。因此,您正在寻找一些解决方案,如QTP中的检查点。据我所知,它未在Katalon中实现。谢谢。仅供参考,Katalon Recorder与Selenium IDE兼容,并添加了一些功能。