测试方案_自动化测试效率提升方案

本文探讨了提高自动化测试效率的方案,包括自动化测试脚本并行运行、自定义类库的使用和测试报告的自动发送。重点介绍了通过Selenium Grid和Appium Server实现Web端和移动端的并行测试,并使用TestNG框架进行suite、test、class、method级别的并行执行,建议采用class级别并行以优化资源分配。
摘要由CSDN通过智能技术生成

本文注重自动化测试用例并行方案的设计,忽略了具体代码实现的细节。代码实现细节大家利用网络资源可以轻松搜索到相关内容!

目前业界主流提升测试效率的方案如下:

  • 自动化测试脚本并行运行;
  • 编写自定义类库解决自动化api无法提供的功能或者对工具提供的api进行二次封装,核心就是增强脚本健壮性;
  • 自动化脚本执行完毕后,自动发送测试报告给相关责任人,使其第一时间了解自动化测试结果;
4ed0e0f4aff19502e5986b49918dd2bb.png

自动化测试提升

关于自动化测试中编写脚本和结果确认的效率提升,往往都需要大量的编码工作,核心就是两点:

1.增强测试脚本的稳定性,尽量避免因为自动化测试脚本的质量问题导致自动化测试执行失败。

2.自动化测试结束后,能够在第一时间,通知相关责任人,以便快速做出决策。

在这里我重点介绍一下自动化测试脚本并行运行方案:

  • 多端并行

web端,本质通过使用Selenium Grid实现:

d9a1843891cd14c2eb7297216eb5a8fb.png

多浏览器

移动端,本质通过启动多个Appium Server,每个Appium server连接一个设备。可以在同一台机器上启动多个Appium Server(每个server有不同的端口)。可以使用Selenium Gird控制appium server。

d0d2c515a1c0affb9a640ef38829f604.png

多手机终端

  • 脚本并行

有了多端并行运行的技术方案,那么下一个问题就是让我们的测试用例并发的在多端中运行。这里以Java的TestNG为例作为讲解,TestNG是一个测试框架,其灵感来自JUnit和NUnit,但引入了一些新的功能,使其功能更强大,使用更方便。TestNG表示下一代(Next Generation)。 TestNG类似于JUnit(特别是JUnit 4),但它不是JUnit框架的展。TestNG在处理用例并发方面较Junit4优势明显。通常,在TestNG的执行中,测试的级别由上至下可以分为suite -> test -> class -> method,箭头的左边元素跟右边元素的关系是一对多的包含关系。这里的test指的是testng.xml中的test tag,而不是测试类里的一个 Test标签

Suite并行

一般情况下,一个testng.xml只包含一个suite。如果想起多个线程执行不同的suite,官方给出的方法是:通过命令行的方式来指定线程池的容量。

java org.testng.TestNG -suitethreadpoolsize 3 testng1.xml testng2.xml testng3.xml

即可通过三个线程来分别执行testng1.xml、testng2.xml、testng3.xml。

实际上这种情况在实际中应用地并不多见,我们的测试用例往往放在一个suite中,如果真需要执行不同的suite,往往也是在不同的环境中去执行,届时也自然而然会做一些其他的配置(如环境变量)更改,会有不同的进程去执行。因此这种方式不多赘述。

test, class, method并行

test,class,method级别的并发,可以通过在testng.xml中的suite tag下设置,如:

它们的共同点都是最多起5个线程去同时执行不同的用例。

它们的区别如下:

  1. tests级别:不同test tag下的用例可以在不同的线程执行,相同test tag下的用例只能在同一个线程中执行。
  2. classs级别:不同class tag下的用例可以在不同的线程执行,相同class tag下的用例只能在同一个线程中执行。
  3. methods级别:所有用例都可以在不同的线程去执行。

这里推荐class级别的并行。因为这种方案最容易实现不同的class分配到不同的selenium grid中运行测试用例的并行需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值