lr之java Vuser
上一篇 /
下一篇 2017-06-12 15:54:34
/ 个人分类:性能测试相关
因为一直做
自动化测试,对
java比较熟悉,学习lr过程中C语法老是会混,终于发现lr是支持java的,这下就好了。
LoadRunner中的JavaVuser的特点:
一、使用方便,有强大的开源类库。
二、可以更方便的使用自定义类、算放,节省开发时间。
三、JavaVuser是编译的,出错提示更准确。
四、有的java语法支持不太好,例如静态代码块
五、需要使用者懂java语言。
六、使用JavaVuser时若脚本中包含自定义类,需要确保这个类的线程是安全的。
七、使用JavaVuser时不要在Java Vuser衍生出来的线程中使用Java Vuser Api,运行时需要设置解析
LoadRunner中的JavaVuser的使用场景:
一、是不太适合录制的业务功能点的性能测试,例如网页上Http文件的下载过程、视频播放等,因为用Java Vuser实现无法录制的测试需求 这类测试需求往往关注于对服务器产生的压力,重点测试在一定压力下服务器的负载情况,为评估、部署、调优系统提供参考。在这类测试工作中,Java的作用仅是一门语言,用于辅助测试人员完成测试程序的开发。 在性能测试工作中,不能录制的测试点很多,主要有以下几类: 含有控件的Web应用 在Web应用中,很多包含一些插件的浏览器应用经常不能录制。这类应用往往涉及很多协议,因此录制起来不是特别方便。 对于这类应用,可以用Java语言调用其功能来完成用户行为的模拟。 一些和媒体播放、文件下载等相关的应用 媒体播放或文件下载等过程的录制往往不容易控制,如果是应用基于P2P的协议,则会更加复杂。因此,这类测试只能由测试人员开发虚拟用户脚本来完成。
二、是基于Java语言开发的应用系统的性能测试,这类应用更适合采用Java虚拟用户进行测试。 基于Java语言开发的应用系统,在性能测试中采用Java虚拟用户更显得“门当户对”。这类虚拟用户主要应用在下面两类测试中:核心算法或业务的执行效率 对银行、电信等大型的基于J2EE的架构应用系统中,开发阶段的性能测试是必不可少的。为了降低后期遇到性能问题的风险,往往在开发阶段进行一些核心业务的性能测试。这些核心业务或要求较高的执行效率,或者要求支持较多用户的并发。因此,可以利用Java Vuser来测试这些业务的执行效率。 Java应用中不能录制的业务模块 很多时候,一些J2EE架构的业务系统用 LoadRunner录制起来不是特别方便,例如一些Java智能客户端程序。这时可以手工编写测试代码,完成测试任务。与非Java应用相比,Java 应用中不能录制的业务功能更适合采用Java虚拟用户,因为可以直接对一些方法进行调用。
线程安全的含义是:程序中开启多个线程对同一个对象或者同一个变量进行资源争夺,在大压力或者cpu资源紧张的时候更容易出现,这样就会导致数据混乱等问题,因此就需要控制多个线程对某个资源的有序访问或修改。如果一个类在多线程的访问下,其状态是可以预测的,并且不需要额外的同步,那么这个类就是线程安全的类。没有修改只有读的操作或者操作不同的对象或者变量是线程安全的。
若要写出线程安全的代码,那么就需要注意以下事项:
1.不变对象 (1)它的所有字段都是 final
(2)该类声明为 final
(3)不允许 this 引用在构造期间逸出
(4)任何包含对可变对象(如数组、集合或类似 Date 的可变类)引用的字段:
a.是私有的
b.从来不被返回
c.是对它们所引用对象的唯一引用
d.构造后不会更改被引用对象的状态 2.可变对象
(1)明确共享资源 :类变量、实例变量
(2)利用同步和锁机制 :解决内存的可见性和互斥性 a)synchronized 保证可见性和互斥性
执行顺序如下:
(1)获得同步锁(互斥)
(2)清空线程工作内存
(3)从主存拷贝变量副本到线程工作内存(对本线程可见)
(4)在线程中对变量进行处理
(5)将变量从线程工作内存写回到主存(对其他线程可见)
(6)释放锁(解除互斥) b)volatile 只保证了可见性
直接操作主存
(1)本线程可以看到其他线程写入的最新结果
(2)其他线程也可以看到本线程写入的最新结果 c)wait,notify,notifyAll 用于线程间进行协调,从而使得共享资源不可能达到不一致的状态,因此共享资源是线程安全的 d) j.u.c包 也包括锁机制(Lock)、协调机制(Condition)
包结构:
(1)线程池
(2)同步集合
(3)锁
(4)原子操作 3. ThreadLocal类 线程本地变量,防止内存泄漏编写JavaVusr步骤:
1)分析被测项目和使用的技术,分析是否适合使用java Vuser 2)在eclipse中编写一个正确的模拟代码
3)将eclipse中代码移到lr中的Java Vuser
4)结合业务特点对脚本进行增强
5)使用controler设计场景
LR中怎么从web脚本转换到Java Vuser
1.把web中的lr脚本复制出来到1.txt中
2.在txt中把参数界定符部分需要手动改为<>
3.cmd打开Dos
4.cd c:\program Files\HP\LoadRunner\dat\
5.运行..\bin\sed -f web_to_java.sed c:\1.txt c:\java.txt
收藏
举报
TAG:
java