Web测试自动化

简介:

代码示例:

  public void test1() {

  //打开网站

  selenium.open("http://xxx.xxx.xxx/yyy");

  //通过Xpath 找到页面中的某个DOM对象

  selenium.select("xpath=//SELECT[@name='SBBUSYO']", "index=1");

  //模拟点击、输入等页面动作

  selenium.click("xpath=//input[@type='button']");

  //等待页面加载

  selenium.waitForPageToLoad("2000");

  //断言验证是否正确转向标题为“welcome”的页面

  assertEquals(selenium.getTitle(), "Welcome");

  }

  代码会启动IE或者firefox执行,这样就将单元测试可以覆盖到了开发的全部环节。我们公司现在使用的LoadRunner是协议级的测试,通过对get\post协议的分析进行测试。

  Selenium 是DOM级的测试,通过Xpath 寻找页面标签,验证是否实现了希望的功能。Selenium支持js,和多浏览器,所以还可以用于测试浏览器兼容性。

百度进行web自动化测试的一些相关经验:

  1. 通过一些自己写好的框架,加载.xls 文件数据导入测试用例的数据。对于一些需要反复回归测试的测试用例,测试人员只需要用Excel填写测试数据就可以。

  2. 测试人员更专注于业务、流程比较复杂的用例,简单的业务可以自动化测试。

  3. Web自动化测试并不是为了找到bug,而是作为系统的一个安全网和防护栏,保证代码的变动不会造成基础和核心模块出现问题。

  4. Web自动化测试只能应用适合的场景,很多页面还是需要人工测试。以百度目前的经验,大概也只有20-30%的web可以进行自动化测试。所以需要精心挑选和设计测试用例。

  5. 测试人员最好也拥有编写代码的能力。

  TDD 测试驱动开发

  1. 测试驱动开发:写代码前先写测试。

  2. 如何切入TDD?:从上到下写代码。即写Web测试>Jsp页面>Action测试>Action实现>service测试>service实现……

  3. 通过测试和上层方法进行驱动开发。比如你写Action测试时发现需要跳转首页的方法,就驱动在Action建立toIndex()方法。在Action发现你需要Service ,就建立Service对象,利用IDE的辅助提示功能,快速的进行驱动开发。

  4. 随时重构,包括Test的代码。如果感觉代码有bed smell就马上重构。

  5. 对于暂时没有实现的或者无法实现的,通过Mock的方式实现。

  6. Web测试可以先写空业务场景,暂不实现,因为Web测试需要完整功能开发完毕并进行部署和服务启动,并且耗时也比较长。

  7. 测试用例是一种文档,测试方法名称以表达测试目的为第一目标。演示的时候讲师经常起了这样的方法名:Public void testShowMoreDetailWhenFrendListOver5(){}  //当好友列表大于5个时显示"show more"


本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

