PERL如何用于自动化测试

PERL如何用于自动化测试
2021年08月12日10:25:08 0 509

PERL如何用于自动化测试

 

Perl广泛用于自动化。它可能不是世界上最好的编程语言,但它最适合某些类型的任务。我们来讨论Perl用于自动化测试的位置和原因。

存储测试

PERL如何用于自动化测试

 

什么是存储?数据存储在Files中。

假设,我们有一个与存储相关的测试用例,我们必须在一个分区上写入数据,读取并验证数据是否正确写入。

这可以手动完成,但手动测试仪可以执行相同的10000次吗?这将是一场噩梦!我们需要自动化

自动化与存储相关的任何事物的最佳工具是Perl,因为它具有文件处理技术, REGEX 和强大的文件解析,与其他编程语言相比,它消耗的执行时间最短。

为什么我们需要测试存储?想想大型数据中心,数据将从一个系统连续流向另一个系统,每秒存储1000个记录。测试这种存储机制的稳健性至关重要。

惠普,戴尔,IBM和许多服务器制造商等许多公司都使用Perl作为测试存储和网络域功能的接口。NetApp就是这样一家公司,它完全致力于存储,并使用Perl作为编程语言来自动化测试用例。

如果您对Perl Automation感兴趣,那么建议您了解存储和网络概念。

服务器和网络测试:

PERL如何用于自动化测试

 

PERL广泛用于服务器正常运行时间和性能监控。

考虑一个拥有100台主机(服务器)的数据中心。您需要连接到每个主机,远程执行某些命令。您还需要重新启动系统并检查它何时重新联机。

手动为所有100个主机执行此任务将是一场噩梦。但我们可以使用PERL轻松实现自动化

使用PERL设计实现上述自动化的步骤

  1. 从文件中获取有关主机信息的输入,例如(IP,用户名和密码)。
  2. 使用Net :: SSH2连接到每个系统并建立执行命令的通道。
  3. 执行ex:ls,dir,ifconfig,ps等所需的命令集。
  4. 重新启动系统。
  5. 等待10分钟以使系统出现。
  6. 使用Net :: Ping模块ping系统并打印状态。

我们将编写上述场景的代码。

 

我们来一个名为Input.txt的文件,它将存储我们需要连接并执行命令的所有主机的完整信息。

INPUT.TXT

192.168.1.2 root密码

192.168.1.3 root密码

192.168.1.4 root root123

HostCheck.pl

use Net::SSH2;

use Net::Ping;

use strict;

use warnings;

my $ping = Net::Ping->new(); # Creating object for Net::Ping

my $SSHObj = Net::SSH2->new(); #Creating object for Net::SSH2

open( FH, "Input.txt" ); # Opening file and placing content to FH

my @hosts = <FH>;

my $ip;

my @ips;

foreach (@hosts)

{

if ( $_ =~ /(.*)\s+(\w+)\s+(.*)/ ) #Regex to get each info from file

{

$ip = $1;

my $user = $2;

my $password = $3;

$SSHObj->connect($ip);

print "Connecting to host -- $ip --Uname:$user --Password:$password\n";

my $status = $SSHObj->auth_password( $user, $password );

print "$status\n";

die("unable to establish connection to -- $ip") unless ($status);

my $shell = $SSHObj->channel();

print "$_\n" while <$shell>;

$shell->blocking(1);

$shell->pty('tty');

$shell->shell();

sleep(5);

#Executing the list of command on particular host. Can be any command

print $shell "ls \n";

print "$_\n" while <$shell>;

print $shell "ps \n";

print "$_\n" while <$shell>;

print $shell "dir \n";

print "$_\n" while <$shell>;

print $shell "init 6\n"; #rebooting the system

push( @ips, $ip );

}

}

sleep 600;

foreach (@ips)

{

if ( $ping->ping($_) )

{

print "$_ is alive.\n" if $ping->ping($_);

}

else

{

print "$_ is not still up --waiting for it to come up\n";

}

}

网络测试

Perl不仅限于存储和网络测试。我们还可以使用PERL执行基于Web的测试。WWW-Mechanize是用于Web测试的一个模块。基本上,它不会启动任何浏览器来测试Web应用程序的功能,而是使用html页面的源代码。

我们还可以使用Selenium IDE,RC,Web驱动程序执行基于浏览器的测试。Selenium支持Perl。

 

打赏 点赞(0)
weinxin
投诉建议
文章名+链接地址,发送到此微信:tourism52
XForms,简介,XForms,简介,是,下一代,的,HTML,表单, 菜鸟教程

XForms 简介

XForms 简介 XForms 是下一代的 HTML 表单。 XForms 使用 XML 来创建 web 上的输入表单。 您应当具备的基础知识 在继续学习之前,您需要对下面的知识...
正则,表达式,示例,正则,表达式,示例,简单,的, 菜鸟教程

正则表达式 - 示例

正则表达式 -示例 简单表达式 正则表达式的最简单形式是在搜索字符串中匹配其本身的单个普通字符。例如,单字符模式,如 A,不论出现在搜索字符串中的何处,它总是匹配字母 A。下面是一...
Web,品质,可读性,Web,品质,可读性,正确,使用, 菜鸟教程

Web 品质 - 可读性

Web 品质 - 可读性 正确使用字体和颜色可使您的网站更易阅读。 留意颜色的对比 对于视力不太好的人或者对于不太好的显示设备来说,黑底白字或者白底黑字是最佳的。 在亮色背景上的灰...
java,基础,教程,标识符,关键字 菜鸟教程

Java基础教程2-Java标识符和关键字

任何一种计算机语言都离不开标识符和关键字,因此下面将详细介绍 Java 的标识符、关键字和保留字。一、标识符Java 中标识符是为方法、变量或其他用户定义项所定义的名称。标识符可以...

评论列表 共有 0 条评论

暂无评论