一个WebLoad 脚本范例

//initial the Agenda

function InitAgenda()
{

wlGlobals.SaveHeaders = true;

wlGlobals.SaveSource = true;
    IncludeFile("myFunctionLib.js");  // include an external js file

var FolderPath = getAgendaFolder(); //get the folder path which scripts locate in

//get testing enviroment for the scripts
    //var Env = getEnv()
   //copy the test data file into scripts
    fileMap_File = CopyFile(FolderPath + "Data/" + getEnv() + "/ClientID.txt")
}

//initial the Virtual Client

function InitClient() 

    //read the test data file  and define the data file parameter
    fileMap_File_DataFileParam = WLDataFileParam ( "fileMap",fileMap_File, 1,"|",WLParamRandom,WLParamGlobal,WLParamUpdateRound,WLParamCycle);

//Get the data file from the data file: get the first column

fileMap_User_Name = WLDataFileField( fileMap_File_DataFileParam, 1);

//get the second column

fileMap_UID = WLDataFileField( fileMap_DataFileParam, 2);

}

BeginTransaction("TransactionName")

// read the start time

// var startTime = Time()

// define the request header

wlHttp.Header["UID"] = fileMap_UID .getValue()

// set the cookie if needed

//wlCookie.Set("mstar", "V655O2O527L47", "http://mercury-stg.morningstar.com","/", "")

//set the request content type

wlHttp.DataFile.Type = "application/json; charset=UTF-8"

//read the post contents from an external file "CreateEntity.txt"

wlHttp.DataFile.Filename = "D:\\Load Test\\Mercury\\TestData\\CreateEntity.txt"

//compose the URL: http://mercury-stg.morningstar.com/DataService/api/v2/entity/lists

var createURL = "http://mercury-"+ getEnv()+".morningstar.com/DataService/api/v2/entity/lists/"

// send the request

wlHttp.Post(createURL)

// receive the response header and response content

var responseHeader = document.wlHeaders

var responseSource = document.wlSource

// convert the text-format response source to json-format response

var responseJSON = eval("(" + responseSource + ")");

// extract the EntityId from the resonseJSON; the EntityId will be the input in the next request - Delete API

var EntityId = responseJSON.EntityId

// read the end time and calculate the total time it takes to finish the transaction

// var endTime = Time()

// var totalTime = (endTime - startTime)/1000

//InfoMessage("Total time of the " + createURL + " is " + totalTime)

//verificationFuncation can be stored in the myFunctionLib.js and call it directly

function verificationFunction()

{

// verify if the respone contents contain text "Entity"

var verifyContent = checkContent(responseSource, "Entity" )

// verify if the response header status is 201

var verifyHeader = checkHttpStatus201(responseHeader )

if (WLSuccess == verifyContent && WLSuccess == verifyHeader)

return  WLSuccess

else

return  WLMinorError

}

EndTransaction("TransactionName",verificationFunction(), false, "Verification failed")

--------------------------------------------------------------------------------

Define the myFunctionl.js

Note: myFunction.js is located in where scripts are located

//define the check header 200 status function

function checkHttpStatus200(responseheader)

{

if(responseheader[0].value == "HTTP/1.1 200 OK")

return WLSuccess

else

return WLMinorError

}

//define the check header 201 status function

function checkHttpStatus201(responseheader)

{

if(responseheader[0].value == "HTTP/1.1 201 Created")

return WLSuccess

else

return WLMinorError

}

// define a function to check if the response contents contain a specific text

function checkContent(responseSource, textToBeVerified)

{

var strSource = responseSource.toString();

if (strSource.indexOf (textToBeVerified) != -1)

return WLSuccess;

else

return WLMinorError;

}

// define a function to check if the response content is null

function SourceCheck(responseSource)

{

if (responseSource != "")

return WLSuccess

else

return WLMinorError

}

// define a function a get the test environment

function getEnv()

{

//return "dallas"

//return "uat"

return "stg"

//return "qa"

}

// get the path of current folder where the project/scripts are loated

function getAgendaFolder()

{

var path = "D:/Load Test/Mercury/agenda/"

var checkPath = folderExist(path)

if(checkPath == true)

return path

else

return "C:/Codes_PMS/Performance/PFSAPI/"

}

// check if a folder exist

function folderExist(folderPath)

{

var fso = new ActiveXObject("Scripting.FileSystemObject");

if(fso.FolderExists(folderPath))

return true;

else

return false;

}

------------------------------------------------------------------------------

目录结构:

Agenda > 脚本,TestData, myFunction.js

TestData> uat, stg, qa > CreateEntity.txt

时间: 2024-10-12 20:47:01

一个WebLoad 脚本范例的相关文章

回忆曾经写过的第一个Bash脚本

