Loadrunner测试webservice协议总结

一、协议选择

1、打开Virtual user generator,新建脚本,选择webservice协议

2、当选择的协议不明确或者被测系统协议不明确时,使用loadrunner11自带的协议分析软件,文件->分析软件->分析应用程序,选择应用程序类型和路径确定即可,等待分析结果。

3、  协议选择完毕后,进入脚本创建界面

二、脚本创建

1、导入服务

管理服务->导入,输入被测服务的路径导入,确定

2、添加调用程序

1、添加服务调用->选择操作的方法名->填写输入参数和输出参数,确定后,会自动生成测试脚本

Request:请求参数,输入对应的必填项

Indentify:登录信息,ID和password对应用户名和密码

Response:返回参数,将需要的参数保存在参数中,以备后续函数调用

2、生成脚本界面

3、需要对参数重新设置,选择“树”型显示方式,可以对脚本进行重新编辑

4、  对相应参数进行参数化,可以用记事本编辑

5、  运行时设置,快捷键F4

运行逻辑:设置脚本迭代次数,即脚本循环次数

思考时间:可以设置脚本运行过程中是否考虑思考等待时间

其他:错误处理,一般选择出现错误时仍然继续

3、返回结果判断

1、单个返回结果判断

例如,当我们调用Webservice接口输入如下参数 时"<mobileno>13312345678</mobileno> <smscontent>飞信</smscontent>",接口正确返回结果包括"飞信是中国移动的业务"。在此我们就需要对 返回结果进行判断。示例代码如下:

lr_eval_string函数说明

C的变量都不能被LR的函数直接调用。所以:LR函数调用C变量,得先经过lr_eval_string的解析,相当于桥梁的作用。

strstr函数说明

函数格式为strstr(str1,str2),其中str1: 被查找目标string expression to search,str2:要查找对象The string expression to find.该函数返回str2第一次在str1中的位置,如果没有找到,返回NULL.

lr_error_message和lr_output_message函数说明

lr_error_message函数将错误消息发送到输出窗口和Vuser日志文件。

lr_error_message在回放日志中显示的是红色的字体,且显示语句所在行号;同时,如果脚本在controllor中运行时,会生成一个error信息。

lr_output_message函数将带有脚本部分的行号的消息发送到输出窗口和日志文件。

2、多个返回结果判断

与单个结果判断类似,其实就是嵌套if语句,在此恕不赘述,示例代码如下:

三、面向目标场景设置

1、打开controller,选择要运行的测试脚本,如果测试目标确定,选择面向目标场景,否则选择手动场景

2、编辑场景目标,根据需求目标选择相应的目标类型,设置目标参数,运行时间

3、添加load generator,点击生成器->添加,输入名称、临时目录,确定,选择添加的信息点击连接,状态显示就绪,说明连接成功

4、结果目录设置

结果->结果设置,输入结果名称和保存的目录位置

5、监控参数设置

进入运行界面,选择视图右键打开新图,选择要监控的信息

6、  添加windows资源视图

右键windows资源->添加度量->添加->名称输入监控目标的IP地址,确定

7、运行时设置

设计界面,运行时设置,其他,勾选“出现错误时仍然继续”

8、开始场景,观察运行过程中的情况

四、结果分析

1、打开loadrunner analysis,打开controller结果设置路径下的文件

查看结果中,每秒事务通过数、响应时间是否符合需求,查看windows资源是否使用正常

五、常见问题

1、loadrunner监控windows资源无法连接问题

⑴保证被监视的windows系统开启一下两个服务:remote procedure call(rpc)和remote registry  server

⑵cmd命令输入:net use \\192.168.1.xxx(监控服务地址)

⑶输入用户名和密码即可

六、注意事项

1、脚本运行过程中,没有出现异常,但是后台log会提示错误,注意观察后台错误信息内容,排查脚本存在的问题。

七、实战练习

1、需求说明:

实际项目中,需要测试组件是否可以保存最大20000个会话,同时在保存20000个会话后,用户可以正常发送上行短信结束该20000会话。 压力测试中,我们共添加了50个虚拟用户,那么一个虚拟用户只需开始保存20000/50=400个会话,后结束这些会话即可。

2、脚本编写

3、lr_whoami函数说明

void lr_whoami (int *vuser_id, char **sgroup, int
*scid);

返回值:返回当前运行的vuser ID、运行脚本的组名称以及场景ID

参数说明:

int *vuser_id 需先注册,保存正在运行的vuser的ID,在Virtual User Generator中回放返回-1

char **sgroup 需先注册,保存正在运行的vuser的组名(脚本名),在Virtual User Generator中回放返回None

int *scid需先注册,保存正在运行的Scenario的ID,在Virtual
User Generator中回放返回0

4、lr_save_int函数说明

lr_save_int函数意思是把一个整数保存为参数

abs(id)意思是取id的绝对值(因为在Virtual
User Generator中,id返回为-1)

