LEAP

LEAPWORK的自动化见解和生产力提示。

所有帖子

震撼TestExpo 2017的主题演讲

在8月31日于哥本哈根举行的TestExpo 2017上,LEAPWORK的CTO Claus Topholt提出了我们基于流程图的自动化设计的想法。新颖的方法在会议参加者中引起了很多关注。

观看下面的主题演讲。字幕在视频播放器下方可用。

 

成绩单:

“……在我看来,我们只需要不同的工具,我们就需要不同的方式来处理这些事情,因为测试人员不是程序员。有人说我想杀了我,但实际上,如果您具备这些技能,并且知道可以使用的工具,那您知道这很棒。但这不是您进行测试的目的。您更像最终用户大使,他们与最终用户站在一起并使用产品,并尝试根除链断裂的不同情况。

在大多数时候,您是面向业务或产品流的,对吗?它与流程有关,与软件在重要业务场景中的工作方式有关,这是您要挑战的目标。

因此,例如,这是一个登录框,我将在短时间内进行演示,但这是Tradingfloor.com的登录框。这是该投资银行的财产,作为测试员,您可以看一下它,并且可以有点理解,您想单击该电子邮件字段并输入电子邮件地址,然后单击密码字段并输入密码。然后,您会本能地单击登录框,然后测试一下这些不同的东西。

那么,在那种白板情况下,那是什么样的呢?好吧,看起来像这样。您单击电子邮件字段,键入该电子邮件地址,单击登录框,然后尝试查看我是否已经登录(就我而言)。如果任何失败,则说明您失败了场景。

因此,我尝试说,也许这就足够了,也许只是像这样可视化测试用例就足够了。因此,我不会说我是在同一时间参加工作并辞职的,但这是最终结果,我们最终构建了这个Leaptest工具。我现在要演示。

那只是个玩笑。一定要笑点吧?

好的,这就是工具。这是一个带有画布的可视化工具,我将创建一个新的测试用例,我们将尝试在Tradingfloor.com上进行该登录,这是您可能从未见过的网站,但这是我存在的祸害大约5年。我将创建一个名为Tradingfloor.com的案例,然后选择Web应用程序类型,这将使​​我们的产品处于一个透视图,在这里我们使用Selenium WebDriver框架来使其运行。您也可以选择台式机,然后在这种情况下可以使用图像和文本识别技术以及其他功能,但是我们将坚持使用此网络产品。

因此,现在,一个案例出现在屏幕上,并且有一个开始块。我们的整个产品只是一个白板,您可以在其中绘制构建基块,并将它们连接在一起,然后进行逻辑流程。我们将从一个开始块开始,我将在此处拖出一条线,就像在白板上画图一样。我将启动一个网络浏览器,我只想转到Tradingfloor.com,在Tradingfloor.com上,我知道有一个登录按钮。我要单击该登录按钮。我通过选择要单击的内容并选择捕获新元素来做到这一点,然后说,是否要使用弹出窗口,在这种情况下,您想以管理员身份运行,否。我们将继续,然后将发生的事情是,浏览器将神奇地出现,网站将被加载,一切都将变为捕获模式。我可以移动鼠标,您会看到我们可以理解所有不同的HTML元素。我将鼠标悬停在此处的登录按钮上,单击它,这会将其捕获回Leaptest。这意味着现在我们实际上已经可以运行一个小的测试用例了。如果我现在按“播放”,它将关闭该旧浏览器并打开一个新的浏览器,再次加载该站点,找到该按钮,在站点加载后,立即找到该按钮并单击。

这真的就像在白板上画图一样,然后只有一个播放按钮,您可以单击它,然后东西开始运行。在运行的同时,我们将所有内容都记录在视频中,因此您可以看到发生了什么情况的视频,当我在此处滚动浏览此视频时,您实际上可以看到构建基块正在点亮。这是了解实际发生情况的便捷方法。

