摘要:
1 # -*- coding:utf-8 -*- 2 3 """ 4 selenium webdriver 定位元素是通过使用 findElement() 和 findElements()方法. 5 findElement() 方法返回一个基于指定查询条件的 WebElement 对象或是抛出一个没有 6 找到符合条件元素的异常. 7 findElements()方法会返回匹配指定查询条件的 WebElement的集合,如果没有找到则返回为空. 8 findElement() 和 findElements() 方法当找不到相应的元素的时候就会抛出 NoSuchEl 阅读全文
posted @ 2013-06-10 19:58
Roger|
阅读(272)
评论(0)
推荐(0)
摘要:
是选择HTML还是URL录制,有以下参考原则:(1)基于浏览器的应用程序推荐使用HTML-based script。(2)不是基于浏览器的应用程序推荐使用URL-based script。(3)如果基于浏览器的应用程序中包含了JavaScript并且该脚本向服务器产生了请求,比如DataGrid的分页按钮等,也要使用URL-based script方式录制。(4)基于浏览器的应用程序中使用了HTTPS安全协议,使用URL-based script方式录制。 阅读全文
posted @ 2013-06-10 19:49
Roger|
阅读(188)
评论(0)
推荐(0)
摘要:
1.LoadRunner录制脚本时为什么不弹出IE浏览器? 当一台主机上安装多个浏览器时, LoadRunner 录制脚本经常遇到不能打开浏览器的情况,可以用下面的方法来解决。 启动浏览器,打开Internet选项对话框,切换到高级标签,去掉"启用第三方浏览器扩展(需要重启动)"的勾选,然后再次运行VuGen即可解决 问题 还有就是点击“我的电脑-》属性-》高级-》性能设置-》数据执行保护-》选择“仅为基本WINDOWS程序和服务启用DEP” 提示:通常安装Firefox等浏览器后,都会勾选上面得选项,导致不能正常录制。因此建议运行LoadRunner得主机上保持一个干净测 阅读全文
posted @ 2013-06-10 19:48
Roger|
阅读(247)
评论(0)
推荐(0)
摘要:
1 Action() 2 { 3 char * time; 4 char * str; 5 //获得当前系统时间,格式设置.将当前时间赋值给 times 6 lr_save_datetime("%Y-%m-%d %H:%M:%S",DATE_NOW + TIME_NOW,"times"); 7 //得到 times 的值 8 time = lr_eval_string("{times}"); 9 //输出 10 lr_output_message(time); 11 12 ... 阅读全文
posted @ 2013-06-10 19:47
Roger|
阅读(352)
评论(0)
推荐(0)
摘要:
当录制脚本时,VuGen会拦截client端(浏览器)与server端(网站服务器)之间的对话,并且通通记录下来,产生脚本。在VuGen的Recording Log中,您可以找到浏览器与服务器之间所有的对话,包含通讯内容、日期、时间、浏览器的请求、服务器的响应内容等等。脚本和Recording Log最大的差别在于,脚本只记录了client端要对server端所说的话,而Recording Log则是完整纪录二者的对话。当执行脚本时,您可以把VuGen想象成是一个演员,它伪装成浏览器,然后根据脚本,把当初真的浏览器所说过的话,再对网站伺服器重新说一遍,VuGen企图骗过服务器,让服务器以为它就 阅读全文
posted @ 2013-06-10 19:46
Roger|
阅读(256)
评论(0)
推荐(0)
摘要:
Transactions(用户事务分析) 用户事务分析是站在用户角度进行的基础性能分析。1、Transation Sunmmary(事务综述) 对事务进行综合分析是性能分析的第一步,通过分析测试时间内用户事务的成功与失败情况,可以直接判断出系统是否运行正常。2、Average Transaciton Response Time(事务平均响应时间) "事务平均响应时间"显示的是测试场景运行期间的每一秒内事务执行所用的平均时间,通过它可以分析测试场景运行期间应用系统的性能走向。 例:随着测试时间的变化,系统处理事务的速度开始逐渐变慢,这说明应用系统随着投产时间的变化,整体性能将 阅读全文
posted @ 2013-06-10 19:45
Roger|
阅读(189)
评论(0)
推荐(0)
摘要:
大家在使用selenium元素定位的时候,通常更多使用的是XPATH,css定位方式用得比较少 但有时候css定位方式还是有一些优势的, 优势1:一般情况下定位速度要比XPATH快 优势2:语法要比XPATH更简洁 下面简要介绍一下css元素选择器的语法 常见语法*通用元素选择器,匹配任何元素E标签选择器,匹配所有使用E标签的元素.infoclass选择器,匹配所有class属性中包含info的元素#footerid选择器,匹配所有id属性等于footer的元素E,F多元素选择器,同时匹配所有E元素或F元素,E和F之间用逗号分隔E F后代元素选择器,匹配所有属于E元素后代的F元素,E和F之间用 阅读全文
posted @ 2013-06-10 19:42
Roger|
阅读(404)
评论(0)
推荐(0)
摘要:
1 # -*- coding:utf-8 -*- 2 """ 3 class login 继承 unittest.Testcase 4 unittest.main()测试类中以 test 开头的测试用例 5 setUp:初始化 6 tearDown:只要setUp启动成功,不管以test开头的case程序是否执行成功, tearDown 都会被执行 7 """ 8 from selenium import webdriver 9 import unittest10 11 class login(unittest.TestCase):1 阅读全文
posted @ 2013-06-10 15:26
Roger|
阅读(214)
评论(0)
推荐(0)
摘要:
loadrunner录制下载文件,文件如何保存,如何获得服务器返回的文件名,保存文件时如何随机生成文件名在录制脚本的过程中,我们把下载文件的请求单独放到一个action中,我们先简单的分析一下录制下载文件的脚本,在脚本中只能看到这样一个下载的请求:web_url("download.php", "URL=http://211.147.208.141/cn/resources/download.php?id=386", "Resource=1", "RecContentType=application/force-downlo 阅读全文
posted @ 2013-06-10 01:35
Roger|
阅读(336)
评论(0)
推荐(0)
摘要:
数据分配方法Select next row 设置数据分配方法,包括: "Sequential、Random、Unique"。数据分配方法描述表 分配方法描述Sequential(顺序)"顺序" 方法是顺序地向 Vuser 分配数据。当正在运行的 Vuser 访问数据表时,它将会提取下一个可用的数据行。如果在数据表中没有足够的值,则 VuGen 返回到表中的第一个值,循环继续直到测试结束。Random(随机)"随机" 方法为每个 Vuser 分配一个数据表中的随机值,可以指定随机种子数。每个种子值代表用于测试执行的一个随机值顺序。每当使 阅读全文
posted @ 2013-06-10 01:34
Roger|
阅读(219)
评论(0)
推荐(0)
摘要:
AnalysisSummary:场景摘要 Period:场景运行的起止时间。 ScenarioName:场景名称 ResultsSession:场景运行的结果目录 Duration:场景运行的时间StatisticsSummary:场景状态的统计说明 MaximunRunning Vusers:场景最大用户数 TotalThroughput(bytes):总带宽流量 AverageThroughput(bytes/second):平均每秒带宽流量 Total Hits:总点击数AverageHits per Second:平均每秒点击量 Transaction Summary:事务摘要 Tot 阅读全文
posted @ 2013-06-10 01:33
Roger|
阅读(426)
评论(0)
推荐(0)
摘要:
1. Web Page Diagnostics(网页分析) 当场景中打开 Diagnostics 菜单下 Web Page Diagnostics 功能后, 才能得到网页分析组图。 通过该图, 可以对事务的组成进行抽丝剥茧的分析, 得到组成这个页面的每一个请求的时间分析, 进 一步了解响应时间中有关网络和服务器处理时间的分配关系。 可以实现对网站的前端性能分析, 明确系统响应时间较长是由服务器端处理能力不足还是客户端链接 到服务器的网络消耗导致的。 1.1 Web Page Diagnostics(网页分析) 该图先会得到整个场景运行后虚拟用户访问 Page 列表, 也就是所有页面下载时间列. 阅读全文
posted @ 2013-06-10 01:32
Roger|
阅读(379)
评论(0)
推荐(0)
摘要:
图的设置与操作Merge Graphs(合并图)合并图的3种方式:Overlay(叠加)、Tile(平铺)、Correlate(关联).Overlay:将两张图的通过x轴进行覆盖合并.tips:Running Vusers 和 Average Transaction Response Time 合并, 可以得到用户增长的过程是如何影响平均时间的.Tile:将两张图的Y轴为上、下部分,不做叠加.tips:Running Vusers 和 Hist per Second 合并, 可以看到随着用户数量增加每秒点击量的变化过程, 从而了解在当前负载下系统承受点击量峰值.Correlate:首先将主图的 阅读全文
posted @ 2013-06-10 01:30
Roger|
阅读(489)
评论(0)
推荐(0)
摘要:
这段时间天天测 WebService ,测得真想吐。WebService的测试方法,如果WebService中调用的方法需输入的参数本身就是个XML文件时:参数文件格式:<?xml version="1.0" encoding="UTF-8"?><root><header><lines><smsuser& amp;gt;<id>98d93b3c88cb471881493a1ddcb67d1e</id><batchId>test_batch_id_10< 阅读全文
posted @ 2013-06-10 01:29
Roger|
阅读(624)
评论(0)
推荐(0)
摘要:
web_reg_save_param_ex():关联web_get_int_property():可以使用该函数获取页面返回的一些东西,如状态码:200web_custom_request("web_custom_request", "URL=http://192.168.0.83:8080/message-center/ws/b2cSmsWebService", "Method=POST", "RecContentType=application/soap+xm... 阅读全文
posted @ 2013-06-10 01:28
Roger|
阅读(393)
评论(0)
推荐(0)
摘要:
1 # *-* coding: utf-8 *-* 2 3 #列表是可变的,有序的. 列表中可以存放任意混合数据类型 4 5 cast = ["Cleese", "Palin", "Jones", "Idle"] 6 print(cast) 7 8 #len() 获得列表长度 9 print(len(cast))10 #使用索引方式访问列表, 索引从 0 开始11 print(cast[1])12 #list.append() 在列表末尾添加一个数据项13 cast.append("Gilliam&quo 阅读全文
posted @ 2013-06-10 01:09
Roger|
阅读(499)
评论(0)
推荐(0)
摘要:
1 # *-* coding: utf-8 *-* 2 3 import os 4 5 #os.getcwd() 当前工作目录 6 os.getcwd() 7 8 #data = open('test1.txt') 9 #print(data.readline())10 11 #返回文件起始位置12 #data.seek(0)13 14 #if os.path.exists('test.txt'):15 try:16 data = open('test.txt') #打开文件17 for line in data:18 try:19 ... 阅读全文
posted @ 2013-06-10 01:07
Roger|
阅读(229)
评论(0)
推荐(0)
摘要:
class MyClass(object): count = 0 #类成员 def __init__(self): MyClass.count += 1 def getCount(self): return MyClass.count #返回计数器if __name__ == '__main__': f = MyClass() f1 = MyClass() print(MyClass.count) print(f1.getCount()) 阅读全文
posted @ 2013-06-10 01:03
Roger|
阅读(256)
评论(0)
推荐(0)
摘要:
静态方法使用 @staticmethod 修饰类成员方法使用 @classmethod 修饰class MyClass(object): @staticmethod def test1(): print("static test1") @classmethod def test2(cls): print("class method ", cls)if __name__ = '__main__' MyClass.test1() MyClass.test2() 阅读全文
posted @ 2013-06-10 01:02
Roger|
阅读(236)
评论(0)
推荐(0)
摘要:
property 4个参数, fget、 fset、 fdel、 doc实际上讲 get set del 方法绑定在一个成员变量上 1 class Rectangle(object): 2 def __init__(self): 3 self.width = 0 4 self.height = 0 5 6 def setSize(self, size): 7 self.width, self.height = size 8 9 def getSize(self):10 retur... 阅读全文
posted @ 2013-06-10 01:01
Roger|
阅读(185)
评论(0)
推荐(0)
摘要:
Web_find 函数与 Web_reg_find 函数区别:1. Web_find 普通函数2. Web_find 使用时必须开启内容检查选项 , Web_reg_find 没有此限制3. Web_find 只能用于基于 HTML 模式录制的脚本中,Web_reg_find 没有此限制4. Web_find 是在返回的页面中进行内容查找 , Web_reg_find 是在缓存中进行查找5. Web_find 在执行效率上不如 Web_reg_find录制模式HTML-based:模拟用户操作浏览器的过程.URL-based:模拟浏览器访问服务器发送 HTTP 请求的过程. 阅读全文
posted @ 2013-06-10 00:59
Roger|
阅读(187)
评论(0)
推荐(0)
摘要:
这个有两种做法一个是把100替换成一个参数,设置参数类型为随机,范围是1-30就行了第二种还是写变量的方法int s;s=rand()%30+1;lr_save_int(s,"temp");web_custom_request(......., "URL=http://192.168.1.211/{temp}/index.htm", ........ LAST);生成指定范围内的随机数产生一个X到Y的随机数:由于rand产生的随机数从0到rand_max,而rand_max是一个很大的数,那么如何产生从X~Y的数呢?只要这样写:k=rand()%(Y-X 阅读全文
posted @ 2013-06-10 00:58
Roger|
阅读(887)
评论(0)
推荐(0)
摘要:
Error -26610: HTTP Status-Code=502 (Bad Gateway)可以尝试关闭 Keep-Alive长连接模式Error -27796: Failed to connect to server "xxxxx":80 [10048] Address already in use导致这个错误的原因是模拟的连接用户太快而多,导致本地的TCP连接释放不过来 阅读全文
posted @ 2013-06-10 00:57
Roger|
阅读(576)
评论(0)
推荐(0)
摘要:
top命令能够实时监控系统的运行状态,并且可以按照CPU、内存和执行时间进行排序,同时top命令还可以通过交互式命令进行设定显示,通过top命令可以查看即时活跃的进行。命令行启动参数:用法: top -hv | -bcisSHM -d delay -n iterations [-u user | -U user] -p pid [,pid ...]-b : 批次模式运行。通常用作来将top的输出的结果传送给其他程式或储存成文件-c : 显示执行任务的命令行-d : 设定延迟时间-h : 帮助-H : 显示线程。当这个设定开启时,将显示所有进程产生的线程-i : 显示空闲的进程-n : 执行次数 阅读全文
posted @ 2013-06-10 00:56
Roger|
阅读(268)
评论(0)
推荐(0)
摘要:
CPU查询指令:cat /proc/cpuinfo内存查询指令:cat /proc/meminfo硬盘查询指令:fdisk-l (需要root权限)vmstat使用说明vmstat可以对操作系统的内存信息、进程状态、CPU活动、磁盘等信息进行监控,不足之处是无法对某个进程进行深入分析vmstat[-a] [-n] [-S unit] [delay [ count]]•-a:显示活跃和非活跃内存•-m:显示slabinfo•-n:只在开始时显示一次各字段名称。•-s:显示内存相关统计信息及多种系统活动数量。•delay:刷新时间间隔。如果不指定,只显示一条结果。•count:刷新次数。如果不指定 阅读全文
posted @ 2013-06-10 00:54
Roger|
阅读(211)
评论(0)
推荐(0)
摘要:
修改 bin 目录中的 catalina.bat 文件, 在头部注释部分后面加入:set JAVA_OPTS=%JAVA_OPTS%-Dcom.sun.management.jmxremote.port=8999-Dcom.sun.management.jmxremote.authenticate=false-Dcom.sun.management.jmxremote.ssl=false修改tomcat初始化大小bin/catalina.batJAVA_OPTS='-Xms 初始化内存大小 -Xms 可以使用的最大内存'Conf/server.xml调整连接线程maxThrea 阅读全文
posted @ 2013-06-10 00:52
Roger|
阅读(346)
评论(0)
推荐(0)
摘要:
启动、停止、重启 MySQL 是每个拥有独立主机的站长必须要撑握的操作一、启动方式1、使用 service 启动:servicemysqld start2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start3、使用 safe_mysqld 启动:safe_mysqld&二、停止1、使用 service 启动:service mysqld stop2、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop3、mysqladmin shutdown三、重启1、使用 service 启动:service mysqld restart2、使 阅读全文
posted @ 2013-06-10 00:50
Roger|
阅读(289)
评论(0)
推荐(0)
摘要:
http://www.cnblogs.com/sunwei2012/tag/最近看了一些Linux命令行的文章,在系统信息查看方面学到不少命令。想起以前写过的一篇其实Linux这样用更简单,发现这些系统信息查看命令也可以总结出一篇小小的东西来了。另外这里还有非常多的命令,可以作为参考。系统# uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostname # 查看计算机名# lspci -tv... 阅读全文
posted @ 2013-06-10 00:44
Roger|
阅读(186)
评论(0)
推荐(0)
摘要:
1 # -*- coding:utf-8 -*- 2 3 from selenium import webdriver 4 5 driver = webdriver.Firefox() #打开 Firefox 6 7 #driver = webdriver.Ie() #打开 IE 8 9 #driver = webdriver.Chrome() #打开 Chrome10 11 driver.get('http://www.baidu.com') #打开百度12 13 driver.get('... 阅读全文
posted @ 2013-06-10 00:18
Roger|
阅读(332)
评论(0)
推荐(0)

浙公网安备 33010602011771号