mercury 2006年 第二季度考试 你去考了么?
做了三年多的手工测试,最近想报考一个认证,所以可了很多市面上的认证,测试方面的很少,也参考了一下现在招聘的信息,发现工具的要求占大部分,本来想考评测师,价格不很高,但是好像企业不是很认可,后来看了一下考试的提纲,觉得理论性占大部分,所以决定报考工具的认证,但是现在工具那么多,也不知道报什么好,我没有开发经验,报考mercury的几个工具,那个能更容易过呢? 我认为考证实用就好,现在市面上招测试人员的确都要求有测试经验,尤其是应届生不收.那是因为他们在招测试人员时很少有人知道测试人员该怎么评定他的等级.也不像开发有明确的标准.但做为测试人员的发展看来,测试自动化一定是将来的发展趋势.而且你没有很多开发经验,可以考虑学个QTP,它的脚本语言是VBS,非常简单容易上手.而且QTP本身也比其它自动化测试工具容易.
你可以考虑一下. LoadRunner也不错,全球市场份额77%,而且性能测试是手工无法替代的
更重要的是,能够用LoadRunner的公司规模都比较大,薪水也不错 有没有什么资料可以提供我们新手可以学习的,有没有详细介绍mercury认证的 想参加认证考试的同学可以到这里来看看
http://www.51testing.net/BWF_DIY/mercury/mercury_051230_1.htm
另外,第二季度考的报名就快截止了
如果想要考的同学,需要抓紧准备了 我这里有一些考试题目可以联系我,597249892
可以联系我,大家可以交流一下 楼上的,呵呵~我不知道你的资料是哪里弄来的!但是别乱传哦,可能会给mercury查的哦!他们的认证的保密度和管理都很强的,因为他们要做一个最有含金量的认证,至少现在他们还不想让这个证泛滥啊 有哪些资料呀?可否共享一下? 又多了一个迷茫的人 不要认为认证很好,呵呵,个人意见,现在的买MI产品工具的公司不是很多,费用太高,另一方面如果编程,网络,数据库这些不强,做所谓的性能测试感到很不实际,像loadrunner这样的工具,要编程脚本使脚本很富有弹性,还要调dll文件,如果你以上没有达到哪些条件,我看还是不要考证的好。 同意楼上意见,
从网上搜到往年的考题,基本上时考工具怎么使用,都可以从帮助文档中找到. 考证是要冷静的思考,是否真的需要.楼上的说的确实不错, 不能为了证书而去考!但是楼上的有没有想过如果等到你什么都强了,什么都会了,那你拿这个这个证书还有什么意思,你已经错过了,一张证书最具价值的时段了.我相信大家都知道这点!
人的精力是有限的,不可能样样精通的,更何况大家都是做it的,等你现在的都精通了,那新的东西又来了!对吧~所以在必要的时候考取必要的东西,那是发挥了这个东西最大的价值 我想试试。
呵呵 我觉得考认证有用也没用,楼上说的意见就好比说,考过了Mercury LoadRunner认证就代表一定会做性能测试,就像考过英语四级考试就一定会开口说话一样。
考了相应的认证,不见得就可以去做事情,但是考认证是学习相应工具的一条最直且最有用的途径。培训班里教你的考试技巧,其实有些是实用的,像是针对项目来评估如何引入工具、如何编写脚本等等。你在学习的过程中,不应该是去死记当什么函数什么功能,这种考试技巧,而是应该思考,为什么要这样教你;如果我用了其他工具会怎样?有了这样的思维,多试几种方式,你会发现只要精神捉到了,不论换了那些系统,怎么去做测试都可以的。
所以 考认证重视的是准备的过程 :你应该以制式的教材内容为基础,自我尝试不同的方向,举一反三、融汇贯通,那么不管怎么样的考题也都考不倒你。准备认证考试还有一个重点,就会是学清楚你平常很少会去注意到的地方。以开车来说,如果你平常作的都是cs的测试,今天突然突然有个项目是做bs的测试,那么以前的一些bs考试中的问题就可以帮助你了。
平时做性能测试的时候,有些枝微末节你平常根本不会注意它的,可是考试却会把这些东西给考出来,看你的基础观念正不正确。宁愿花多一点时间准备考试,把该学的技能学正确来,也不要日后花更多时间来走弯路强。 同意楼上部分观点。 似乎已经把考证和自己的工作分析得很透彻的,关键大家不要因为考证而考证,那样就失去它的魅力了.
我这里是别人发给我的loadrunner cpc考试的一个脚本练习例子
#include "lrs.h"int getWorkSpace(char **lpWorkSpace,unsigned long ulSize) {
int MAX_SIZE=1048576;
ulSize=(ulSize>MAX_SIZE)?MAX_SIZE:ulSize;
*lpWorkSpace=(char *)malloc(ulSize);
memset(*lpWorkSpace,0,ulSize);
return (ulSize);
}
Actions()
{
char *lpDataWs=NULL,*lpTempDataWs=NULL,*lpWork,*lpTempWork,*lpSearchString,*lpTempSearchString,cEOF=0;
char cMakeDigit=0,cFirstDigit=0,cBackSlash=0,cEnableWrite=0,cSkipQuote=0,cUpdateTempWork=0;
char cSearchValid=0,cFoundDelimiter=0;
char lpFileIn={"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"};
char lpFileOut={"yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy"};
char *lzFileName2={"c:\\temp\\bufloc.inp"};
int fp1=0,fp2=0,fp3,tfp=0,iBuf=0,iBuffer,BufSpaceAvailable=1,iRecv=0,iSend=0,NumElements=1;
int iSearchStringLength=0,iSearchStringLength2,iMatchFound=0,iSearchOffset=0;
unsigned long iFileSize,offset=0,uLine=1,uBufSize=0,uBufSize2=0,uBytesRead,uTotalBytesRead=0;
unsigned long uTempBytesWritten=0;
fp1=fopen(lzFileName2,"r");
fseek(fp1,0,2);
iFileSize=ftell(fp1);
fseek(fp1,0,0);
getWorkSpace(&lpWork,iFileSize);
fgets(lpWork,iFileSize,fp1);
memcpy(lpFileIn,lpWork,iFileSize);
fgets(lpWork,iFileSize,fp1);
memcpy(lpFileOut,lpWork,iFileSize);
lpTempWork=lpFileIn;
while (*(lpTempWork++)!=10);
uBufSize=(lpTempWork-lpFileIn)-1;
*lpTempWork=0;*(--lpTempWork)=0;
lpTempWork=lpFileOut;
while (*(lpTempWork++)!=10);
uBufSize+=((lpTempWork-lpFileOut));
*lpTempWork=0;*(--lpTempWork)=0;
iFileSize-=(uBufSize+4);
getWorkSpace(&lpTempSearchString,iFileSize);
fgets(lpTempSearchString,iFileSize,fp1);
iSearchStringLength2=(iFileSize-2)+1;
fclose(fp1);
//lr_output_message("SearchStringLength2 %d",iSearchStringLength2);
getWorkSpace(&lpSearchString,iFileSize);
lpTempWork=lpTempSearchString;
lpWork=lpSearchString;
while (iSearchStringLength2&&(cFoundDelimiter<2)) {
if (*lpTempSearchString==34) {
if (*(lpTempSearchString-1)==92) ;
else {
cSkipQuote=1;
cFoundDelimiter++;
}
}
if (cSkipQuote)
cSkipQuote=0;
else {
if (cMakeDigit) {
if (cFirstDigit) {
if ((tolower(*lpTempSearchString)>='a')&&(tolower(*lpTempSearchString)<='f'))
switch (tolower(*lpTempSearchString)) {
case 'a':
*lpWork=10; break;
case 'b':
*lpWork=11; break;
case 'c':
*lpWork=12; break;
case 'd':
*lpWork=13; break;
case 'e':
*lpWork=14; break;
case 'f':
*lpWork=15; break;
}
else
*lpWork=*lpTempSearchString-48;
*lpWork<<=4;
cFirstDigit=0;
}
else {
if ((tolower(*lpTempSearchString)>='a')&&(tolower(*lpTempSearchString)<='f'))
switch (tolower(*lpTempSearchString)) {
case 'a':
*lpWork^=10; break;
case 'b':
*lpWork^=11; break;
case 'c':
*lpWork^=12; break;
case 'd':
*lpWork^=13; break;
case 'e':
*lpWork^=14; break;
case 'f':
*lpWork^=15; break;
}
else
*lpWork^=(*lpTempSearchString-48);
cBackSlash=cMakeDigit=0;
cUpdateTempWork=1;
}
}
else {
if ((!cBackSlash)&&(*lpTempSearchString==92))
cBackSlash=1;
else
if (cBackSlash&&(*lpTempSearchString==120)) {
cMakeDigit=1; cFirstDigit=1;
}
else {
*lpWork=*lpTempSearchString;
cUpdateTempWork=1;
}
}
}
if (cUpdateTempWork) {
//lr_output_message("SearchString %02x",*lpWork);
++lpWork;
++iSearchStringLength;
//lr_output_message("SearchStringLength %d",iSearchStringLength);
cUpdateTempWork=0;
}
++lpTempSearchString;
--iSearchStringLength2;
}
cMakeDigit=0;cFirstDigit=0;cBackSlash=0;cUpdateTempWork=0;
//lr_output_message("SearchStringLength %d",iSearchStringLength);
free(lpWork);
fp1=fopen("c:\\temp\\data.ws","rb");
// fp1=fopen(lpFileIn,"rb");
fp2=fopen("c:\\temp\\bufloc.out","w");
// fp2=fopen(lpFileOut,"w");
fp3=fopen("c:\\temp\\strloc.out","w");
// fp3=fopen(lpFileOut2,"w");
if (fp3)
fprintf(fp3,"Searching for %s\r\n",lpSearchString);
if (fp2) {
fprintf(fp2,"Finding buffer locations for %s\r\n",lpFileIn);
if (fp1) { // must have valid file pointer first
fseek(fp1,0,2);
iFileSize=ftell(fp1);
fseek(fp1,0,0);
uBufSize=getWorkSpace(&lpDataWs,iFileSize);
if (!lpDataWs) {
lr_output_message("Memory allocation failure - exiting");
cEOF=1;
}
uBufSize2=getWorkSpace(&lpTempDataWs,iFileSize);
if (!lpTempDataWs) {
lr_output_message("Memory allocation failure - exiting");
cEOF=1;
}
// tfp=tmpfile();
tfp=fopen("c:\\temp\\bufbinary.out","w");
while (!cEOF) {
uBytesRead=fread(lpDataWs, uBufSize, NumElements, fp1);
lpWork=lpDataWs;
lpTempWork=lpTempDataWs;
do {
switch (*lpWork) {
case 10:
if (*(lpWork-1)==13)
++uLine;
break;
case 100:
if (*(lpWork-1)=='n')
if (*(lpWork-2)=='e')
if (*(lpWork-3)=='s')
fprintf(fp2,"send buf%d - line %d\r\n",iBuf++,uLine,iSend++);
break;
case 118:
if (*(lpWork-1)=='c')
if (*(lpWork-2)=='e')
if (*(lpWork-3)=='r')
fprintf(fp2,"recv buf%d - line %d\r\n",iBuf++,uLine,iRecv++);
break;
case 49:
if (*(lpWork-1)=='-')
cEOF=1;
break;
case 34:
if (*(lpWork-1)==9) {
cSkipQuote=cEnableWrite=1;
break;
}
if (*(lpWork-1)!=92)
cEnableWrite=0;
break;
}
//lr_output_message("offset %lu\t%x\t%d\t%c",uTotalBytesRead,*lpWork,*lpWork,*lpWork);
if (cEnableWrite) {
if (cSkipQuote)
cSkipQuote=0;
else {
if (cMakeDigit) {
if (cFirstDigit) {
if ((tolower(*lpWork)>='a')&&(tolower(*lpWork)<='f'))
switch (tolower(*lpWork)) {
case 'a':
*lpTempWork=10; break;
case 'b':
*lpTempWork=11; break;
case 'c':
*lpTempWork=12; break;
case 'd':
*lpTempWork=13; break;
case 'e':
*lpTempWork=14; break;
case 'f':
*lpTempWork=15; break;
}
else
*lpTempWork=*lpWork-48;
*lpTempWork<<=4;
cFirstDigit=0;
}
else {
if ((tolower(*lpWork)>='a')&&(tolower(*lpWork)<='f'))
switch (tolower(*lpWork)) {
case 'a':
*lpTempWork^=10; break;
case 'b':
*lpTempWork^=11; break;
case 'c':
*lpTempWork^=12; break;
case 'd':
*lpTempWork^=13; break;
case 'e':
*lpTempWork^=14; break;
case 'f':
*lpTempWork^=15; break;
}
else
*lpTempWork^=(*lpWork-48);
cBackSlash=cMakeDigit=0;
cSearchValid=cUpdateTempWork=1;
}
}
else {
if ((!cBackSlash)&&(*lpWork==92))
cBackSlash=1;
else {
if (cBackSlash&&(*lpWork==120)) {
cMakeDigit=1; cFirstDigit=1;
}
else {
*lpTempWork=*lpWork;
cSearchValid=cUpdateTempWork=1;
}
}
}
if (cSearchValid) {
if (*lpTempWork==*(lpSearchString+iSearchOffset)) {
//lr_output_message("TEMPWork %x\t%x",*lpTempWork,*((lpSearchString+iSearchOffset)-1));
//lr_output_message("TEMPWork %d\t%d",iSearchOffset,iSearchStringLength);
if (++iSearchOffset==iSearchStringLength) {
iSearchOffset=0;
fprintf(fp3,"\r\n%d).Line %d",++iMatchFound,uLine);
}
}
else
if (iSearchOffset) // partial string - reset
iSearchOffset=0;
cSearchValid=0;
}
if (cUpdateTempWork) {
//lr_output_message("TEMPoffset %lu\t%x\t%d\t%c",uTempBytesWritten,*lpTempWork,*lpTempWork,*lpTempWork);
++lpTempWork;
++uTempBytesWritten;
cUpdateTempWork=0;
}
if (uTempBytesWritten==uBufSize2) {
fwrite(lpTempDataWs, uBufSize2, NumElements, tfp);
memset(lpTempDataWs,0,uBufSize2);
uTempBytesWritten=0;
}
}
}
lpWork++;
uTotalBytesRead++;
} while ((++offset<uBufSize)&&(!cEOF));
memset(lpDataWs,0,uBufSize);
offset=0;
}
if (uTempBytesWritten)
fwrite(lpTempDataWs, uBufSize2, NumElements, tfp);
fprintf(fp2,"Total Send Buffers: %d\r\nTotal Receive Buffers: %d\r\n",iSend,iRecv);
lr_output_message("Read %lu bytes",uTotalBytesRead);
free(lpDataWs);
fclose(fp1);
fclose(fp2);
fclose(fp3);
fclose(tfp);
}}
return 0;
}
大家可以借鉴一下。 顶,我什么时候可以达到这个程度呢?
如果报考lr cpc 都需要什么条件呢?
sp是什么啊 原帖由 无间道2006 于 2006-5-24 14:00 发表
顶,我什么时候可以达到这个程度呢?
如果报考lr cpc 都需要什么条件呢?
sp是什么啊
网站里有详细的介绍。CPC是MERCURY工具最高等级的认证考试。 原帖由 无间道2006 于 2006-5-24 14:00 发表
顶,我什么时候可以达到这个程度呢?
如果报考lr cpc 都需要什么条件呢?
sp是什么啊
SP是mercury国际认证的一个等级,必须考过sp后才能考cpc
每个人都有自己的目标,但是毕竟 cpc不是那么好考的,到现在考出的那些人
也不到100人吧~不过待遇却都是人上人的那种。
哎~~羡慕啊
页:
[1]
2