Loadrunner测试webservice协议总结的更多相关文章

  1. SoapUI SoapUI测试WebService协议接口简介

    SoapUI测试WebService协议接口简介 by:授客 QQ:1033553122 1. 创建项目,入口:File -> New SOAP Project,或者右键默认项目Project- ...

  2. loadrunner测试TCP协议服务器性能

    loadrunner测试TCP协议服务器性能 . 性能loadrunner测试c 最近对服务器的性能感兴趣,于是开始研究了一阵子loadrunner如何做采用TCP协议交互的服务器的性能测试,对loa ...

  3. LoadRunner测试WebService的3种方式

    LR在WebService虚拟用户协议中支持两种方式测试WebService,一种是通过“Add Service Call”的方式,一种是Import SOAP的方式. Import SOAP的方式需 ...

  4. 09-soap接口类型进行测试webservice协议

    webxml.com.cn/zh_cn/weather_icon.aspx webxml.com.cn/webservices/weatherWS.asmx? 以上2个url可用来免费使用(经典场景) ...

  5. LoadRunner通过webservice协议调用WSDL接口时,返回值不正确

    有可能是某些传参空的值导致的. 解决办法:注释掉空值传参.或者将其值转变为true ”ProductIDSpecified=true“,

  6. LoadRunner系列之—-02 基于webservice协议的接口测试(脚本实例)

    Loadrunner 基于webservice协议的接口压力测试(脚本实例) 接口功能如下:请求接口,报文只有一个参数为证件号码:返回报文中,有证件号码是否能查到对应数据,查到几条数据. 思路:请求w ...

  7. 性能测试总结工作总结-基于WebService协议脚本 内置函数手动编写

    LoadRunner基于WebService协议脚本 WebService协议脚本有三种生成方式,一种是直接通过LoadRunner导入URL自动解析生成:一种是使用LoadRunner内置函数手动编 ...

  8. loadrunner做webservice接口之简单调用

    今天听大神讲了webservice做接口,我按照他大概讲的意思自己模拟实战了下,可能还有很多不对,一般使用webservice做接口,会使用到soapui,但是用了loadrunner以后发现lr很快 ...

  9. Loadrunner对https协议(单双向SSL)的web端性能测试

    1.项目背景 1.1 单双向SSL的含义及部署 单向SSL即我们说到的https协议. 特点是,浏览器需要请求验证服务器证书: 基本含义是:一个安全通信通道,它基于HTTP开发,用于在客户计算机和服务 ...

随机推荐

  1. MyEclipse打包带源码的jar包

    平时开发中,我们喜欢将一些类打包成jar包,然后在别的项目中继续使用,不过由于看不到jar包里面的类的源码了,所以也就无法调试,要想调试,那么就只能通过关联源代码的形式,这样或多或少也有一些不方便,今 ...

  2. MySQL 备份恢复(导入导出)单个 innodb表

    MySQL 备份恢复单个innodb表呢,对于这种恢复我们我们很多朋友都不怎么了解了,下面一起来看一篇关于MySQL 备份恢复单个innodb表的教程 在实际环境中,时不时需要备份恢复单个或多个表(注 ...

  3. 弧形菜单2(动画渐入)Kotlin开发(附带java源码)

    弧形菜单2(动画渐入+Kotlin开发) 前言:基于AndroidStudio的采用Kotlin语言开发的动画渐入的弧形菜单...... 效果: 开发环境:AndroidStudio2.2.1+gra ...

  4. 学习使用PRINCE2能带来什么益处?

    使用PRINCE2有许多好处.它除了可重复使用.可升级.非常灵活之外,是在成百上千名有经验的项目经理们的帮助下,总结他们多年积累的实践经验和专业技术建立的. PRINCE2 开发于1989年并从此不断 ...

  5. 软件磁盘阵列 (Software RAID)

    什么是 RAID 磁盘阵列全名是『 Redundant Arrays of Inexpensive Disks, RAID 』,容错式廉价磁盘阵列. RAID 可以通过一些技术(软件或硬件),将多个较 ...

  6. 在 Windows 容器中使用 gMSA

    前不久给公司搭测试环境,其中涉及到了某组件在容器中使用 kerberos 身份验证连接 SQL Server 数据库的问题. Windows 容器本身并不能加入域,但可以通过 gMSA 运行容器使容器 ...

  7. Win10 mysql容器启动命令

    docker run --name mysql -it -p : -e MYSQL_ROOT_PASSWORD=Hongfund5013 -e MYSQL_USER=hongfund_os -e MY ...

  8. 主存储器与CPU的连接

    半导体存储器的读写时间一般在十几至几百毫微秒之间,其芯片集成度高,体积小,片内含有译码器和寄存器等电路.常用的半导体存储器芯片有多字一位片和多字多位片,如16M位容量的芯片可以有16M×1位和4M×4 ...

  9. contextlib

    contextlib with 语句   上下文 任何对象,只要正确实现了上下文管理,就可以用于with语句. 实现上下文管理是通过__enter__和__exit__这两个方法实现的. 例如,下面的 ...

  10. 给腾讯云Linux主机创建Swap文件

    新买的腾讯云主机没有提供Swap分区 理由是由于主机经常因为内存使用率过高,频繁使用Swap,导致磁盘IO过高,服务器整体性能反而下降. 不过用户依然可以使用Swap文件的方式添加Swap. 方法如下 ...