Selenium 报表自动化测试——黑盒测试篇

本文介绍了使用Selenium进行黑盒测试报表功能的方法。面对页面参数组合数量庞大的问题,提出了数据驱动模式,通过维护参数配置文件,实现脚本通用、执行时间短且覆盖度高的自动化测试解决方案。内容包括测试思路、解决方案、测试流程图、用例代码以及随机测试和指定测试的方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

前言:

背景

需求

分析

解决思路

解决方案

测试流程图

实现的功能

用例代码

两种测试方式

随机测试

指定测试

总结


前言:

Selenium是一个广泛使用的自动化测试工具,用于Web应用程序的测试。它提供了一组功能强大的API,可以模拟用户在浏览器中的操作,如点击、输入、选择等。通过使用Selenium,测试人员可以自动执行各种测试用例,以验证Web应用程序的功能和用户体验。

在黑盒测试中,测试人员只关注应用程序的输入和输出,而不考虑内部的实现细节。这种测试方法可以模拟真实用户的行为,从而更全面地评估应用程序的功能和性能。

报表是许多Web应用程序中常见的功能之一,它用于展示和分析数据。在报表自动化测试中,测试人员使用Selenium来模拟用户在应用程序中生成和查看报表的操作。通过自动化测试,可以确保报表的正确性、可靠性和可用性。

背景

公司的 ERP 系统有很多报表页面,每个月都会有一两个报表的功能进行修改,页面查询条件很多,
功能测试的同事尽可能的穷举出各种参数组合去查询,但由于参数组合的数量太大,人工测试的用例只能算九牛一毛,
依然有大部分漏测的场景可能发现问题,上线之后被用户投诉。

基于这个背景,引入自动化测试,旨在通过程序穷举出各种查询场景自动进行测试,并记录各场景的测试结果。

需求

从背景中收集到以下需求:

  1. 页面上有很多查询条件
  2. 穷举查询条件的组合
  3. 记录各组合的测试结果

分析

先看看页面长什么样子。

由此页面我们可以得出参数的大致列表:

<aa></aa>
<bb></bb>
<cc></cc>
<dd></dd>
<ee></ee>
……

我们把这些参数进行组合,(此处省略 N 字。。。组合公式自行去查阅资料)可以得到以下数量
组合数量 = 2的参数个数次幂-1
假设页面有 3 个参数 aa,bb,cc,那么组合出来的参数为:{[aa], [bb], [cc], [aa,bb], [aa,cc], [bb,cc], [aa,bb,cc]}
如果页面有 10 个参数,则这些参数组合的数量为:2 的 10 次方-1 = 1023

但上面求出来的数量仅仅只是参数的值为固定数量的组合个数,但实际上某个参数的取值可能是以下情况:

<aa>value1,value2,value3</aa>
or
<aa>value1</aa>
or
<aa>value1,value2</aa>
or
……
我们可以得知

页面条件组合出来的数量无穷大!!!😤😤😤

解决思路

从实际场景出发,了解业务初衷

我们从上面的分析可以得出一个结论,这是一个看似无法完成的任务。怎么把一个理论上来说不可能完成
的任务,变成一个可行的解决方案,就需要我们对实际的业务进行分析了。

先说自动化面临的问题:

  1. 自动化用例量庞大。假设页面有 10 个参数,每个参数固定一个值,则有 1023 个组合
  2. 自动化用例耗时长。一个完整的页面输入参数点击查询的用例大概需要 5~10 秒的时间,再乘以以千为单位的用例个数。。。 不说其他,单这两项就够秒杀该功能不适合做自动化的。 怎么办呢?竟然正常的路走不通,那我们就想点非常规的路子。

咱们不妨抛开业务,想想什么自动化用例才是好用例:

  1. 脚本通用,一份脚本支持所有用例执行。😍
  2. 脚本执行时间短,最好分分钟跑完。☺
  3. 覆盖更多测试场景,这个当然是越多越好。👏

回到正题,竟然这个业务本身就非常特殊,我们就没有必要去遵循自动化用例的设计原则了,直接按照我们心目中的完美用例去实现。

  1. 脚本通用。我们可以写一份脚本,然后通过循环读取参数去页面查询。
  2. 执行时间。如此庞大的用例量自然无法通过人工来写的,我们就想办法通过程序去自动生成用例。
  3. 覆盖度高。从业务角度来设置查询场景,如:参数全设置查询,参数不设置查询,等各种场景。

解决方案

最终我们得出一个比较满意的测试解决方案:

  • 使用数据驱动模式,维护
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值