现在,我们可以在这里开始加快速度,因为除了单击该登录按钮之外,我还想单击带有电子邮件的登录按钮。实际上,我可以在这里单击鼠标右键并说出运行案例,这将使用打开的浏览器并从那时开始运行案例,因此我可以使用此方法单击自己的方式,单击电子邮件。字段并输入电子邮件地址。这只是一个测试帐户,请放心,该帐户没有任何金钱,因此,即使您写下我的密码,也希望什么都不会发生。密码。我将在此处输入测试密码。您实际上可以保护这些东西,可以将一个字段设置为受密码保护的字段,然后我们将对其加密,以确保所有内容都是安全的,依此类推。但基本上,像这样,然后单击底部的大登录按钮。现在,当我们看到该屏幕截图时,我们已经可视化了我之前所说的内容,如果我只是在此处稍微放大一点,我可以说,让我们从这里开始运行该案例。如您所见,它只是填写表格,单击“登录”按钮,仅此而已。此过程的最后一步是仅验证屏幕上是否出现了某些东西,我们希望它们会出现在屏幕上。我将返回浏览器并在此处捕获我的名字,大家都看到了吗?如果可以找到我的名字,则可以说此测试已通过。所以现在我们有一个完整的端到端测试。

也许用这里的分辨率很难看到它,但是这样做的目的是,它是视觉的,即使您以前从未看过此工具,也可以对发生的事情有直观的感觉。我们从此开始,然后启动Web浏览器,单击某些内容,并填写一些字段。即使对于其中一位经理,当您必须向他们展示这一点时,也不难理解。但是,尝试向他们展示一堆代码或类似的东西,并不能很好地结束。因此,此操作的视觉效果很简单,但实际上却有所改善,因为我只是在这里放大了一点。这部分,即登录部分,是我现在刚刚选择的这些块,这是您通常希望重用的部分。这是一个子流程,您需要将其制作成一个模块,然后在不同的测试用例中使用。我将选择它们并创建一个自定义的构建基块,并将刚刚选择的所有内容包装到一个构建基块中,我们现在可以指定一个名称。我将其称为登录。让我将这些内容移至此处,以便更轻松地进行概述。好了现在,更容易理解发生了什么。我可以双击此块,它将打开此自定义构建块。您会看到这里发生了执行输入事件,并且整个过程中的流程与以前相同。并在远端的执行输出,该输出对应于以这种方式前进和这种方式出去的绿色箭头。

人们通常要采取的下一步是,如何将其参数化,如何利用一些数据来驱动它?人们首先说的是,我真的很想在数据库上运行它,所以我可以从数据库中获取一些数据吗?或者我有一个http端点,我想从一个端点提取一些数据,我有一个命令行,我想从中提取很多不同类型的脚本。

我们为所有这些事情提供了构建基块。但是,在人们对此进行了一点思考并且实际上想要真正地做到这一点之后,大多数人最终会说:“我们可以从Excel文件中读取它吗?”因此,有一个用于读取Excel文件的块,这就是我们将要使用的块。我将要输入,阅读Excel,然后添加该块,我可以仅指向一个本地文件,瞧,我有一个Excel文件,其中包含与此处相关的一些数据,我只想单击define range,将要打开Excel文档。

我可以在此Excel文档中选择要用来驱动此案例的数据。我只是选择这3条测试行,将第一行用作标题,这意味着Leaptest现在将了解我们拥有这些字段并且可以使用这些行。

现在,我们已经阅读了这个Excel文件,我们想要获取用户名和密码并将其插入登录框,因此从此处将电线拖到登录框中。唯一的事情是,我们实际上如何做到这一点?好吧,要做到这一点,我们回到这个自定义构建块,看看这个地方,我在其中放置了我的硬编码电子邮件地址,我们可以做一些叫做值输入的事情。我将其称为一个用户名,以便于理解,我们将从此值输入中获取任何信息,并将其作为要在电子邮件字段中输入的文本的值。我猜我也可以称它为电子邮件,但我们只称其为用户名。在这里,这个如果肯定要称为密码,又一次又称为密码,我们将获取通过此值输入块输入的密码,并将其输入到电子邮件和密码字段中。因此,保存一下,返回,现在我们刚创建了这两个额外的字段。

现在变得很容易,就像这样将它们挂在一起,用户名在那里,密码在那里。因此,最后一件事当然是说,好吧,我的名字也被硬编码进去了。当然,我想从excel文件中获取全名,并在此处使用,但是我该怎么做?好吧,稍微容易一点,但另一方面,功能更强大。因为现在我们可以深入研究,我们实际上是如何在屏幕上找到该块的?我可以单击“编辑Web元素”,然后会出现一个稍微复杂的弹出窗口,它的作用是在左侧告诉我们不同的定位器策略,它在这里确实变得有点技术性,但是这意味着基本上我们可以在显示该代码的位置找到该块我的名字使用许多不同的方法。