目录
相关文章
|
2月前
|
JavaScript 前端开发 测试技术
使用Selenium执行JavaScript脚本:探索Web自动化的新领域
本文介绍了如何在Selenium中使用JavaScript解决自动化测试中的复杂问题。Selenium的`execute_script`函数用于同步执行JS,例如滑动页面、操作时间控件等。在滑动操作示例中,通过JS将页面滚动到底部,点击下一页并获取页面信息。对于只读时间控件,利用JS去除readonly属性并设置新日期。使用JS扩展了Selenium的功能,提高了测试效率和精准度,适用于各种自动化测试场景。
49 1
|
2月前
|
测试技术
现代软件测试中的自动化工具与挑战
传统软件测试面临着越来越复杂的系统架构和不断增长的测试需求,自动化测试工具应运而生。本文将探讨现代软件测试中自动化工具的应用和挑战,深入分析其优势与局限性,为软件测试领域的发展提供思路和启示。
|
2月前
|
敏捷开发 分布式计算 测试技术
深入理解软件测试中的自动化框架选择与优化策略
【2月更文挑战第29天】 在软件开发的生命周期中,测试环节扮演着至关重要的角色。随着敏捷开发和持续集成的普及,自动化测试成为确保软件质量和加快产品上市速度的关键手段。本文将探讨在构建自动化测试框架时面临的挑战,分析不同类型自动化框架的特点及其适用场景,并提出一系列优化策略,旨在帮助测试工程师提高测试效率,确保测试结果的准确性。
24 0
|
2月前
|
安全 测试技术
现代软件测试中的自动化技术应用及挑战
在当今数字化时代,软件测试的重要性日益凸显。本文探讨了现代软件测试中自动化技术的应用现状和挑战,分析了自动化测试在提高效率、降低成本、增强可靠性等方面的优势,同时也提出了自动化测试所面临的挑战和解决方案。
|
2月前
|
jenkins 测试技术 持续交付
现代软件测试中的自动化工具与挑战
随着软件开发领域的不断发展,自动化测试工具在测试过程中扮演着越来越重要的角色。本文将探讨现代软件测试中自动化工具的应用及面临的挑战,旨在帮助开发人员和测试人员更好地理解和应对自动化测试中的问题。
|
2天前
|
机器学习/深度学习 人工智能 算法
深入分析自动化测试中AI驱动的测试用例生成技术
【4月更文挑战第29天】随着人工智能技术的不断发展,其在软件测试领域的应用也越来越广泛。本文主要探讨了AI驱动的测试用例生成技术在自动化测试中的应用,以及其对提高测试效率和质量的影响。通过对现有技术的深入分析和实例演示,我们展示了AI如何通过学习和理解软件行为来自动生成有效的测试用例,从而减少人工编写测试用例的工作量,提高测试覆盖率,降低错误检测的成本。
|
4天前
|
jenkins 测试技术 持续交付
深入探索软件测试中的持续集成与自动化测试实践
【4月更文挑战第27天】 在当今软件开发的快速迭代过程中,持续集成(CI)和自动化测试已成为确保代码质量和加快交付速度的关键因素。本文将探讨如何通过实施持续集成流程,并结合自动化测试策略来优化软件测试工作。我们将分析持续集成的原理、自动化测试的最佳实践以及如何将这些方法应用于实际项目中,旨在为读者提供一套完整的解决方案,以提高软件项目的效率和质量。
11 3
|
9天前
|
XML Web App开发 测试技术
python的Web自动化测试
【4月更文挑战第16天】Python在Web自动化测试中广泛应用,借助Selenium(支持多浏览器交互)、BeautifulSoup(解析HTML/XML)、Requests(发送HTTP请求)和Unittest(测试框架)等工具。测试步骤包括环境搭建、编写测试用例、初始化浏览器、访问页面、操作元素、验证结果、关闭浏览器及运行报告。注意浏览器兼容性、动态内容处理和错误处理。这些组合能提升测试效率和质量。
13 6
|
14天前
|
测试技术 Python
Python 的自动化测试:什么是单元测试和集成测试?在 Python 中如何进行自动化测试?
【4月更文挑战第17天】本文介绍了软件测试中的单元测试和集成测试。单元测试针对单个函数或方法,确保其功能正确;集成测试则检验多个单元交互是否正常。Python 自带的 unittest 模块提供自动化测试框架,示例代码展示了如何创建测试类及测试方法,通过断言验证字符串方法的行为。
10 1
|
16天前
|
测试技术 数据库 开发者
Django自动化测试入门:单元测试与集成测试
【4月更文挑战第15天】本文介绍了Django的自动化测试,包括单元测试和集成测试。单元测试专注于单个视图、模型等组件的正确性,而集成测试则测试组件间的交互。Django测试框架提供`TestCase`和`Client`进行单元和集成测试。通过编写测试,开发者能确保代码质量、稳定性和应用的正确协同工作。运行测试使用`python manage.py test`命令,建议将其纳入日常开发流程。