论自动化测试中的xpath | 多语言测试最新案例

2023-10-17  龙测科技 

XPath(XML Path Language)是一门在XML文档中查找信息的语言。XPath是XML处理中非常重要的组成部分,能大大简化文档的解析和处理。它与XSLT、XPointer等标准一起被广泛应用于XML的解析处理。

一般情况下,xpath主要应用在以下几个方面。

测试Web应用程序的UI元素定位。(与Selenium结合在自动化测试中定位元素)通过xpath精确定位web页面元素,如按钮、文本、链接等,应用于UI自动化功能测试中元素的验收,

测试响应XML/HTML内容。通过XPath来解析响应回来的XML或HTML内容,以便从中提取需要的值来进行验证测试;

测试接口响应数据。(与Jenkins结合在持续集成中实现测试自动化)对于基于XML或JSON格式的接口响应,用XPath解析响应数据,获取需要的节点作为实际结果;

测试参数化和数据驱动。通过XPath来参数化测试数据,从外部XML文件中读取测试数据,实现数据驱动测试;

测试数据库。基于XML的数据库,可以直接用XPath在数据库中查询数据;

测试配置文件。用XPath在配置文件中查找需要的配置项等。

Xpath的优劣势

在软件测试中,xpath本身语法简单、语义清晰,学习和使用都比较简单,而且和许多语言和工具都有良好的集成支持,比如 Selenium、HTTPUnit等。Xpath的功能也很强大,可以编写灵活的表达式来定位元素,定位动态生成的内容,解析XML/HTML响应内容很方便。但是,xpath使用时间长会导致测试脚本难以维护,可读性比较差,并且在易用性上没有CSS选择器那样直观,需要对文档结构比较了解,xpath也有无法检测页面是否可见,有时候会定位到不可见的元素,解析复杂页面时效率比较低的问题。

xpath和selenium的完美结合

从自动化功能测试的角度来看,xpath和selenium能进行完美结合。XPath为Selenium提供了非常强大而便捷的元素定位和内容提取能力。二者高度契合,使得Selenium可以智能地与浏览器交互,完成自动化测试。因此,掌握XPath在Selenium中的用法是非常关键的。

XPath可以用于Selenium定位元素

在使用Selenium的WebDriver API编写测试脚本时,可以通过XPath来定位页面元素。这是Selenium中最常用的定位方式之一。

例如:driver.findElement(By.xpath(“//input[@id=’username’]”));

Selenium API支持XPath相关功能

Selenium提供了findElements、getText等方法,可以直接基于XPath进行元素定位和信息提取。

基于XPath的显式等待

Selenium的WebDriverWait可以配合XPath来实现智能等待,判断元素是否可见或可点击。

例如:wait.until(EC.element_to_be_clickable((By.XPATH, “//*[@id=’submit’]/“)));

通过JavaScript操作DOM

在Selenium中可以执行JavaScript代码,配合XPath来查找或修改DOM元素。

解析日志文件

测试生成的日志文件也常常是XML格式,可以使用XPath解析日志,获取执行结果等。

xpath应用实际案例

龙测科技最近服务了一家跨境电商。大家都知道跨境面对的第一个问题就是语言。软件测试工程师们在进行UI功能测试时,如何保证中文、英文、法文等多语言测试的准确性,这是一个难题。目前,我们了解到的市面上的解法大概有这么几个。

1.以xpath为主,确保文本位置不懂,控件显示,辅以UI自动化,断言图片是否正确

2.借助翻译平台,保证多语言被翻译,最后判断文案是否属于对应语种

3.凭借开发规范,对所有文字通过资源文件配置,最后通过静态代码扫描的方式实现多语言适自动化检测

我们使用的就是第一种方案,借助xpath的能力确保文本显示以及文本位置不偏移,再借助图片断言的方式判断文本显示的正确性。这个方案的准确性很高,但是需要AI成本投入,目前我们能做到中英文的完全自动化,但是其他语言还需要多多训练。

龙测科技专注于自动化功能测试,支持APP、Web、Linux、iOS、macOS等全端测试,通过录制回放的方式来进行自动化功能测试,大幅提高自动化测试覆盖率。

感兴趣的朋友们可以点击链接前往体验。

龙测AI-TestOPs云平台

97°/976 人阅读/0 条评论 发表评论

登录 后发表评论