我们不会尝试通过id字段来找到它,而是会尝试找到在不易碎的情况下定位该块的方法。因此,我们在这里需要某种结构,我们需要某种找到它的方法,这种结构可以承受例如布局更改。在这里选择的第一个策略(捕获时会自动发生)是我们正在寻找带有某物类的A标签,而这通常不是您需要了解的东西,除非您想非常主动地进行操作像我在这里一样对数据进行彻底检查。但基本上,我们可以看到还有其他策略,例如,这只是说我们将查找其中文本为Claus Topholt的链接,就是我。而且我们在Excel文件中拥有该信息,因此现在只需删除此处的硬编码值并添加一个动态字段即可,此动态字段将出现在要定位的元素下方,因此我们将它们连接起来。好了

就是这样,这是一个从启动Web浏览器开始运行,登录,检查该人实际上是否已登录的情况。我们可以在这里看到它的发生,它会启动一个全新的浏览器并遍历整个过程。处理。关键是,这在Selenium或任何其他浏览器驱动框架中编写并不困难,并且在Python或Java或其他方面也不是很难。哦,有趣的是,如果花费10秒钟以上的时间,它将超时并且案件将失败。是的,看看,因为这里有默认超时。我的旧网站运行缓慢,有点尴尬,让我们在这里再次进行一下,看看它是否运行得更快。关键是,即使熟练的开发人员可以在45分钟内完成此操作,但编写此测试用例大约要花45分钟的时间,您知道,我可以用这些构建基块在5分钟内完成此操作,如果我不说话,则可以在3分钟内完成。生产力的提高是巨大的,并且您知道,您可以使用这种或多种不同的方案,仅使用您的业务流程知识,对要测试的软件的了解以及您已经具备的技能,就可以达到目标。测试员。这里没有太多技术要学习的东西,如果您必须学习一些东西,我们会在学习中心提供非常丰富的视频库,哦,通过案例,您可以开始使用。

所以,我想这就是我想要演示的内容,这是一个旋风式演示,但是我想提出一些问题,并且只是在广告上楼下有一个展览,非常欢迎大家来与我或一个人交谈之后我的同事们。

所以,问题,是的!

我可以在关键字驱动的测试中使用它吗?大家知道,我们的解决方法与关键字测试完全不同。我们以不同的方式包装内容,我们有这些模块,因此实际上并没有这样的关键字。这对您有意义吗?这只是构造事物的略有不同的方法。

是的,还有其他人吗?好,去吧。

我如何找到我的照片?

是的,好的,让我们回过头来看看此登录框,因为也许这更有意义。因此,如果我说编辑Web元素,则此登录框可以看到我们在此处选择的策略与之前查找我的姓名的策略相同。我们首先说,是否存在一个带有一类项目按钮,登录名,某物,某物的A链接。因此,这只是自动生成的策略,因此,如果我们仅在Chrome中单击“验证”,也许它将再次打开同一页面,是的,我想是这样,因此我们可以看到验证实际上正在发生。是的,我们走了,所以你走了。

它周围有一个矩形,我们现在可以在文档中看到它甚至更加技术化。但是我们可以在这里看到HTML,我们在哪里找到它,它们的属性是什么,这与我们正在寻找带有this和this类的A的事实相对应。我们可以添加条件来更改此条件,因此可以说,我真正感兴趣的唯一内容是包含登录字词的内容,因此我将对其进行更改并单击“验证”,再次找到相同的按钮。现在,如果我只是要删除此情况并单击“验证”,它将只在页面上找到第一个链接,即那里的徽标。

是的,因此,如果元素的地址或位置是动态的,那么这里要注意的重要一点是,这实际上是我刚刚向您展示的整个策略。无论它是什么颜色,或它在页面上的什么位置,它都只是寻找,例如,在这种情况下,它实际上只是寻找页面上任何地方带有“登录”文字的链接。因此,现在您可以更改按钮的颜色,位置,功能等等,所有这些都不会改变。因为这是一个简单的策略,所以它将继续起作用。

不,没有像素,在这种情况下,它实际上是在查看网页使用的HTML,因此没有分辨率的内容,也没有在看像素。哦,我认为令人困惑的是,您在此处看到绿色的登录按钮,这是因为我们的工具会尝试为您做点好事,即当您捕获元素时,它需要一个小的屏幕截图,因此您可以识别出下次您访问此案例时,会显示在视觉上。实际上,在这种模式下并没有使用这些像素,我们还有其他使用工具的方式,实际上您在其中使用像素,因此您可以使Citrix等自动化。

是的先生。

