• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Perl 多进程技术在自动化测试中的应用

发布: 2011-1-26 09:21 | 作者: 不详 | 来源: 领测测试网采编 | 查看: 84次 | 进入软件测试论坛讨论

领测软件测试网

  Perl 多进程技术在自动化测试中的应用  软件测试

  本文内容包括:

  Perl 的多进程

  自动化测试场景介绍

  应用 Perl 多进程技术到自动化测试脚本

  小结

  参考资料

  在 IT 产品系统测试的自动化项目中,经常有并行处理多个子任务的需求,为了提高测试效率,就需要用到多进程或者多线程编程。文章介绍了 Perl 多进程的用法和适用场景,以及 Perl 多进程和多线程的关系。同时结合企业级 IT 产品系统测试的自动化特点,介绍了 Perl 多进程在这方面的应用。

  Perl 的多进程

  Perl 的多进程

  Perl 语言是一种非常强大的脚本语言,其广泛应用于系统维护,CGI(Common Gateway Interface)编程,数据库编程和自动化测试中。

  多任务和并发处理一度被看作是判定优异操作系统的一个特性;同样任何优秀从而流行的编程语言都会有并发的应用,而且都有各自的实现方法。Perl 最开始在并发方面的应用就是多进程。

  Perl 多进程的用户接口是 fork() 函数以及对系统 fork 函数封装的一些 module。我们在使用 Perl 语言编程时,如果一个任务的某一个段可以或者需要并发很多执行,那么我们就会使用 Perl 的多进程编程,例如同时向数据库递交多个记录的查询,同时完成多个系统信息的收集等等。

  Perl 的多进程是这样实现的:主进程每 fork 一个子进程,会把当前(主进程的)内存空间的所有变量都复制一份传到新的进程里面,达到数据共享的目的。此外,主进程和子进程可以通过信号、管道等来通信。

  在处理并发的方案中,多进程依靠内存空间独享提供了优秀的容错性和健壮性。一个多进程的系统不会由于其中一个进程的状态不良而崩溃,每个进程都相对独立地运作,很少会相互影响。

  内存空间独享也造就了多进程不可避免的劣势:资源负荷以及通信复杂,对于 Perl 来说,每个子进程都可以看作主进程的拷贝,这多少有些内存浪费,而且主进程的关键变量如果是“浅复制”到子进程的话,将会带来一些意想不到的错误。另外,进程的创建和回收会带来许多额外的负载,因此应当尽量避免频繁地创建进程。

  多进程之间的通信方式有 socket,管道,信号量等。在 Linux 平台上,对于进程间大量信息的交互情况,最常用的是文件;这在用户空间进程和系统内核空间进程之间的通信中的最为常用。

  在谈起 Perl 多进程的时候,不可避免的要说说它与 Perl 多线程的关系。

  Perl 的多线程和多线程的关系

  如果我们需要执行一些各异的小任务,他们可能数量较多,但生存周期都比较短,或者他们可能共享大量数据,只有小部分的变量是自身的。这个时候,很自然就想到了多线程。

  从 Perl 5.005 开始,多线程的概念被引入 Perl 语言了;不过仅仅是概念而已。在 Perl 5.005 中,线程模型默认共享所有的数据,而且数据的共享访问需要明确的同步操作。这个模型被称为“5005threads”,其实就是多进程,只不过换了个“多线程”的概念。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

71/71234567>

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网