这盘文章,算是杂谈吧,想谈谈我对于Linux操作系统的灵魂之笔 Bash的理解. 据说Shell脚本有50种之多(陈皓老师的酷壳网上有一篇博文 http://coolshell.cn/articles/8619.html 提到),现在,用Linux调试大大小小程序,除了使用Makefile,偶尔用用CMakeList.txt, 更多程序是用bash 脚本来实现半自动化调试,就像在VS下面,每次修改重新编译一样,你总是 gcc 或者 g++,然后 ./test 运行,然后再看看有没有错,编译出错又

[一] 编写第一个 Shell 脚本

什么是 Shell 脚本? 最简单的解释,一个 shell 脚本就是一个包含一系列命令的文件.shell 读取这个文件,然后执行 文件中的所有命令,就好像这些命令已经直接被输入到了命令行中一样. Shell 有些独特,因为它不仅是一个功能强大的命令行接口,也是一个脚本语言解释器.我们将会看到, 大多数能够在命令行中完成的任务也能够用脚本来实现,同样地,大多数能用脚本实现的操作也能够 在命令行中完成. 虽然我们已经介绍了许多 shell 功能,但只是集中于那些经常直接在命令行中使用的功能. She

【VIM001】编写第一个vim脚本

学习vim总是看到各路高手都在实现自己的插件,看得我直流口水,也想自己编写vim插件,于是乎我也开干.那就从第一个脚本开始吧,开始掌控自己的vim. 我们首先要问的是从哪里开始学起,我第一步就搜索各种资料,但是搜索归搜索,最终还是要去看文档的.在google的过程中,我发现了下面的帮助命令,就开始了我的学习之路,所谓取人鱼不如取人渔. :help vim-script-intro :h vim-script-intro 到这个帮助文档的顶部,你会看到这个标题:Write a Vim script

我的第一个swift脚本

Swift是什么?Swift号称是简单.快速的编译型脚本语言,适用于在多核计算机,集群,云与超级计算机上运行. 联合数组在声明时,可使用auto关键字而不指定任何一个原生类型作key,由语言决定: ? 1 2 3 4 5 6 7 8 9 int[auto] array; foreach i in [1:10] {     array << (i*2); } foreach v in array {     trace(v); } 保存为文本文件hello.swift,在终端中执行 ? 1 sw

第一个shell脚本——修改配置文件

有需求,可以让自己偷懒才是学习的真正动力.由于测试环境在构建代码之后总是需要手动修改配置文件,因此边学习边完成了一个shell脚本,可以一键修改. 定义了一个函数,输出信息以绿色字体显示. function echo_green { echo -e "\033[32m$1\033[0m" } 输出提示信息 echo_green "是否一键修改xxx?(y/n)" 读取键盘输入 read answer 要修改的配置文件有两类:一类是明确清楚应该修改哪些字符串,直接用替

inotify.sh脚本范例

inotify.sh脚本范例 [[email protected] ~]# cat /server/scripts/inotify.sh#!/bin/bash#parahost01=192.168.1.111src=/dingjiandst=dingjianuser=rsync_backuprsync_passfile=/etc/rsync.passwordinotify_home=/usr/local/inotify-tools-3.14/ #judgeif [ ! -e "$src"

分享一个SQLSERVER脚本

原文:分享一个SQLSERVER脚本 分享一个SQLSERVER脚本 很多时候我们都需要计算数据库中各个表的数据量很每行记录所占用空间 这里共享一个脚本 CREATE TABLE #tablespaceinfo ( nameinfo VARCHAR(50) , rowsinfo BIGINT , reserved VARCHAR(20) , datainfo VARCHAR(20) , index_size VARCHAR(20) , unused VARCHAR(20) ) DECLARE @

shell脚本中执行另一个shell脚本

分类: 可以在一个shell脚本中执行另一个shell脚本(或非可执行文件,主要用于取得一些变量的值),方法是: . 文件名(包括路径) 或 变量=文件名(包括路径) . $变量 注意,圆点后面有个空格. 这样,在本shell脚本的后面部分就可以引用其他文件中声明的一些变量. 当再用这些变量去执行第3个脚本时,我不知是怎么回事,总是有些莫名其妙的错误,发现只有这个文件中不存在空行才行,哪怕只有一个注释符,都不会出错,就是不能有空行. 其实我想应该也不是这个问题,而是windows和linux处理

HTML学习之旅(一)——我的第一个HTML脚本

最近很任性的离职了,然后闲在家里,不想去面试,也不想出去浪.于是,实在是闲得无聊,学点开发知识,感觉挺好玩的.写在这里,一来,可以希望可以帮助到那些和我一样想学点开发知识的筒子们:二来,希望借助这个平台,记录自己的成长.下面,让跟着我一起走进HTML的世界吧! 首先要了解学习HTML需要用到哪些东西. 1.浏览器:1)opera浏览器,2)IE浏览器,3)火狐浏览器,4)Google浏览器, 2.开发工具:notepad++或者Windows自带记事本 其实学习HTML需要用到的东西非常的少.如