是的,这是一个广泛的问题,在不同的模式下,例如,您正在通过Citrix部署内容,然后被仅在屏幕上渲染像素的Citrix接收器所困扰,然后您可以只使用我们的单击图像,查找图像,查找文本,查找编号以及我们拥有的基于图像和文本识别的那些类型的构建基块,并且效果很好,无论屏幕上显示什么,您都可以将其自动化和游戏,SAP客户端等。

在今年晚些时候,我们实际上将提供专用的SAP支持,我们将使用SAP中的SAP自动化框架。

实际上,我认为我只是这样做了,您看了一下,然后将其放入自定义可重用的构建基块中,并且可以将它们相互放在一起,以便可以对这些构建基块进行层次化,您以不同的方式组合来制作案件。

因此,如果我要制作另一个测试用例,是否可以重用该用例?

是的,确实如此,所以我实际上只是将其重命名了,我想我们已经没时间了,但是我会很快处理一下,所以这里有个新案例,很高兴能够在您处于测试状态时拼写单词test测试会议。因此,我有了这个自定义构建块,它认为这是我们刚刚制作的那个,我应该正确地重命名它,但是可以。

是的,今天的问题很好。

因此,在这本书中,我只是要求读取Excel来获得第一行。但是实际上我们可以将其更改为遍历Excel文件中的每一行,因此现在此块成为一个循环。这是另一个示例,您不必知道什么是循环,如何设置循环以及如何循环遍历结构。我们对它进行了某种内建,因此,如果您有一个包含100行的数据集,那么现在该数据集将触发那一侧的一切,对于Excel文件中的每一行,只需记住注销即可,然后再重做一次。

是!

是的,因此,我的意思是,您可以肯定地查看屏幕上捕获的各个元素,其中有一个选项卡,您可以看到每个元素,就像可以看到所有数据源和自定义构建块一样,我想您可以右键单击说,好吧,这实际上不是我的笑话,这实际上是发生了。不,我不会更新关键。我想也许出于某种奇怪的原因,它只是在自定义的构建块显示中使用了,然后您可以深入其中,重新获得元素确实很容易,因为也许您可以在这里有所了解,比如说我想在这里捕获该登录按钮。假设我已经在这里,由于某些原因此按钮已更改,因此我需要维护此测试用例。只是说捕获一个新元素,然后单击完成即可。您不必更新XPath或CSS选择器,也不必更新任何其他类型的东西,在进行维护时,它仍然是可见的。

哦,不,是的。我是说,例如,图像和文本识别是一种使屏幕上发生的任何事情自动化的方法,但是显然文本识别不是100%,是逗号,是点,那是什么?因此,我们尝试使我们的算法尽可能地好,但是,当您使用Citrix时,肯定会碰上这种事情,所以您必须对此保持聪明。在网站上,我们将所有这些都建立在开源Selenium框架的基础上,该框架允许我们在云服务中运行测试用例,例如浏览器堆栈和源实验室以及您自己的Selenium网格(如果有)。但是IE支持始终是一个问题,IE应该早已被杀死,甚至我认为微软也是如此。 硒对IE的支持很差,这意味着它对我们来说也很难,无论我们尝试在其上添加许多替代方法。

抱歉,有人在这里没有看到我的任何疑问吗?没有?是的,一个。

我们能够并行化同时运行的东西吗?是的,因此,当我们以Selenium模式运行时,例如,您可以使用Selenium网格将它们并行化,您可以将其安装在同一台计算机上。我也可以只在我的工作室运行2个案例,单击“播放”,转到另一个,然后单击“播放”。当您使用真正的鼠标和键盘驱动程序时,一次只能卡住一个。您将必须拥有一些虚拟机并安装一个一次性代理才能在此处进行。”

阿斯克·丹宁
阿斯克·丹宁
LEAPWORK的内容营销经理

相关文章

如何克服挑战

随着越来越多的企业在网络上或转移到网络上,很少会看到新的桌面应用程序版本。但是事实仍然存在-许多公司依靠复杂的桌面应用程序,Web应用程序和旧式系统来执行关键业务流程。

测试自动化中的AI:2021年您将遇到的4种AI

人工智能再次被视为来年的关键技术趋势。但这对测试自动化意味着什么?在这篇文章中,我们将分解关键术语并解释质量保证如何在2021年及以后的时间里从这些技术中受益。

如何使用无代码硒自动化移动Web测试

在持续的大流行中,随着实体店的关闭,网站,尤其是电子商务网站,比以往任何时候都必须更加专注于在线创建优质的客户体验。这就需要更快的测试和新的网站功能。