自动化测试中的前后台交互

简介:

由于最近一直比较忙,就没有更新博客。时间长了,一些领悟不记录下来就有些遗忘。闲话少说,今天来更新一篇关于自动化测试中的前后台交互方面的个人心得。

  在自动化测试中,不论采用什么测试框架,基本的思路都是前台由测试人员填写测试用例,然后生成测试脚本,然后使用测试工具去run这些脚本。而后台呢,往往是由测试开发人员根据被测对象的需要自己编写程序。至于测试方法,可以将前后台分离进行测试,比如说,对后台进行测试,然后判断后台是否满足测试需求。如果前台测试的目标不需要调用数据,直接run脚本就OK了,如果前台需要后台数据,可以在后台准备好数据,可以将数据放在log日志中,前台直接调用log日志,不需要在后台执行后台程序。这样就保证了前后台测试的分离,便于测试维护,例如前台如果经常变动的时候,只需要根据前台变动将相应的后台数据准备在前台要调用的数据池中。而由于后台程序一般的变动会相应的较少,这样不需要每次更改前台界面都要把后台测试程序进行修改。这种方法也是上次谷歌中国的测试总监推荐的方法。

  目前的实践还没有做到完全的前后台测试分离,只是在一步步的尝试,希望距离前后台分离的目的越来越近。对于前后台的交互,目前我的做法是。前台web界面测试由测试人员根据测试对象填写由我们测试开发提供的测试用例模板,然后生成自动化测试脚本。前台界面的一些判断可以直接得到,例如界面的一些改动,界面元素的缺失等。而对于后台的一些验证,目前并没有在后台单独的进行测试。而是由前台的脚本通过调用cgi,将测试预期传给后台,后台cgi函数处理预期值,然后跟实际值进行比对,然后将比对的结果再传给前台由前台处理。举个例子,比如说我的被测对象是一个具有web界面,功能是对交换机进行端口切换的系统。这里,如果我对端口切换这个功能要进行自动化测试设计。那么我的测试工具前台就应该具有驱动界面操作的测试环境,测试后台是一些cgi程序,当前台执行的脚本将端口切换的预期值通过cgi传递给后台时,后台测试程序首先会telnet交换机,获得交换机的当前端口信息,然后与前台传递的预期值进行判断,将判断结果返回给前台日志。

  由此可见,与前后台完全分离的测试方法相比,目前我们的做法优点是不需要独立的后台测试,而是从系统测试的角度来判断系统功能。如果要做前后台测试分离,那么前台测试就只对显示的正确与否进行测试,可以在后台数据池准备相应的数据,让前台去访问这些数据然后输出界面,观察输出的数据是否是数据池中的。而后台就对功能进行验证,将功能的结果放于数据池中。这方面目前还没有做尝试,有兴趣的话可以试试。

====================================分割线================================

最新内容请见作者的GitHub页:http://qaseven.github.io/

目录
相关文章
|
7月前
|
测试技术 UED Python
App自动化测试:高级控件交互技巧
Appium 的 Actions 类支持在移动应用自动化测试中模拟用户手势,如滑动、长按等,增强交互性测试。ActionChains 是 Selenium 的概念,用于网页交互,而 Actions 专注于移动端。在Python中,通过ActionChains和W3C Actions可以定义手势路径,例如在手势解锁场景中,先点击设置,然后定义触点移动路径执行滑动解锁,最后验证解锁后的元素状态。此功能对于确保应用在复杂交互下的稳定性至关重要。
Magisk模块:自动墓碑后台v1.7.1(测试版)
Magisk模块:自动墓碑后台v1.7.1(测试版)
2450 0
|
7月前
|
测试技术 API Python
Appium控件交互策略:优化自动化测试效率的关键方法
该文介绍了如何使用Selenium与APP进行交互,包括点击、输入和状态判断等操作。例如,通过element.click()点击控件,element.send_keys()输入文本,以及element.is_displayed()检查元素是否可见。还展示了如何获取元素属性,如resource-id、text和class,并提供了Python代码示例来定位并操作APP元素,如滑动条的显示、可点击性检测及点击滑动条中心位置。在编写测试脚本时,应注意元素定位和状态验证以确保测试稳定性。
|
2月前
|
API 数据安全/隐私保护 开发者
使用MechanicalSoup进行网页自动化交互
使用MechanicalSoup进行网页自动化交互
42 2
|
4月前
|
Web App开发 敏捷开发 测试技术
自动化测试框架的设计与实现探索操作系统的心脏:内核与用户空间的交互
【8月更文挑战第26天】本文旨在探讨自动化测试框架的设计原则、核心组件和实现方法。通过分析自动化测试的优势,我们深入讨论了框架设计的关键考虑因素,包括模块化、可重用性、可扩展性和易维护性。文章还介绍了如何利用流行的测试工具和编程语言来实现一个高效的自动化测试框架,并通过实例展示了框架的应用。
|
7月前
|
安全 物联网 测试技术
构建未来:Android与IoT设备的无缝交互深入探索软件自动化测试的未来趋势
【5月更文挑战第30天】在物联网(IoT)技术快速发展的当下,Android系统因其开放性和广泛的用户基础成为了连接智能设备的首选平台。本文将探讨如何通过现代Android开发技术实现智能手机与IoT设备的高效、稳定连接,并分析其中的挑战和解决方案。我们将深入挖掘Android系统的底层通信机制,提出创新的交互模式,并通过实例演示如何在Android应用中集成IoT控制功能,旨在为开发者提供一套可行的指导方案,促进IoT生态系统的进一步发展。
|
6月前
|
Ubuntu 关系型数据库 MySQL
expect自动交互脚本:简化你的自动化任务
`expect` 是Linux自动化神器,用于模拟键盘输入与交互式应用自动交互,常用于自动登录服务器、执行命令。安装 `expect`(CentOS: `yum -y install tcl expect`, Ubuntu: `apt-get -y install expect`) 后,编写脚本如SSH登录示例,自动发送密码和命令。通过结合shell命令,`expect` 可实现复杂任务,如获取IP、登录MySQL。支持多服务器管理,根据用户输入选择登录。学习 `expect` 提升自动化效率!
351 0
|
7月前
|
JavaScript 前端开发 测试技术
MechanicalSoup,一个非常实用的 Python 自动化浏览器交互工具库!
MechanicalSoup,一个非常实用的 Python 自动化浏览器交互工具库!
79 9
|
7月前
|
NoSQL Shell 数据安全/隐私保护
搞定shell脚本expect自动化交互输入密码等就是这么简单
搞定shell脚本expect自动化交互输入密码等就是这么简单
521 0
|
Web App开发 Java Apache
如何在Selenium自动化Chrome浏览器中模拟用户行为和交互?
Selenium是一个用于自动化Web应用程序测试的工具,它可以模拟真实的用户在浏览器中进行各种操作,如点击、输入、滚动等。Selenium支持多种浏览器,如Chrome、Firefox、Edge等,但是每种浏览器都需要相应的驱动程序才能与Selenium进行通信。本文将介绍如何在Selenium中使用Chrome浏览器,并且设置代理服务器来避免被目标网站识别。
487 0
如何在Selenium自动化Chrome浏览器中模拟用户行为和交互?