文章目录
最近ChatGpt大火,基础体验之后感觉人工智能语言处理这块发展真的是迅猛,同时最近做了一些web项目,需要进行一定的自动化测试,就在思考有没有可能AI和测试结合产生一些便利的测试方式。与测试的同事交流发现国内有一款叫做龙测AI-TestOps云平台的测试工具已经完成了一次融合,赶紧上手体验了一把,与大家一起分享一下感受。
最近几年人工智能有了许多我们可以感受到的发展,比如微信电脑版的OCR、许多智能仓储上的辅助定位、对图片元素的识别等,同时最近爆火的ChatGpt给我们带来了巨大的冲击,可以说最近几年是人工智能大爆发的时代,同时其与各行各业的融合也成为一个新趋势。

传统自动化测试工具在web端常用的就时Selenium,但其需要一定的使用门槛,处理好页面元素的定位、获取、模拟真实的使用环境,都需要大量的时间,通常以自动化脚本的形式完成以上工作。当页面元素不易定位,或者当页面元素层级关系发生变化时,需要修改脚本,这对测试工具带来了巨大的挑战,同时为了生成一份测试报告,需要我们自己进行报告逻辑设计,经常因为一些变动加班到头秃。

龙测AI-TestOps云平台是基于ARM的TestOps云平台解决方案,能够快速、高效、低成本地完成.EXE应用、Web应用、iOS、Android、小程序、混合应用的UI自动化测试。其中ARM是AI+Robot+Model的缩写,其含义为利用AI技术生成测试流程图、同时翻译给机器从而能够稳定进行测试。
这个工具由于AI的加成,出现了很多特色功能,如视觉定位、文字识别定位、自然语言流程创建、视频AI提取流程等能够简化测试代价的功能,可以点击官网了解一下。下面我们也会进行介绍。
为了最直观的感受软件的使用效果,我们按照标准测试流程一起感受一下。当然需要提前注册登录,可以先点击官网进行注册。

我们会有许多测试任务,创建项目可以让我们更好的区分不同功能的测试。进入官网后点击右上角的创建项目,然后输入基本的项目信息,此处我们以Bing搜索”石臻臻的杂货铺“为例,就创建如下的web项目。


进入项目内后,我们需要进入用例、新建流程图、选择一个设备进行流程图的录制,我们这里以测试第一个链接是否为我的博客为例,进行流程图书写。



然后我们需要在任务面板选择流程调用我们刚才的用例进行测试,其中设备的选择部分,平台支持私有设备只需要简单的下载软件安装就可以使用了。


我们可以查看测试的实时进度,同时我们可以生成一份测试报告,支持流程图、测试报告、excel的导出,方便我们完成测试文档的撰写。

在平台定位的时候支持对视觉元素进行定位,可以很方便的解决Selenium在网页元素发生变动难以使用xpath定位的问题。

有些场景我们需要的是对特定内容的定位,在UI发生变动的时候,我们利用OCR就可以更加精准的定位到我们需要的元素,比如定位力扣的刷题数目。

通过我们人类的自然语言,描述整个测试流程,就可以得到一张完整的测试流程图,可以将我们文档中书写的测试流程翻译成为流程图,现在识别的是特定的关键词,未来如果能够类似于ChatGpt理解我们语言的意图自动生成所有流程将会更加梦幻。

在我们刚才的使用例子中已经使用了这部分的功能,通过监控我们的动作就能够生成测试流程图,是一个学习之后立刻输出的过程,极大降低自动化测试的工作量。

通过AI对录制的视频进行解析,自动生成流程图,当客户发来一份问题复现视频的时候,我们可以直接进行转换,快速生成测试用例,完成问题定位与复现。提高工作效率和问题解决能力以及最重要的客户满意度。
这次我们一起感受了一下AI带给自动化测试行业的颠覆性改变,对我们测试工作带来了巨大的效率提升,同时针对页面发生动态变化后的测试适应性更强,极大降低了测试人员的门槛。
同时视频解析能够增强对用户问题反馈的相应能力,极大的提升客户的满意度,可谓是创造了自动化测试新纪元。没有体验过的小伙伴一定要 点击体验 一下。
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
我正在编写一个包含C扩展的gem。通常当我写一个gem时,我会遵循TDD的过程,我会写一个失败的规范,然后处理代码直到它通过,等等......在“ext/mygem/mygem.c”中我的C扩展和在gemspec的“扩展”中配置的有效extconf.rb,如何运行我的规范并仍然加载我的C扩展?当我更改C代码时,我需要采取哪些步骤来重新编译代码?这可能是个愚蠢的问题,但是从我的gem的开发源代码树中输入“bundleinstall”不会构建任何native扩展。当我手动运行rubyext/mygem/extconf.rb时,我确实得到了一个Makefile(在整个项目的根目录中),然后当
我有一个围绕一些对象的包装类,我想将这些对象用作散列中的键。包装对象和解包装对象应映射到相同的键。一个简单的例子是这样的:classAattr_reader:xdefinitialize(inner)@inner=innerenddefx;@inner.x;enddef==(other)@inner.x==other.xendenda=A.new(o)#oisjustanyobjectthatallowso.xb=A.new(o)h={a=>5}ph[a]#5ph[b]#nil,shouldbe5ph[o]#nil,shouldbe5我试过==、===、eq?并散列所有无济于事。
Arel3.0.2提供了两个类来指定连接类型:Arel::Nodes::InnerJoin和Arel::Nodes::OuterJoin并使用InnerJoin默认。foo=Arel::Table.new('foo')bar=Arel::Table.new('bar')foo.join(bar,Arel::Nodes::InnerJoin)#innerfoo.join(bar,Arel::Nodes::OuterJoin)#outerfoo.join(bar,???)#left如果要生成左连接,如何连接两个表? 最佳答案 你可以使用
我有一些Ruby代码,如下所示:Something.createdo|x|x.foo=barend我想编写一个测试,它使用double代替block参数x,这样我就可以调用:x_double.should_receive(:foo).with("whatever").这可能吗? 最佳答案 specify'something'dox=doublex.should_receive(:foo=).with("whatever")Something.should_receive(:create).and_yield(x)#callthere
Sinatra新手;我正在运行一些rspec测试,但在日志中收到了一堆不需要的噪音。如何消除日志中过多的噪音?我仔细检查了环境是否设置为:test,这意味着记录器级别应设置为WARN而不是DEBUG。spec_helper:require"./app"require"sinatra"require"rspec"require"rack/test"require"database_cleaner"require"factory_girl"set:environment,:testFactoryGirl.definition_file_paths=%w{./factories./test/
我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test
我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("
我已经构建了一些serverspec代码来在多个主机上运行一组测试。问题是当任何测试失败时,测试会在当前主机停止。即使测试失败,我也希望它继续在所有主机上运行。Rakefile:namespace:specdotask:all=>hosts.map{|h|'spec:'+h.split('.')[0]}hosts.eachdo|host|begindesc"Runserverspecto#{host}"RSpec::Core::RakeTask.new(host)do|t|ENV['TARGET_HOST']=hostt.pattern="spec/cfengine3/*_spec.r
我在app/helpers/sessions_helper.rb中有一个帮助程序文件,其中包含一个方法my_preference,它返回当前登录用户的首选项。我想在集成测试中访问该方法。例如,这样我就可以在测试中使用getuser_path(my_preference)。在其他帖子中,我读到这可以通过在测试文件中包含requiresessions_helper来实现,但我仍然收到错误NameError:undefinedlocalvariableormethod'my_preference'.我做错了什么?require'test_helper'require'sessions_hel