彩票走势图

如何进行高性能自动化测试(下)

转帖|行业资讯|编辑:龚雪|2016-03-09 13:17:16.000|阅读 186 次

概述:本文主要介绍如何进行高性能自动化测试的环境搭建,重点介绍如何部署 Jenkins Server, Chef Server, Chef Client, NTP Server, NTP Client, Yum Server,NFS Server, NFS Client 和 SSH 免密码登录,从而帮助读者了解如何在项目里进行高性能自动化测试的环境部署。 

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

部署 SSH 免密码登录和 Report Server

在进行高性能自动化测试的过程中,复制/移动最终的测试结果到 Report Server 时会用到 scp,因为它比较安全。但如果每次都要在 script 里输入密码,就比较烦了。以下操作将介绍生成密匙对的步骤,从而完成 SSH 免密码登录的配置,方便测试结果被安全迅速的传送到 Report Server。

12.生成SSH密匙
13.添加SSH公匙
14.scp文件时,不再需要密码

如何在实际项目里进行高性能自动化测试

根据以上步骤,您就可以搭建一套可以实现高性能自动化测试的测试环境,下面介绍下如何在搭建的环境里进行高性能测试。

并行执行多个 Chef Client 上的测试

在第二部分介绍了如何部署 Chef Server 和 Chef Client,在此向读者介绍下如何在 Chef Server 上并行的执行多个 Chef Client 上的测试任务,通过在多个 node 上进行分布式的并发测试,从而减少测试时间,提高测试效率。

在此举例下如何并行的唤起多个 Chef Client 上的 testing,Shell 脚本如下:

<script>
#Invoke all chef clients for QAF by multiple thread
echo start: `date`;
start=`date +%s`;
#for function is used to invoke all Chef Clients to test
for ((i=1;i<=${#ip[@]};i++))
do
{
#knife bootstrap command is used to start testing in the Chef Clients
knife bootstrap ${ip[$i-1]} -x root --sudo -r "role[client_QAF]"
}&
Done
#wait command is used to wait for all the testing finished in the Chef Clients
wait
echo end: `date`;
end=`date +%s`;
#time is used to analysis the testing time
time=$[ end -start ];
</script>

shell 脚本自动归集测试报告

由于测试是分布式的在多个 node 上进行的,所以测试完成后,需要将每个 Chef Client 上的测试报告归集到一起的,在这里就用到了第二部分所介绍的 NFS 自动收集所有 node 上的报告。

在此举例下如何收集多个 Chef Client 上的 testing report,Shell 脚本如下:

<script>
#!/bin/bash
range=$1
#initial report folder
rm -rf /root/$range/workspace/com.spss.qa.automation/html/*
rm -rf /root/$range/workspace/com.spss.qa.automation/test-reports/*
#gather report
if [ $range = "3.0" ]
then
cp -rf /root/share/test-reports/3.0/* /root/$range/workspace/com.spss.qa.automation/test-reports
cp -rf /root/share/test-reports/2.0/* /root/$range/workspace/com.spss.qa.automation/test-reports
else
cp -rf /root/share/test-reports/$range/* /root/$range/workspace/com.spss.qa.automation/test-reports
fi
</script>

发布测试 report

所有的测试报告都被收集到 Report server 上后,用 Ant 脚本产生 Html report。Ant 脚本如下:

<script>
<target name="report">
<junitreport todir="${basedir}/test-reports">
<fileset dir="${basedir}/test-reports">
<include name="TEST-*.xml" />
</fileset>
<report format="frames" todir="${basedir}/html" />
</junitreport>
</target>
</script>

然后通过第二部分介绍的 SSH 免密码登录将产生的测试 report 发布到 Jenkins 上指定的路径上去,Shell 脚本如下:

<script>
#pubilsh report to //9.30.214.85:8080/testStage_$version
mkdir -p /root/apache-tomcat-7.0.59/webapps/testStage_$version
cp -rf /root/share/html/$range/* /root/apache-tomcat-7.0.59/webapps/testStage_$version
cd /root/apache-tomcat-7.0.59/bin
./startup.sh
#publish report to build server
cd /root/workspace/testStage/share/html/$range/
scp -r * root@9.30.214.84:/$report_path
</script>

发送测试结果邮件

测试进行完成后,Jenkins 会自动给组里人员发送测试报告邮件,读者可以按照以下在 Jenkins 里配置邮件收件人和邮件标题。

15.Jenkins中配置邮件收件人和邮件标题

实际项目里收到的测试结果邮件如下:

16.测试结果邮件展示

项目里遇到的问题以及解决办法

在此,简单列举下如何处理环境异常的情况:NFS Server 和 NFS Client 之间通信断掉。当节假日来临或者 IT 部门维修 VM 的时候,会遇到 VM 被关机的情况,人为将 VM 开机后,NFS Server 和 NFS Client 之间的通信也已经被断掉了。这时候,我们需要做 2 个步骤解决通信被断掉的问题:

  1. 在 NFS Server 上执行命令 # service nfs restart 重新开启 NFS service。
  2. 在 NFS Client 上执行命令 # mount -t nfs 9.110.183.108:/home/share /home/share 重新共享 NFS Server 和 NFS Client 的 folder。   

结束语

本文探索了如何搭建高性能自动化测试环境, 您可以根据本文介绍的方法,搭建环境实现在多个 Chef Client 上并行的进行自动化测试,从而减少测试执行时间,缩短测试周期,提高测试效率,实现高性能自动化测试。

原文转载自:


标签:性能测试软件测试技术

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP