目测试需求:一百个独立用户登录系统进行各自的考评任务,并发运行,每个人的考评任务有些是相同的,有些是不同的。
流程分析结果:一百个用户按机构-》职位划分,相同职位的人的考评任务是相同的。
分析录制脚本的结果:脚本中动态变化的有:
用户名(username)与密码(psw),用户名与密码相同;
机构id,不同用户的对应不同的机构id,用户名与机构是多对一的关系;
任务id,每个用户的考评任务id都是不同的;
考评任务的具体内容,内容含考评项id,考评内容,考评标准分值,实际得分值,备注,在提交时发送这些数据到数据库。
如果独立的录制每个用户的脚本,然后再组合起来形成对应的测试场景,花费的时间与成本很大,所以考虑自己编写程序来生成所要的脚本。要编写程序生成脚本,我经过了如下几步:
第一步:分析脚本的组成;
第二步:分析脚本的组成部分对应那些功能;
第三步:分析脚本那些是动态的,那些是静态的。
分析结果:
录制生成的脚本中:data目录下的文件是录制过程中生成的一些文件,这些文件可以不要;Action.c,Vuser_init.c,Vuser_end.c这三个文件是核心代码,可以把后二者文件的主要内容集中放在Action.c文件里;
XXXX.usr文件是脚本文件里的一些关联信息,会指明Vuser_init,Vuser_end对应那个文件,其中ParameterFile=指明对应哪个XXXX.prm ,.usr与.prm的文件名相同,不同的脚本对应不同的usr名,这个要动态生成。
globals.h,default.cfg与default.usp三个文件不变。
最后还有一个文件*.dat,这个文件保存的是关联数据,经过手动设置关联后生成。在我的实际脚本中保存的是username,orgid二个数据项。
经过上面的分析完后,我从数据库中抽取了如下数据:username与对应的orgid,保存为orgid.txt;username与对应的考评任务id,保存为taskid.txt,username与对应的所有考评项id,保存为items.txt,抽出数据串联成:机构名_职位_用户名,用于生成对应的目录:机构名->职位->用户名,保存为dir.txt
接下来是实际编码实现思路:
第一步:指定生成的脚本要存放的目录rootDir;
第二步:根据rootDir,dir.txt生成每个用户脚本的保存目录。
第三步:在每个用户下生成脚本的空文件:Action.c,Vuser_init.c,Vuser_end.c,globals.h,default.cfg,default.usp,taskid.dat,XXX.usr,XXX.prm等九个文件。
第四步:在不同用户目录里生成内容相同的文件。
第五步:在不同用户目录里生成内容有变化的文件。
在实现第五步时,要注意的地方:
主要是生成Action.c。
思路:把Action.c文件分成几个文件,有变化的地方就划分;
变化的地方就编写相应的程序生成所要的内容;
最后把变化的,不变的串联起来,就是Action.c的全部内容了。
具体实现源码参见附件:
动态生成脚本源码.rar
分享到:
相关推荐
- **特点**:相比于接口测试工具,这类工具功能更为强大,能够支持用例的批量执行、接口返回结果的断言、以及测试报告的自动生成等功能。 - **示例工具**:JMeter、Robot Framework、soapUI等。 3. **接口性能...
2017年存储技术变革与发展的趋势.pdf
毕业论文-qing游戏风格 商业版(GBK)-整站商业源码.zip
实训商业源码-效能-毕业设计.zip
平台跳跃游戏的核心魅力在于重力与控制的精妙平衡。本文将构建角色运动的微分方程模型,解析空中机动算法,并揭示关卡设计中的隐式引力场理论,展现2D平台游戏背后的复杂物理模拟系统。
实训商业源码-签到工具-毕业设计.zip
nsync///////
实训商业源码-票务高级版4.2.9-毕业设计.zip
运算符重载函数(友元函数).cpp
ABAQUS模型定义.pdf
FreeRTOS计数信号量的使用,模拟停车场运行逻辑
毕业论文-方熊表单V1.0.0 开源版-整站商业源码.zip
毕业论文-多商户线下积分商城会员群发V2.5.11 原版-整站商业源码.zip
实训商业源码-新材料-毕业设计.zip
毕业论文-活码自动进群V1.0.0 开源版-整站商业源码.zip
毕业论文-红包拓客生意宝2.0.3 开源版-整站商业源码.zip
Baidunetdisk_AndroidPhone_1023843j (6).apk
【研华科技】以数智融合打造可持续管理的企业未来.pdf
毕业论文-老虎-微信淘宝客6.0.3+老虎-团队合伙人系统2.99.83-整站商业源码.zip