电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Selenium自动化测试用例设计注意事项

11页
  • 卖家[上传人]:cl****1
  • 文档编号:509854445
  • 上传时间:2022-10-28
  • 文档格式:DOC
  • 文档大小:70.50KB
  • / 11 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、-Selenium自动化测试用例设计考前须知l UI元素映射l 元素验证l 等待加载l 日志记录l 结果收集Selenium自动化测试用例设计考前须知一自动化测试设计简介我们在本章提供的信息,对自动化测试领域的新人和经历丰富的老手都是有用的。本篇中描述最常见的自动化测试类型,还描述了可以增强您的自动化测试套件可维护性和扩展性的“设计模式。还没有使用这些技术的、有经历的自动化测试工程师会对这些技术更加感兴趣。测试类型您应该测试应用程序中的哪些局部?这取决于您的工程的各种影响因素:用户的期望,时间期限,工程经理设置的优先事项等等。但是,一旦工程边界定义完成,作为测试工程师,你必须做出要测试什么的决定。为了对Web应用的测试类型进展分类,我们在这里创立了一些术语。这些术语并不意味着标准,但是这些概念对web应用测试来说非常典型。 测试静态容静态容测试是最简单的测试,用于验证静态的、不变化的UI元素的存在性。例如: 每个页面都有其预期的页面标题?这可以用来验证指向一个预期的页面。 应用程序的主页包含一个应该在页面顶部的图片吗? 的每一个页面是否都包含一个页脚区域来显示公司的联系方式,隐私政策,

      2、以及商标信息? 每一页的标题文本都使用的标签吗?每个页面有正确的头部文本吗?您可能需要或也可能不需要对页面容进展自动化测试。如果您的网页容是不易受到影响手工对容进展测试就足够了。如果,例如您的应用文件的位置被移动,容测试就非常有价值。 测试Web站点的一个常见错误为的失效的或指向无效页。测试涉及点各个和验证预期的页面是否存在。如果静态不经常更改,手动测试就足够。但是,如果你的网页设计师经常改变,或者文件不时被重定向,测试应该实现自动化。功能测试在您的应用程序中,需要测试应用的特定功能,需要一些类型的用户输入,并返回*种类型的结果。通常一个功能测试将涉及多个页面,一个基于表单的输入页面,其中包含假设干输入字段、提交“和取消“操作,以及一个或多个响应页面。用户输入可以通过文本输入域,复选框,下拉列表,或任何其他的浏览器所支持的输入。功能测试通常是需要自动化测试的最复杂的测试类型,但也通常是最重要的。典型的测试是登录,注册账户,用户操作,设置变化,复杂的数据检索操作等等。功能测试通常对应着您的应用程序的描述应用特性或设计的使用场景。 测试动态元素通常一个网页元素都有一个唯一的标识符,用于唯一

      3、地定位该网页中的元素。通常情况下,唯一标识符用HTML标记的id属性或name属性来实现。这些标识符可以是一个静态的,即不变的、字符串常量。它们也可以是动态生产值,在每个页面实例上都是变化的。例如,有些Web效劳器可能在一个页面实例上命名所显示的文件为doc3861,并在其他页面实力上显示为doc6148,这取决于用户在检索的文档。验证文件是否存在的测试脚本,可能无法找到不变的识别码来定位该文件。通常情况下,具有变化的标识符的动态元素存在于基于用户操作的结果页面上,然而,显然这取决于Web应用程序。下面是一个例子。这是一个HTML标记的复选框,其ID (addForm:_ID74:_ID75:0:_ID79:0:checkBo*) 是一个动态生成的值。这个页面下次被翻开时,复选框的ID将可能是一个不同的值。 Aja*的测试Aja*是一种支持动态改变用户界面元素的技术。页面元素可以动态更改,但不需要浏览器重新载入页面,如动画,RSS源,其他实时数据更新等等。 Aja*有不计其数的更新网页上的元素的方法。但是了解AJA*的最简单的方式,可以这样想,在Aja*驱动的应用程序中,数据可以从应用

      4、效劳器检索,然后显示在页面上,而不需重新加载整个页面。只有一小局部的页面,或者只有元素本身被重新加载。验证结果 断言assert与验证verify什么时候使用断言命令,什么时候使用验证命令?这取决于你。差异在于在检查失败时,你想让测试程序做什么。你想让测试终止,还是想继续而只简单地记录检查失败?这需要权衡。如果您使用的断言,测试将在检查失败时停顿,并不运行任何后续的检查。有时候,也许是经常的,这是你想要的。如果测试失败,你会立刻知道测试没有通过。TestNG和JUnit等测试引擎提供在开发测试脚本时常用的插件,可以方便地标记那些测试为失败的测试。优点:你可以直截了当地看到检查是否通过。缺点:当检查失败,后续的检查不会被执行,无法收集那些检查的结果状态。相比之下,验证命令将不会终止测试。如果您的测试只使用验证,可以得到保证是假设没有意外的异常测试会被执行完毕,而不管是否发现缺陷。缺点:你必须做更多的工作,以检查您的测试结果。也就是说,你不会从TestNG和JUnit得到反应。您将需要在打印输出控制台或日志文件中查看结果。每次运行测试,你都需要花时间去查看结果输出。如果您运行的是数以百计的

      5、测试,每个都有它自己的日志,这将消耗时间。及时得到反应会更适宜,因此断言通常比验证更常使用。 权衡:assertTe*tPresent,assertElementPresent和assertTe*t您现在应该熟悉这些命令及使用它们的机制。如果没有,请参阅相关章节。在构建你的测试时,你需要决定 只检查在页面上的文本吗?verify/ assertTe*tPresent 只检查是否在页面上存在HTML元素吗?即文本,图像,或其他没被检查的容,只要和HTML标记相关。verify/ assertElementPresent 需要同时检查元素和它的文本容?verify/ assertTe*t没有正确的答案。这取决于您的测试要求。如有疑问,请使用assertTe*t,因为这是最严格的类型检查点。您可以随后更改它,但至少你不会遗漏任何潜在的故障。Verify/ assertTe*t是最特殊的测试类型。HTML元素标签或文本的不符合都会导致测试失败。也许你的网页设计师经常改变页面面,而你不希望在他们改变页面时,你的测试失败,因为这是期望中的周期性变更。但是,假设你仍然需要检查的页面上的东西,如段落、

      6、标题文本或图像。在这种情况下,您可以使用 verify/ assertElementPresent。这将确保一个特定类型的元素存在如果使用*Path,可以确保它相对页面其他对象的存在。但你不关心的容是什么,你只关心*个特定的元素,比方说,一个图片在一个特定的位置。随着时间的推移和经历的积累,如何决定使用还是非常简单的。定位元素的策略 选择一个定位策略有多种方式选择页面上的对象。但面对这些定位类型,如何权衡呢?回想一下,我们定位一个对象的方式: 元素的ID 元素的name属性 *Path语句 通过一个的文本 文档对象模型DOM使用元素的ID或name定位符,在测试执行方面来说,是最有效的方式。也让你的测试代码更具可读性,如果在页面源代码中的ID或name属性被友好命名的话。*Path语句需要更长的时间来处理,因为浏览器必须运行它的*Path处理器。在Internet E*plorer 7,*Path出了名的慢。使用的文本进展定位是很方便的,并运行起来也不错。这种技术只适用于。另外,如果文本很可能会经常改变,使用标签定位元素将是更好的选择。不过,有时你必须使用*Path定位。如果一个页面元

      7、素没有一个ID或者name属性,除了*Path定位没得选择。DOM定位器不再普遍使用,因为,*Path可以做得更好。DOM定位器只简单地为遗留测试而存在。相对使用ID或name属性定位,使用*Path进展定位有一个独特的优势。使用*PathDOM中,你可以找到页面上相对于其他对象的一个对象。例如,如果有一个必须存在标签里的第二个段落,您可以使用*Path进展定位。使用ID和name属性定位,你只能得出它们存在指定的页面,而不知具体的页面位置。如果你必须测试显示公司标志的图像出现在页面顶部的头局部,*Path定位可能是更好的选择。 定位动态元素正如前面测试类型局部所述,动态元素的页面标识在不同的页面实例上市不同的。例如,View Archived Allocation Events这个HTML锚标记定义了一个ID属性为“adminHomeForm按钮。和大局部HTML标签相比,这是一个相当复杂的锚标记,但它仍然是一个静态标签。每次页面被浏览器加载时,HTML将保持不变。它的ID在所有的页面实例里保持不变,也就是说,页面被展示时,这个UI元素总是有同样的标识符。所以,点击此按钮的测试脚本S

      8、elenium Server如下所示:selenium.click(adminHomeForm);然而,你的应用程序,可能生成动态的HTML标识符。在不同的网页实例中,标识符发生改变。例如,一个动态的页面的HTML元素可能会是这个样子:这是一个复选框,id和name属性都是addForm:_ID74:_ID75:0:_ID79:0:checkBo*。在这种情况下,使用标准的定位,测试脚本应该是这样子的:selenium.click(addForm:_ID74:_ID75:0:_ID79:0:checkBo*);对于动态生成的标识符,这种做法行不通。下一次页面加载时,标识符将是一个不同的值,执行上述脚本会遇到“element not found错误。要更正该问题,一个简单的解决方法是使用*Path定位替代ID定位器。因此,对于该复选框,可以简单地使用selenium.click(/input);或者,如果它不是在页面上的第一个文本输入域,尝试一个更详细的*Path语句。selenium.click(/input3);或selenium.click(/div/p2/input3);但是,如果你确实需要使用ID来定位元素,可以换一种不同的解决方案。您可以先捕捉到的这个ID,然后再使用它,例如:String checkbo*ids = selenium.getAllFields(); / Collect all input IDs on page. for(String checkbo*id:checkbo*ids) if(checkbo*id.contains(addForm) selenium.click(e*pectedTe*t); 如果页面上只有一个复选框的ID文本为“e*pectedTe*t时,这种方法工作。

      《Selenium自动化测试用例设计注意事项》由会员cl****1分享,可在线阅读,更多相关《Selenium自动化测试用例设计注意事项》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    监控施工 信息化课堂中的合作学习结业作业七年级语文 发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.