safari 查看源代码调用打印机,要求用代码实现,语言不限.

&&&&&&&&&&&&&&&&&&
posts - 50,comments - 143,trackbacks - 0
阅读排行榜
评论排行榜
做管理系统的时候,打印一直是个棘手的问题,做B/S的系统这个问题就更加突出了!下面举出三种常用的web打印处理方式
1、利用word或者excel来实现web打印(如果不修改ie设置,可以在web服务器端生成xls文件,然后通过xlBook = xls.Workbooks.Open(remotePath) 获取对象打印)
&& 实现过程:先将需要打印的数据导入到word或者excel中,再利用word或者excel的打印功能来实现web打印。
&& 下面以excel为例实现如何打印的过程
&& 将网页中数据导入excel中的方法有很多,这里先介绍一种,利用ActiveX控件的方式,即 Excel.Application, 这个控件是MS为excel提供的编程接口,在很多种编程语言种都可以通过该接口来操纵excel表格。
&& 下面用javascript脚本来实现一个简单的例子。
& script language="javascript"&
function ExcelPrint(){
var excelA//存放Excel对象
var excelB//存放Excel工件簿文件
var excelS//存放Excel活动工作表
excelApp = new ActiveXObject("Excel. Application");//创建Excel对象}
alert("请启用ActiveX控件设置!");
excelBook = excelApp.Workbooks.Add();//创建Excel工作簿文件
excelSheet = excelBook.ActiveS//激活Excel工作表
var rowLen = printTable.rows.//table对象的行数
for (var i=0;i& rowLi++){
var colLen = printTable.rows(i).cells.//table对象的列数
for (var j=0;j& colLj++)//为Excel表的单元格赋值
excelSheet.Cells(i+1,j+1).value = printTable.rows(i).cells(j).innerT} //将表格中的每个单元格的innerText导入到excel的单元格中
excelApp.Visible =//设置Excel对象可见}
excelSheet.PrintOut(); //打印工作表
excelBook.Close(true); //关闭文档
excelApp.Quit(); //结束excel对象
excelApp=& //释放excel对象
& /script&
&& 运行该程序的前提是 IE要允许对没有标记为安全的Activex控件进行初始化和脚本运行。设置方法如下:
&& 打开控制面板→Internet选项→安全性→自定义级别→对没有标记为安全的ActiveX控件进行初始化和脚本运行→选中启用,这样我们的程序就可以运行了。如果没有启用该ActiveX控件设置,那么程序在执行创建Excel对象时会抛出一个异常,这时可以通过catch()语句来捕获这个异常,并且做出相应的处理。
&& 运行该程序必须客户端安装了MS EXCEL,否则Activex驱动不了。
2、利用浏览器自带的打印控件来实现web打印
&& 实现过程:直接调用IE的打印功能或者在程序中调用window.print()来实现web打印,页眉和页脚会有网页标题、页码、网址,日期等信息,这些打印时如果不需要,怎样能去掉呢。做法其实很简单,只有在IE的文件菜单中打开页码设置对话框,去掉页眉页脚中设置的哪些信息,就可以了。但是这需要每个客户端都去手动设置一次。如果不想让每个客户端都手动去设置一次,也可以用代码通过修改注册表的键值来实现。
&& 下面是用VBScript来实现的修改注册表的过程:
&& & script language="VBScript"&
dim path, reg
'path存放IE打印设置的注册表地址, reg存放WScript.Shell组件的对象
path = "HKEY_CURRENT_USER\Software\Micro-soft\Internet Explorer\PageSetup"
'通过注册表修改打印设置,只修改页眉、页脚和各边界的值
'参数说明:header--页眉,footer--页脚,margin_left--左边界
'margin_top--上边界,margin_right--右边界,margin_bottom--下边界
'页边距的设置中 1对应25.4mm,即margin_left=1表示实际值的25.4mm
function pagesetup(header, footer, margin_left, margin_top, margin_right, margin_bottom)
On Error Resume Next
Set reg = CreateObject("WScript.Shell")
if err.Number&0 then
MsgBox "不能创建WScript.Shell对象!"
exit function
reg.RegWrite path+"\header", header'设置页眉
reg.RegWrite path+"\footer", footer '设置页脚
reg.RegWrite path+"\margin_left", margin_left'设置左边界
reg.RegWrite path+"\margin_top", margin_top'设置上边界
reg.RegWrite path+"\margin_right", margin_right'设置右边界
reg.RegWrite path+"\margin_bottom", margin_bottom'设置下边界
end function
& /script&
还有一点需要注意的是,利用window.print()这样的方法来打印,是直接弹出打印对话框,而不是打印预览的窗口。一般来说用户希望先打印预览一下,然后再打印。或者有的格式固定的,每次都是一样的格式,就希望不弹出打印对话框,直接就打印出来。
还有的用户希望每个打印都是直接和一种纸张绑定好,打印时候直接就调用那种类型的纸张来打印,这样window.print()显然远远不够。
3、利用第三方的控件或者报表软件来实现web打印
&& 实现过程:第三方控件将打印的参数和方法封装成对象,在页面中可以方便的直接调用,例如ScriptX.cab,eprint.cab 都是这种类型的控件。可以直接用代码实现web打印页眉页脚的设置,web打印纸张的绑定,web打印边距的设置,web打印预览,直接web打印。
&& web打印格式设置,web打印分页,web打印换页重新打印某些信息,某些信息只能第一页打印,某些信息只能最后一页打印等等这些,也都解决方案。Scriptx没有处理这些的方案,webprint有webgrid和eprint两种解决方案,行列规则的表格式的可以简单webgrid来处理,复杂格式的可以用eprint来设计格式。
&& 一般这种类型的打印控件都是需要收费的,用户可以从经济的角度来考虑。
==========================================================================================================
一、 浏览器的打印功能菜单
这种方案的优势是不需要对浏览器作任何扩充,是最简单的办法,但问题也最多,如:
不能精确分页。
浏览器一般是根据用户设置的页面大小,web页面的内容多少,来自行决定分页位置,程序员很难控制。会有页脚页眉干扰。
不能准确对齐边边距及打印文字。
不能解决连续打印。
比如,不是仅打印一张票据,而是连续一次打印若干个票据。
二、 使用webbrowser控件+ javascript
这实际上,是浏览器打印功能菜单的一种程序调用,与打印功能菜单没什么两样。分页的问题仍然存在,只不过,可以让用户不用去点菜单,直接在网页中的一个按钮,或一个链接里面调用罢了。
三、 使用print css
这是一种最理想的实现web套打的方法。这种方法通过在html文档中,嵌入打印相关的css样式,来实现对html文档输出打印的控制,比如设置纸张大小,纸张纵横方向,打印边距,分页等。显而易见,这种方式成本小,不需要下载任何插件,而且跨平台性非常好。print css推出已经有些时日,但遗憾的是,至今没有一个厂商的浏览器很好地实现了这些标准,这使得程序员目前还不能利用print css进行实际的开发。关于打印css,参见:
四、 使用pdf文件
用这种方式,就是从服务器端下载一个pdf文件流,在IE中用adobe插件打开,然后用adobe的打印菜单进行打印,虽然这种方案,也能实现精确套打,但需要下载adobe插件。这是国外报表工具经常推荐的一种打印方法,但在pdf不那么普及的中国,这种方案不是最好选择。
五、 采用纯ActiveX
这种方案就是下载一个控件,票据的数据不再以html方式呈现,而是呈现在ActiveX中。这种方案的优点是打印的精确度高,分页的可控性好,但缺点也是很明显的,嵌入ActiveX控件破坏了web应用的整体html风格,且这样的控件比较大(一般超过1M,下载颇费时间)。市场上的非java类报表产品,一般都采用这种方案。
六、 采用Applet方式
采用Applet方式,分页或精确打印,都可以做到完美,但缺点也很明显,表现在:
安装Applet成本巨大。需要下载十几M的文件。
Applet本身可能并不大,但运行Applet所需的jre一般至少10几M(jre1.4.2 , 15.45M)。用户需要极大的耐心,来进行打印。
打印报表时,需要重新向服务器检索数据,效率低。
因为Applet方案,一般采用html方式呈现数据,打印时Applet必须向服务器检索同一张票据的数据,看上去,是打印了当前页的票据,实际上,Applet根本不会用当前html页的数据来打印,而是向服务器下载数据到Applet中来打印。也就是说,打印的话,必须两次请求,一次html呈现,一次用来打印。
市场上java类的报表工具,一般推荐Applet方式来实现打印。
七、 轻量级的ActiveX打印方式
这是本公司应客户要求,最新推出的一种最具创意的web套打解决方案。
杰表作为一款纯java的报表工具,以前提供的web套打方案也是基于Applet的,Applet也做到了尽可能的小(只有24kb),但用户还是抱怨,因为jre太大,安装需要耐心。另外,用Applet方式,很难实现客户端的批量打印功能。
我们采用轻量级的ActiveX打印方案,很好地解决了客户的问题。以下是一个典型的该种方案的示例
阅读(39535)
&re: web打印,web打印控件的三种实现方法
zz[未登录]
不错,长见识了。&&&&&&
&re: web打印,web打印控件的三种实现方法
国内的 jatoolsPrinter 做得挺不错。我们项目中在用。
&re: web打印,web打印控件的三种实现方法
ReYoPrint (锐洋.打印控件)是一款实现网页套打的专用工具。作为web应用开发者,我们经常会遇到在浏览器中打印报表、票据的需求,这些需求浏览器本身的打印功能一般不能满足, 如精确打印,分页,套打等。这就需要有一种能解决常见的浏览器端打印问题的软件工具,这也是 ReYoPrint 的研发背景。ReYoPrint内含一个在vc7.0上开发的ActiveX控件(73k), 这个控件主要实现对打印参数的控制,ReYoPrint使用户通过JavaScript脚本可以控制分页,页眉页脚,页边距,打印方向,自定义纸张,直接打印,弹出打印对话框再打印,预览,放缩打印,成批打印,套打等功能
ReYoPrint 的主要功能有:
支持设置打印参数,纸张类型,打印方向(横、竖)等 。
支持自定义的页脚、页眉设置。
支持打印区域拖拽及鼠标滚轮放大缩小功能。
支持程序分页与自动分页(支持ESC关闭预览窗口)。
支持打印预览,支持预览时指定页、指定份数打印。
支持直接打印指定票据的URL。
支持票据套打时,底图仅在打印预览时显示,不输出到打印机。
小巧,整个控件只有73K,不需要额外的软件包支持。
与您项目采用的技术标准无关,J2EE、.NET 项目均可。
IE 5.5+ 中适用。
ReYoPrint 的缺点有:
由于控件是基于WebBroser的所以,目前只支持基于IE的WEB打印。
不支持直接打印时选择打印机进行打印。&&&&&&
&re: web打印,web打印控件的三种实现方法
web打印的需求总在变,远不止这些:
一开始人们只希望把网页内容完整打出来;之后希望打印的内容不要包含页眉页脚;再之后希望不要总是弹出打印对话框,能打印多页,能分页;后来希望打印的位置准确点;再后来希望位置能操作调整,调整后的内容能保存,此后有的希望能打印不显示的内容;再此后就是显示是显示,打印是打印;能打印多个页面的内容,能只按地址打印,能适应各类浏览器...,实际上,这个需求变化的过程就有“网页浏览查看”向“管理系统界面”发展的过程。为什么打印控件lodop一问世就如此流行?方向很重要!控件要能满足未知的需求,开发者才不至于走冤枉路。&&&&&&
&re: web打印,web打印控件的三种实现方法
好文章,收藏了 Java乐园技术交流, 2群群号:&&&&&&
&re: web打印,web打印控件的三种实现方法
北京方成公司的打印插件,很不错!
使用特别方便,就是一个很小的activex控件,页面后,就能使用了
设置页边距,页眉页脚,横向,纵向
设置自定义纸张,特定报表绑定特别纸张,指定打印机打印报表
打印url,一次打印多份文档,打印完成后回调事件等等。
有兴趣可以看看 .cn&&&&&&
&re: web打印,web打印控件的三种实现方法
如果能自己写一个打印控件就好了&&&&&&
&re: web打印,web打印控件的三种实现方法
PAZU -- 4Fang WEB 打印控件 很不错!&&&&&&
sdreee&&&&&&
&re: web打印,web打印控件的三种实现方法
Eloon WebPrint是为满足不同用户对WEB单据有不同的打印需求而产生,充分考虑到了用户的使用习惯,简单的操作就能定制出理想的打印格式,并且可以把打印格式保存为XML格式描述文档,在下次再进入该页面时,自动加载此格式描述文档进行打印做业。 Eloon WebPrint把打印格式的控制权交给了用户,完全解脱软件开发人员对WEB打印的开发与维护的工作,因此大大加快项目开发进度,为公司节省开发及维护成本。可以自定义的内容如下:1. 自定义默认打印机,打印纸型,打印方向,边距。2. 自定义打印页眉信息。3. 自定义打印标题。4. 自定义打印表首信息。5. 自定义打印表格输出的列及列宽、数据对齐、格式化数据、合计项目控制等。6. 自定义打印表尾信息。7. 自定义打印页脚信息。有中文版.有兴趣可以看看 &&&&&&
&re: web打印,web打印控件的三种实现方法
@interdrp
reyo 双打的SCRIPT 在哪呢&&&&&&
&re: web打印,web打印控件的三种实现方法
试试看.&&&&&&
&re: web打印,web打印控件的三种实现方法
不错&&&&&&
&re: web打印,web打印控件的三种实现方法
谢谢,收藏了
&&&&&&
&re: web打印,web打印控件的三种实现方法
打印报表时,需要重新向服务器检索数据,效率低。
因为Applet方案,一般采用html方式呈现数据,打印时Applet必须向服务器检索同一张票据的数据,看上去,是打印了当前页的票据,实际上,Applet根本不会用当前html页的数据来打印,而是向服务器下载数据到Applet中来打印。也就是说,打印的话,必须两次请求,一次html呈现,一次用来打印。
可以通过调用applet的方法将打印内容传进去啊
唯一的遗憾是要弹个是否允许使用打印机的提示,&&&&&&
&re: web打印,web打印控件的三种实现方法
zz[未登录]
国内最专业的打印控件:jatoolsPrinter且支持chrome,opera,firefox 等非IE浏览器。&&&&&&
&re: web打印,web打印控件的三种实现方法
好像lodop快一统江湖了。&&&&&&
&re: web打印,web打印控件的三种实现方法
zz[未登录]
jatoolsPrinter (杰表打印控件) 是国内最专业的网页打印的工具。解决了web客户端精确打印,批量打印,打印配置自动保留等问题。 1、小巧,整个控件只有200k。 2、可以打印预览。 3、支持一维码,二维码显示、打印功能。4、有可视化设计套打功能,可轻松地拖拽位置、调整样式,保存调整结果;5、支持票据上万份的连续批量打印,不走样、不偏移。6、完美支持复杂表格分页。7、支持excel导出功能。8、支持浏览器有IE、Firefox、Chrome、Opera、Safari,带微软数字签名。9、大型电子政务项目、各大软件开发商指定打印控件。 &&&&&&
&re: web打印,web打印控件的三种实现方法
jatoolsPrinter有基于web的设计器,允许用户在打印时,拖放打印位置:&&&&&&
&re: web打印,web打印控件的三种实现方法
不错的文档,感谢分享,我们公司之前做了一个japerreport报表项目就需要打印功能。找来市面上几乎所有的web打印控件,发现在几百台机子的情况下,稳定性最好的还是jatoolsPrinter.&&&&&&
&re: web打印,web打印控件的三种实现方法
貌似不错的样子!&&&&&&
&re: web打印,web打印控件的三种实现方法
zz[未登录]
好厉害,学习了&&&&&&三星激光打印机1607使用详细教程
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
三星激光打印机1607使用详细教程
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口热门搜索:
您的位置: -&
软件教程分类查找
非常抱歉!2345软件大全没能为您提供完善服务,万分感谢能得到您的指点!
您的建议:
第二章 通讯相关
第三章 下载同步
第四章 网络设置
第五章 铃声视频
第六章 个性优化
第七章 拍摄技巧
第八章 安全设置
第九章 实用技巧
第十章 相关问题
第十一章 其他设置
第二章 网络共享
第三章 同步传输
第四章 个性优化
第五章 实用技巧
第六章 相关问题
精品软件课程
人气:302997
苹果iOS是由苹果公司开发的手持设备操作系
人气:99532
Android(安卓)操作系统是一种以Linux为基
包含手机技巧、手机省电、手机保养、手机拍
人气:34367
Windows Phone 7是微软公司发布的一款手机
小游戏推荐
iOS7的Safari使用技巧
出处:百度经验
人气:2831
核心提示:在苹果最新发布的 iOS 7 测试版系统中,Safari有很大的改变。不仅在界面上有改变,而且在操作上方式上也有很大的改变。下面为大家分享一些在 Safari 使用方面的技巧。
  在苹果最新发布的 iOS 7 测试版系统中,Safari有很大的改变。不仅在界面上有改变,而且在操作上方式上也有很大的改变。下面为大家分享一些在 Safari 使用方面的技巧。
  网页标签页切换
  1、这次 Safari 最大的改进当属网页标签页切换功能,网页标签以3D卡片显示。打开 Safari 以后,点击屏幕右下角的“标签页切换”按钮,如图所示
  2、接下来就可以看到我们当前打开的所有网页了。
  1.、点击想要显示的网页标签即可打开该网页。
  2.、打开新的网页请点击屏幕底部中间的“+”图标。
  3、若要直接返回,请点击“完成”按钮,如图所示
  3、当我们点击 Safari 地址栏时,会显示个人收藏中的网页图标。点击图标即可打开该网站,如图所示
提示:试试键盘上的"← →"键,翻页更方便哦!
评论问答区
资源统计:无插件软件:93054个 无病毒软件:93346个 昨日已处理133个带插件、病毒的软件
本站总软件:93346个 软件总下载次数:22.51亿次
软件教程文章:82261篇 总浏览次数:2.594亿次问题六:常见的测试方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。1.& && && &等价类划分划分等价类: 等价类是指某个输入域的子集合.在该子集合中,各个输入数据对于揭露程序中的错误都是等效的.并合理地假定:测试某等价类的代表值就等于对这一类值的测试.因此,可以把全部输入数据合理划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,就可以用少量代表性的测试数据.取得较好的测试结果.等价类划分可有两种不同的情况:有效等价类和无效等价类.2.& && && &边界值分析法  边界值分析方法是对等价类划分方法的补充。测试工作经验告诉我,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部.因此针对各种边界情况设计测试用例,可以查出更多的错误.  使用边界值分析方法设计测试用例,首先应确定边界情况.通常输入和输出等价类的边界,就是应着重测试的边界情况.应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据.3.& && && &错误推测法  基于经验和直觉推测程序中所有可能存在的各种错误, 从而有针对性的设计测试用例的方法.  错误推测方法的基本思想: 列举出程序中所有可能有的错误和容易发生错误的特殊情况,根据他们选择测试用例. 例如, 在单元测试时曾列出的许多在模块中常见的错误. 以前产品测试中曾经发现的错误等, 这些就是经验的总结. 还有, 输入数据和输出数据为0的情况. 输入表格为空格或输入表格只有一行. 这些都是容易发生错误的情况. 可选择这些情况下的例子作为测试用例.4.& && && &因果图方法前面介绍的等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系, 相互组合等. 考虑输入条件之间的相互组合,可能会产生一些新的情况. 但要检查输入条件的组合不是一件容易的事情, 即使把所有输入条件划分成等价类,他们之间的组合情况也相当多. 因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来考虑设计测试用例. 这就需要利用因果图(逻辑模型). 因果图方法最终生成的就是判定表. 它适合于检查程序输入条件的各种组合情况.5.& && && &正交表分析法有时候,可能因为大量的参数的组合而引起测试用例数量上的激增,同时,这些测试用例并没有明显的优先级上的差距,而测试人员又无法完成这么多数量的测试,就可以通过正交表来进行缩减一些用例,从而达到尽量少的用例覆盖尽量大的范围的可能性。6.& && && &场景分析方法指根据用户场景来模拟用户的操作步骤,这个比较类似因果图,但是可能执行的深度和可行性更好。问题七:您认为做好测试用例设计工作的关键是什么?白盒测试用例设计的关键是以较少的用例覆盖尽可能多的内部程序逻辑结果黑盒法用例设计的关键同样也是以较少的用例覆盖模块输出和输入接口。不可能做到完全测试,以最少的用例在合理的时间内发现最多的问题问题八:详细的描述一个测试活动完整的过程。1.& && && &项目经理通过和客户的交流,完成需求文档,由开发人员和测试人员共同完成需求文档的评审,评审的内容包括:需求描述不清楚的地方和可能有明显冲突或者无法实现的功能的地方。项目经理通过综合开发人员,测试人员以及客户的意见,完成项目计划。然后SQA进入项目,开始进行统计和跟踪2.& && && &开发人员根据需求文档完成需求分析文档,测试人员进行评审,评审的主要内容包括是否有遗漏或者双方理解不同的地方。测试人员完成测试计划文档,测试计划包括的内容上面有描述。3.& && && &测试人员根据修改好的需求分析文档开始写测试用例,同时开发人员完成概要设计文档,详细设计文档。此两份文档成为测试人员撰写测试用例的补充材料。4.& && && &测试用例完成后,测试和开发需要进行评审。5.& && && &测试人员搭建环境6.& && && &开发人员提交第一个版本,可能存在未完成功能,需要说明。测试人员进行测试,发现BUG后提交给BugZilla。7.& && && &开发提交第二个版本,包括Bug Fix以及增加了部分功能,测试人员进行测试。8.& && && &重复上面的工作,一般是3-4个版本后BUG数量减少,达到出货的要求。9.& && && &如果有客户反馈的问题,需要测试人员协助重现以及回归测试。问题九:以往是否曾经从事过性能测试工作?请尽可能的详细描述您以往的性能测试工作的完整过程。& && & 曾经做过一套网管系统的性能测试,主要测试该软件在同时管理大量终端的情况下,在响应时间,CPU/磁盘/内存等参数是否满足要求。& && & 也曾经做过软交换系统的呼叫性能测试,主要是测试软交换系统在有大量呼叫的情况下,响应时间,呼叫成功率,CPU/磁盘/内存等参数是否满足设计要求。问题十:您在从事性能测试工作时,是否使用过一些测试工具?如果有,请试述该工具的工作原理,并以一个具体的工作中的例子描述该工具是如何在实际工作中应用的。& && & 测试网管系统中,使用的Mimic来模拟终端,能够大量的节省成本。& && & 测试软交换系统的时候,使用的Prolab来模拟终端并发送呼叫软交换,他完成了同时数百人才能完成的摘机拨号工作,主要工作原理是产生一些符合要求的IP包并发送给软交换系统,同时对软交换系统的回应进行处理,决定下一步动作。问题十一:您认为性能测试工作的目的是什么?做好性能测试工作的关键是什么?主要是保障在大量用户的情况下,服务能正常使用。问题十二:在您以往的工作中,一条软件缺陷(或者叫Bug)记录都包含了哪些内容?如何提交高质量的软件缺陷(Bug)记录?1.& && && &在传统的BugZilla中,BUG描述应该包括以下的信息2.& && && &和BUG产生对应的软件版本3.& && && &开发的接口人员4.& && && &BUG的优先级5.& && && &BUG的严重程度6.& && && &BUG可能属于的模块,如果不能确认,可以用开发人员来判断7.& && && &BUG标题,需要清晰的描述现象8.& && && &BUG描述,需要尽量给出重新Bug的步骤9.& && && &BUG附件中能给出相关的和截图。& && & 高质量的BUG记录就是指很容易理解的BUG记录,所以,对于描述的要求高,能提供的信息多且准确,很好的帮助开发人员定位。
问题十二:BUG管理工具的跟踪过程& && & 用BugZilla为例子& && &测试人员发现了BUG,提交到Bugzilla中,状态为new,BUG的接受者为开发接口人员开发接口将BUG分配给相关的模块的开发人员,状态修改为已分配开发人员和测试确认BUG,如果是本人的BUG,则设置为接收;如果是别的开发人员的问题,则转发出去,由下一个开发人员来进行此行为;如果认为不是问题,则需要大家讨论并确认后,拒绝这个BUG,然后测试人员关闭此问题。如果开发人员接受了BUG,并修改好以后,将BUG状态修改为已修复,并告知测试在哪个版本中可以测试。测试人员在新版本中测试,如果发现问题依然存在,则拒绝修改;如果已经修复,则关闭BUG。问题十二:您认为在测试人员同开发人员的沟通过程中,如何提高沟通的效率和改善沟通的效果?维持测试人员同开发团队中其他成员良好的人际关系的关键是什么?& && & 尽量能有面对面的沟通,如果做不到,那么尽量能直接通过电话沟通,如果只能通过Email等非及时沟通工具的话,强调必须对特性的理解深刻以及能表达清楚。& && & 一是真诚,二是团队精神,三是在专业上有共同语言,当然也可以通过直接指出一些小问题,而不是进入BUG Tracking System来增加对方的好感。问题十三:在您以往的测试工作中,最让您感到不满意或者不堪回首的事情是什么?您是如何来对待这些事情的?& && & 某次性能测试覆盖不足,造成系统崩溃。问题十四:你对测试最大的兴趣在哪里?为什么?最大的兴趣就是测试有难度,有挑战性!做测试越久越能感觉到做好测试有多难。曾经在无忧测试网上看到一篇,是关于如何做好一名测试工程师。一共罗列了11,12点,有部分是和人的性格有关,有部分需要后天的努力。但除了性格有关的1,2点我没有把握,其他点我都很有信心做好它。刚开始进入测试行业时,对测试的认识是从无忧测试网上了解到的一些资料,当时是冲着做测试需要很多技能才能做的好,虽然入门容易,但做好很难,比开发更难,虽然当时我很想做开发(学校专业课我基本上不缺席,因为我喜欢我的专业),但看到测试比开发更难更有挑战性,想做好测试的意志就更坚定了。我觉得做测试整个过程中有2点让我觉得很有难度(对我来说,有难度的东西我就非常感兴趣),第一是测试用例的设计,因为测试的精华就在测试用例的设计上了,要在版本出来之前,把用例写好,用什么测试方法写?(也就是测试计划或测试策略),如果你刚测试一个新任务时,你得花一定的时间去消化业务需求和技术基础,业务需求很好理解(多和产品经理和开发人员沟通就能达到目的),而技术基础可就没那么简单了,这需要你自觉的能力,比如说网站吧,最基本的技术知识你要知道网站内部是怎么运作的的,后台是怎么响应用户请求的?测试环境如何搭建?这些都需要最早的学好。至少在开始测试之前能做好基本的准备,可能会遇到什么难题?需求细节是不是没有确定好?这些问题都能在设计用例的时候发现。第二是发现BUG的时候了,这应该是测试人员最基本的任务了,一般按测试用例开始测试就能发现大部分的bug,还有一部分bug需要测试的过程中更了解所测版本的情况获得更多信息,补充测试用例,测试出bug。还有如何发现bug?这就需要在测试用例有效的情况下,通过细心和耐心去发现bug了,每个用例都有可能发现bug,每个地方都有可能出错,所以测试过程中思维要清晰(测试过程数据流及结果都得看仔细了,bug都在里面发现的)。如何描述bug也很有讲究,bug在什么情况下会产生,如果条件变化一点点,就不会有这个bug,以哪些最少的操作步骤就能重现这个bug,这个bug产生的规律是什么?如果你够厉害的话,可以帮开发人员初步定位问题。问题十五:你的测试职业发展目标是什么?测试经验越多,测试能力越高。所以我的职业发展是需要时间累积的,一步步向着高级测试工程师奔去。而且我也有初步的职业规划,前3年累积测试经验,按如何做好测试工程师的11,12点要求自己,不断的更新自己改正自己,做好测试任务。问题十六:你自认为测试的优势在哪里?有韧性有能力面对挑战有信心做好每一件事情有比较好的教育背景从以前的经理处都得到了很好的评价表明我做的很好问题十七:当开发人员说不是BUG时,你如何应付?如果确实是自己理解错误,则承认错误,没什么大不了如果是需求不明,请项目经理补充清楚如果双方理解不一致,且都不能互相说服,则请项目经理判断。问题十八:你为什么想离开目前的职务?问题十九:你对我们公司了解有多少?问题二十:你找工作时,最重要的考虑因素为何?工作的性质和内容是否能让我发挥所长,并不断成长。问题二十一:为什么我们应该录取你?您可以由我过去的工作表现所呈现的客观数据,明显地看出我全力以赴的工作态度。问题二十二:请谈谈你个人的最大特色。我的坚持度很高,事情没有做到一个令人满意的结果,绝不罢手。问题二十三:一个测试工程师应具备那些素质和技能?问题二十四:集成测试通常都有那些策略?& && & 自上而下,自下而上,平面集成问题二十五:测试结束的标准是什么?& && & 从微观上来说,在测试计划中定义,比如系统在一定性能下平稳运行72小时,目前Bug Tracking System中,本版本中没有一般严重的BUG,普通BUG的数量在3以下,BUG修复率90%以上等等参数,然后由开发经理,测试经理,项目经理共同签字认同版本Release。& && & 如果说宏观的,则是当这个软件彻底的消失以后,测试就结束了。问题二十六:软件验收测试除了alpha,beta测试以外,还有哪一种?第三方验收测试问题二十七:为什么选择测试这行?最开始么,公司安排的,然后么,干一行爱一行,发现测试中间还是有很多东西需要学习的,再就是测试中有很多东西值得改进和研究。问题二十六:为什么值得他们公司雇用?& && &用自己的经验和其他同事一起发现更多的问题,同时不同行业的观点可以互相借鉴。问题二十七:如果我雇用你,你能给部门带来什么贡献?& && &分享我的测试经验和测试技能,提高测试部门技术水平
&&&1.LoadRunner录制脚本时为什么不弹出IE浏览器?  当一台主机上安装多个浏览器时,录制脚本经常遇到不能打开浏览器的情况,可以用下面的方法来解决。
  启动浏览器,打开Internet选项对话框,切换到高级标签,去掉“启用第三方浏览器扩展(需要重启动)”的勾选,然后再次运行VuGen即可解决问题
  提示:通常安装Firefox等浏览器后,都会勾选上面得选项,导致不能正常录制。因此建议运行LoadRunner得主机上保持一个干净的环境。
  2.录制脚本时,生成的脚本中存在乱码该如何解决?
  录制脚本前,打开录制选项配置对话框Record-Options,进入到Advanced标签,先勾选“Support charset”,然后选择中支持UTF-8。再次录制,就不会出现中文乱码问题了。
  3.HTML-based script与URL-based script的脚本有什么区别?
  使用“HTML-based script”的模式录制脚本,VuGen为用户的每个HTML操作生成单独的步骤,这种脚本看上去比较直观;使用“URL-based script”模式录制脚本时,VuGen可以捕获所有作为用户操作结果而发送到服务器的HTTP请求,然后为用户的每个请求分别生成对应方法。
  通常,基于浏览器的Web应用会使用“HTML-based script”模式来录制脚本;而没有基于浏览器的Web应用、Web应用中包含了与服务器进行交互的Java Applet、基于浏览器的应用中包含了向服务器进行通信的JavaScript/VBScript代码、基于浏览器的应用中使用了HTTPS安全协议,这时使用“URL-based script”模式进行录制。
  4.为什么脚本中添加了检查方法Web-find,但是脚本回放时却没有执行?
  由于检查点功能会耗费一定的资源,因此LoadRunner默认关闭了对文本及图像的检查。要想开启检查功能,必须修改运行时的配置Run-time Setting。
  进入“Run-time Setting”对话框,依次进入“Internet Protocol→Preferences”,勾选Checks下的“Enable Image and text check”选项即可。
  检查执行结果时推荐使用web_reg_find方法。
  5.运行时的Pacing设置主要影响什么?
  Pacing主要用来设置重复迭代脚本的间隔时间。共有三种方法:上次迭代结束后立刻开始、上次迭代结束后等待固定时间、按固定或随机的时间间隔开始执行新的迭代。
  根据实际需要设置迭代即可。通常,没有时间间隔会产生更大的压力。
  6.运行时设置Log标签中,如果没有勾选“Enable logging”,则手工消息可以发送吗?
  Enable logging选项仅影响自动记录和通过lr_log_message发送的消息。即使没有勾选,虚拟用户脚本中如果使用lr_message、lr_output_message、lr_error_message,仍然会记录其发出的消息。
  7.LoadRunner 8.0版本的VuGen在录制Web Services协议的脚本时一切正常,而回放时报出错误提示“Error: returned an incorrectly formatted SOAP response”。这时说明原因引起的?
  造成这种情况的主要原因是LoadRunner 8.0的VuGen在录制Web Service协议的脚本时存在一个缺陷:如果服务器的是中文的,VuGen会自动将WSDL文件的头改为,因此会有上面的错误提示。
  解决方法:把“LR80WebservicesFPI_setup.exe”和“lrunner_web_sevices_path_1.exe”两个补丁打上即可解决。 8.VuGen支持Netscape的客户证书吗?
  不支持。目前的VuGen 8.0版本中仅支持Internet Explorer的客户端证书。录制脚本时可以先从Netscape中导出所需的证书,然后将其导入到Internet Explorer中,并确保以相同的顺序导出和导入这些证书。而且,在每台将要录制或运行需要证书的Web Vuser脚本的计算机上都要重复执行前面的过程。
  9.VuGen会修改录制浏览器中的代理服务器设置吗?
  会修改。在开始录制基于浏览器的Web Vuser脚本时,VuGen首先会启动指定的浏览器。然后,VuGen会指示浏览器访问VuGen代理服务器。为此,VuGen会修改录制浏览器上的代理服务器设置。默认情况下,VuGen会立即将代理服务器设置更改为Localhost:7777。录制之后,VuGen会将原始代理服务器设置还原到该录制浏览器中。因此,在VuGen进行录制的过程中,不可以更改代理服务器设置,否则将无法正常进行。
  10.在LoadRunner脚本如何输出当前系统时间?
  LoadRunner提供了char *ctime(const time_t *time)函数,调用参数为一个Long型的整数指针,用于存放返回时间的数值表示。
  调用语句与返回值如下示例:
  typedef long time_t;
  Action()
  lr_message(“Time in seconds since 1/1/70: %ld ”,time(&t));
  lr_message(“System time and date: %s”,ctime(&t));
  输出结果为:
  Time in seconds since 1/1/70:
  System time and date:Wed Jul 25 10:19:28 2007
  11.一些Web虚拟用户脚本录制后立刻回放没有任何问题,但是当设置迭代次数大于1时,如果进行回放则只能成功迭代一次。为什么从第二次迭代开始发生错误?
  这种现象多是由于在“Run-time Setting”的“Browse Emulation”的设置中,勾选了“Simulate a new user on each iteration”及其下面的选项“Clear cache on each iteration”这两个选项的含义是每次迭代时模拟一个新的用户及每次迭代时清除缓存。
  由于脚本迭代时,init和end只能执行一次,如果每次迭代都模拟一个新的用户并清除缓存,
则用户登录信息将一并清除,因此迭代时可能会发生错误。
  12.虚拟客户脚本“Run-time Setting”中的线程和进程运行方式的区别?
  如果选择“Run Vuser as a process”,则场景运行时会为每一个虚拟用户创建一个进程;选择“Run Vuser as a thread”则将每个虚拟用户作为一个线程来运行,在任务管理器中只看到一个mmdrv.exe,这种方式的运行效率更高,能造成更大的压力,时默认选项。
  另外,如果启用了IP欺骗功能,则先在Controller中选中Tools菜单下的“Expert Mode”,然后将Tools菜单下的“Options&General”标签页中的IP地址分配方式也设置为与Vuser运行方式一致,同为线程或进程方式。
  13.在Controller中运行Web相关测试场景时,经常会有很多超时错误提示,如何处理这类问题?
  这主要有脚本的默认超时设置引起。当回放Web脚本时,有时候由于服务器响应时间较长,会产生超时的错误。这时需要修改脚本的运行时配置。
  进入“Run-time Setting”对话框后,依次进入“Internet Protocol→Preference”。然后点击“Options…”按钮,进入高级设置对话框,可以修改各类超时设置的默认值。
  14.为什么系统中的CPU、内存等资源仍然充足,但是模拟的用户数量却上不去?
  在Windows计算机的标准设置下,操作系统的默认限制只能使用几百个Vuser,这个限制与CPU或内存无关,主要是操作系统本身规定了默认的最大线程数所导致。要想突破Windows这个限制,须修改Windows注册表。以Windows XP Professional为例。
  (1)打开注册表后,进入注册表项HKEY_LOCAL_MACHINE中的下列关键字:SystemCurrentControlSetControlSession ManagerSubSystems。
  (2)找到Windows关键字,Windows关键字如下所示:
  %SystemRoot%system32csrss.exe bjectDirectory=Windows
  SharedSection=2 Windows=On SubSystemType=Windows ServerDll=basesrv,1
  ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=winsrv:ConServerDllInitialization,2
  ProfileControl=Off MaxRequestThreads=16
  SharedSection=2关键字的格式为xxxx,yyyy,zzz。其中,xxxx定义了系统范围堆的最大值(以KB为单位),yyyy定义每个桌面堆得大小。
  (3)将yyyy的设置从3072更改为8192(即8MB),增加SharedSection参数值。
  通过对注册表的更改,系统将允许运行更多的线程,
因而可以在计算机上运行更多的Vuser。这意味着能够模拟的最大并发用户数量将不受Windows操作系统的限制,而只受硬件和内部可伸缩性限制的约束。
在本站的地址:
联系:视图(view)是在基本表之上建立的表,它的结构(即所定义的列)和内容(即所有数据行)都来自基本表,它依据基本表存在而存在。一个视图可以对应一个基本表,也可以对应多个基本表。视图是基本表的抽象和在逻辑意义上建立的新关系.区别:1、视图是已经编译好的sql语句,而表不是. 2、视图没有实际的物理记录,而表有。 3、表是内容,视图是窗口 .4、表只用物理空间而视图不占用物理空间,视图只是逻辑概念的存在,表可以及时四对它进行修改,但视图只能有创建的语句来修改.5、表是内模式,视图是外模式 .6、视图是查看数据表的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句的集合。从安全的角度说,视图可以不给用户接触数据表,从而不知道表结构。 7、表属于全局模式中的表,是实表;视图属于局部模式的表,是虚表。 8、视图的建立和删除只影响视图本身,不影响对应的基本表。
1:主键是为了标识数据库记录唯一性,不允许记录重复,且键值不能为空,主键也是一个特殊索引.
2:数据表中只允许有一个主键,但是可以有多个索引.
3.使用主键数据库会自动创建主索引,也可以在非主键上创建索引,方便查询效率.
4:索引可以提高查询速度,它就相当于字典的目录,可以通过它很快查询到想要的结果,而不需要进行全表扫描.
5:主键索引外索引的值可以为空.
6:主键也可以由多个字段组成,组成复合主键,同时主键肯定也是唯一索引.
7:唯一索引则表示该索引值唯一,可以由一个或几个字段组成,一个表可以有多个唯一索引.
本站地址:
摘要:随着Internet的普及与迅速发展,企业业务量的迅速加大,数据大集中成为一种趋势,IT系统承载的负荷越来越重,系统性能的好坏严重的影响了企业对外提供的服务质量。从而对IT系统的性能进行和调优引起企业的重视,进而工程师成为IT市场的”香悖悖”,并且性能测试有着极高的技术挑战。于是吸引了大量的测试爱好者来学这方面的技术,而一谈到性能测试很多人便会想到鼎鼎大名的这款优秀的性能测试工具,然而到这里问题就产生了?
  关建字:LoadRunner 性能测试 网络基础编程语言
  LoadRuner与性能测试的关系:LoadRunner初学者的误点:把LoadRunner神化了。很多初学LoadRunner的朋友认为掌握了使用LoadRunner这款性能测试工具,就能够做性能测试了。常在网上看到好多人在怎么去使用这款优秀的性能测试工具,本来学习怎么去使用LoadRunner这个工具没有错,却把LoadRunner神化了,”天真的”以为它什么都能做,以为学会了LoadRunner的使用就能做性能测试了。尽管用了大量的时间学会了如何使用LoadRunner录制脚本,如何进行关联,如何进行参数化,如何设置集合点等等?可到头来,性能测试还是不会做。为什么?对于产生的性能报告不知道怎么去分析?不知道如何利用得到的分析报告分析出系统存在的瓶颈?不知道如何进行性能调优?像这些事光会使用LoadRunner是做不到的?说白了LoadRunner只是我们做性能测试的一个工具,它并不是万能的,是死的,具体怎么做还得依靠人去操作与分析。会使用LoadRunner的人,并不一定会做性能测试,会做性能测试的人并不一定都会使用 LoadRunner。LoadRunner只是一个性能测试工具而已。我们应该意识到,测试工具只是性能测试中的一部分,仅是为达到性能测试目的而采用的一种手段
  性能测试与系统性能的关系:高性能,高安全的系统,不是测试出来的,而是构架,设计,编写出来的。当然在这里我并不否认性能测试的重要性,甚至可以说没有经过性能测试的系统,一定不会是优秀的系统,软件是人开发出来的,而人总是会出错的,所谓智者千虑,必有一失……要想做好性能测试,在软件系统需求,设计,编写代码的这些阶段就应该进行性能测试,而不仅仅是这个阶段才去做性能测试,性能测试应该贯穿于整个周期中。
  对初学LoadRunner朋友的建意:常看到网上一些网友发贴子问,怎么对性能测试产生的结果进行分析?测试系统时怎么去选择合适的协议?对于发这些贴子的人我想请问你?你能够详细的说下HTTP协议吗?TCP建立连接和释放连接的过程是怎样进行的?什么是协议?协议是用来做什么的?在OSI参考模型中各层的作用?数据库中产生并发的冲突的原因?不要太依赖于LoadRunner工具本身的学习,而去忽略计算机基础知识的学习,我们更应该去掌握一门编程语言,良好的网络基础知识,计算机原理与操作系统知识,数据库知识。这些是我们去学习怎么去使用LoadRunner前提与基础。。
  1、为什么要掌握一门编程语言
  其一,大家在使用LoadRunner时常会遇到一些不能录制脚本的情况发生,或者需要录制一些复杂的脚本,这时候我们就必须手动的开发脚本。其二 LoadRunner虽然强大,易于使用,可是它却属于商业软件,价格昂贵,并且代码不开源,我们无法了解LoadRunner具体的实现细节,甚至我们会怀疑LoadRunner收集的性能数据准确吗?它有是如何实现的等等,而这些我们通过LoadRunner的帮助文档无法得知。性能测试工具并不只有 LoadRunner,做性能测试还有许多优秀的性能测试工具可以选择,像,Curl- Loader等等这些非常优秀的开源工具,在全能上虽然并不上LoadRunner,但在某些方面却比LoadRunner还要强大。例如Curl- Loader这个工具,它虽然支持的协议不多,但是对于http协议它最高能产生10万的并发用户,这是LoadRunner远远所不及的。并且这些工具代码是公开的,我们能够从这些代码中去分析具体实现的细节,并且还可以自已编写代码,增强软件的功能,这也是成为性能测试高手的一条途径。LoadRunner好比我们的操作系统,易于使用,功能强大,代码封闭,论全能比要强大。我们的开源性能测试工具好比Linux操作系统代码开源,不易于使用,但很多方面比我们的Windows要强大。也许这个时候有人会问对于初学者学哪门语言最好最有前途C,C++,VB,,C#?其实每一种语言能够生存下来,自有其生存的道理,每一种语言都有自已优势和缺点,并且编程语言具有相通信,学好了一门,再去学另外的编程语言,非常快就能上手。对于初学者我建意学习C语言,理由有很多,例如很多优秀的开源性能测试工具就是用C语言开发的…。当然不管选择什么编程语言,或者数据库,或者操作系统,我们不要去想学哪门最好,学哪方面最有前途。我们更应该结合自身的情况,选择最合适的,而不是选择最好的。
  2、为什么要掌握计算机原理和操作系统知识
  论坛上常会看到这些问题?LoadRunner中线程与进程的关系?在什么时候用到它们,怎么区别用线程还是进程呢?LoadRunner录制产生了乱码怎么解决?怎么去发现内存泄漏?对那些发贴问这些问题的朋友,我依然想请问你你知道进程和线程的概念吗?知道进程有几种状态吗?知道进程间的通信是怎么进行的吗?死锁,进程与线程的区别这些概念你明白吗?如果你连内存的概念,内存的作用,内存泄露的概念都搞不清楚,你怎么去发现内存泄露?如果这些你都不知道,自然就不知道怎么去做性能测试分析?一些网友录制脚本常常会产生一些莫名奇妙的错误?还震震有词的说这是LoadRunner的原因。其实要说到底要解决这些问题就必需得有良好的计算机原理和操作系统知识。弄清了进程和线程的区别,你自然就明白了使用进程资源使用高,但安全性要强于线程,线程资源利用率少,使用线程能在一个负载生成器上运行更多的Vuser,但可能存在安全问题。LoadRunner录制产生了乱码怎么解决?为什么会产生乱码,你知道什么是字符集吗?什么是编码吗?字符串在我们内存中有是如何存放的?ASCII编码,ANSI编码,UNICODE编码它们的区别是什么?这些都是操作系统的基础基础。掌握好了这些你自然明白LoadRunner中产生乱码的原因。当然计算机原理和操作系统的基础知识还有很多得掌握的知识。像操作系统的体系架构、操作系统的重要基础概念,内存管理、存储/文件系统、驱动/硬件的管理。要做好性能测试计算机原理和操作系统知识必不可少。3、为什么要有良好的网络基础
  经常在中看到很多人发贴子。像LoadRuner中为什么要进行关联?LoadRunner测试系统时如何选择协议?LoadRunner中的如何进行IP欺骗?等等。这些问题随便一搜就能发现大量的贴子,其实说到底这些问题和LoadRunner的关系并不是很大,要去解决这些问题并不在于你对LoadRunner这个工具使用是否熟练,而在于我们网络基础知识是否扎实。例如第一个问题LoadRunner中为什么要进行关联?相信很多朋友都知道HTTP协议知道它是超文本传输协议,但是对于一些新手往往不能够详细的说出HTTP具体的内容,像HTTP工作的原理,HTTP协议为什么要使用基于TCP的协议而不使用UDP的协议,HTTP工作在OSI参考模型的哪一层?在HTTP协议上数据是怎么传输的等等。而只有当我们明白了这一切,自然而然就会明白为什么要使用关联,到最后你会发现这些问题其实根LoadRunner关系并不是很大。HTTP协议本质上是无状态的;对页面的每个请求都将被视为新请求,而且默认情况下,来自一个请求的信息对下一个请求不可用。在传统的编程中,这通常意味着在每一次往返行程中,与该页及该页上的控件相关联的所有信息都会丢失。例如,如果用户将信息输入到文本框,该信息将在从浏览器或客户端设备到服务器的往返行程中丢失,为了使用浏览网页,页与页是相互联系不去丢失这些信息,于是了就从现了Cookie,Session,查询字符串等等保持状态的技术。什么是Cookie?什么是Session?Cookie 和Session 有是怎么的?当我们明白了这些,很多的问题就自然而然的明白了,像这些都是基础的知识和LoadRunner关系大吗?不大。
  Cookie 是一些少量的数据,这些数据存储在客户端文件系统的文本文件中,或者存储在客户端浏览器会话的内存中。Cookie 包含特定于站点的信息(像用户名密码以及我们在网站一些个性化的设置等等),这些信息是随页输出一起由服务器发送到客户端的。如果浏览器使用的是 cookie,那么所有的数据都保存在浏览器端,比如我们登录以后,服务器设置了cookie用户名,那么当你再次请求服务器的时候,浏览器会将用户名一块发送给服务器,这些变量有一定的特殊标记。服务器会解释为cookie变量,所以只要不关闭浏览器,那么cookie变量一直是有效的,所以能够保证长时间不掉线。。如果设置了的有效时间,那么它会将 cookie保存在客户端的硬盘上,下次再访问该网站的时候浏览器先检查有没有 cookie,如果有的话,就读取该 cookie,然后发送给服务器。这些是Cookie的工作过程,常看到论坛上一些朋友发贴子问使用LoadRunner时录制到了一些Cookie的信息,它是用来做什么的,看起来很烦可不可以把它删除掉?明白了这些细节的知识,你自然能明白那个Cookie的信息能不能删除掉。如果web服务器端使用的是session,那么所有的数据都保存在服务器上,客户端每次请求服务器的时候会发送当前会话的SessionId,服务器根据当前 SessionId唯一地标识在服务器上包含会话数据的浏览器,以确定用户是否登录或具有某种权限。不同的用户发送请求Web服务器会随机发送一个唯一的 SessionID。而我们使用LoadRunner录制时它会把我们SessionID写死,所以导致出错。这时候就得使用关联了,这样不仅明白了 LoadRunner怎样使用关联,而且还明白了为什么要使用关联?对于LoadRunner测试系统时如何选择协议?这个问题也是网络论讨的比较多的问题。要解决这个问题同样得依靠我们的扎实的网络基础,而不是对LoadRunner使用的熟练程度,首先我们得了解LoadRunner录制时的工作原理了,LoadRunner的录制和不一样,它不关心你的对象识别什么的,不关心你的什么界面之类的,不关心你使用什么语言编写的,LoadRunner有一个Agent进程,来专门监控客户端和服务器之间的通信,然后用自己的函数进行录制。LoadRunner录制的时候关心的是通信包,是客户端和服务器之间的数据包。说到这里,大家就比较清楚了,为什么有的时候不能录制呢?因为,协议不认识,导致LoadRunner截获的数据包不能解析,所以录制下来是空的。所以我们得熟悉什么是协议, 熟悉OSI参考模型,OSI参考模型中各层的作用,TCP协议栈各层的作用,熟悉TCP,UDP,ICMP等等协议。当我们明白了这些网络的基础知识后我们自然会明白应该如何去选择协议。另外关于LoadRunner中的如何进行IP欺骗?要解决这个问题同样得有良好的网络基础知识。其实当我们理解了IP 地址的格式,IP地址的分类,子网掩码的概念,以及知道怎么去进行非标准子网的划分方法 ,掌握了这些原理的东西,那么具体怎么在LoadRunner中如何进行IP欺骗,就非常简单了。 当然网络基础知识并不只是上面的而已,还包括路由器,交换机,加密技术等等这些基础的网络知识,这些远远比我们去学习怎么去使用LoadRunner更重要。
  4、为什么要掌握数据库知识
  数据库的重要性我想是不言而喻的,性能测试产生的一个非常大的原因是因为数据大集中的趋势,测试从某种意义来讲就是对数据测试,而我们企业的核心数据是放在数据库中的。现在大型的WEB应用程序,都采用多层结构,像典型三层,用户界面层,数据逻辑层,数据层。而数据层,而数据层对我们整个WEB应用程序的性能是非常大的,对数据库的基础知识不懂,我们怎么去进行性能测试分析?怎么知道确定性能产生的瓶颈是否是数据库的原因,如何对系统进行调优?例如数据库模型设计不合理,一条坏的语句就能影响到整个WEB应用程序的性能,所以熟悉SQL语句,建表,索引,存储过程,事务,触发器,并发等这些基础知识是必需得掌握的。
  路漫漫其修远兮,吾将上下而求索:性能测试难点不在于Loadrunner工具本身,难在对整个系统的全局把握,而对全局的把握你就必需得有丰富的知识面。 并不是学好了LoadRunner的使用就能做性能测试 。目前,国内性能测试领域正处于起步阶段,要做好性能测试还需学习更多的知识,技术性和非技术。性能测试这条路充满着挑战,也充满着机遇。但正如鲁迅先生所说这世上本来没有路,走的人多了,也就成了路。最后祝愿喜爱性能测试的爱好这条道路上能够不鸣则已,一鸣惊人,不飞则已,一飞冲天。
这里只总结容易出错的测试点。至于基本的就不一一总结啦!异常处理:1.新增操作,返回上一个页面。一般新增成功后。点击返回按钮或者返回键是需要做异常处理的。
上一步骤是新增页面,一般会做操作让上个页面失效。所以新增成功后返回上个页面如果不做处理一定会报错。一般此异常处理会返回到新增页面但是不包含上一步骤新增的数据。2.不同平台测试时同一浏览器操作容易冲突。一般测试阶段开发给测试不同平台的版都是用的同一个域名localhost所以容易出现一些莫名其妙的错误。测试人员遇到这种问题重现一般需要花费很多时间,找到规律后又会被告知其实这不算什么错误。所以测试人员在测试时一定要问清楚。免得做无用功。那真的很抓狂啊!3.正在操作或者提交时当机。数据是否保存那是需要处理的。没处理那就很容易出现bug了。4.首次登录时密码强制修改这里是个小界面。很容易忽视一些处理。比如enter键和table键以及返回键的操作。还有就是如果没有做任何修改,就是密码没有修改成功,按返回键离开这个修改密码页面,再次用旧密码登录时,必须要做异常处理。进入修改密码页面,而不能让其直接进入主界面。否则就没必要做什么首次登录强制修改密码了。需求:1.需求分析不够完善,遗留部分需求。如:(1)列表按照什么排序(2)数据小数点保留位数(3)参数的范围。一般数据类型都会有范围的,但是开发人员有时候会忽略掉控制输入数据或者参数的长度导致输入非法数据。(4)&提示信息不够详细和完善。导致用户操作不方便。如提示“输入错误超过限额”这种提示对于用户来说是没什么用的。到底限额是什么呢?大于什么、小于什么,限额是什么范围都不知道。那到底要我输入什么才正确呢?这的确有争议。所以提示一定要准确,内容完整且简短。2.需求中关联的业务和流程。互操作。一般公司比较在乎的也就是这个了。所以开发和测试人员都会非常重视。但是最容易出错的也是这里啦。原因当然不言而喻喏!比较重点的地方当然会比较难嘛。而且没做好就相当于整体报废。这个不重视怎么行呢?操作:1.enter 键,table键和返回键以及ctrl+v等快捷键相关操作。开发人员很多时候会在某个步骤某个地方遗漏这些处理。2.修改和新增某一参数时限制条件应该一致。比如用户密码,如果你只是单单在注册时限制其长度,而在修改时不限制,那登录时长度为1的账户也是可以登录的。这样做的后果可想而知有多不安全。而且当开发人员意识到这个错误时那个长度为1的账户就再也修改不了密码了。页面:1.ctrl+鼠标移动键 让页面按照比例缩放。窗口最小化的页面展现.一般大型网站都会做操作。但是有些网站或者公司觉得没必要做太麻烦。这里我也不知道为什么麻烦。反正我们公司最后的处理是一定程度是正常即可。可以在重要地方做操作就行了。其实这样也就可以了。2.页面美观,布局这里其实蛮有争议的。到底什么样算美观?什么样最好?恐怕很难测试人员说了算。所以要与开发和需求分析人员沟通然后提出自己的建议。当然只是建议。开发没有时间或者无法实现我们也不能强求不是。毕竟这不是什么会影响到客户需求或者无法运行。但是一般还是要做到整体风格一致的3.页面参数-初始数据不要小看这个。一般都是不会出错的。可是也是最容易出错的。数据繁多,难保开发人员在初始化数据时多点啥少点啥或者错点啥。检查点:&(转载)编写用例的时候往往把输入数据、操作步骤、输出、结果、以及一些过程信息等都包含很全,但是往往忽略掉对执行该测试的检查点,这些检查点往往是测试用例设计和编写的人的经验或对被测对象的深入的理解基础上,很多检查内容参加我写的测试检查点的文章。因此我建议在描述操作步骤的时候还要把检查点列上去,如下:VP即时Verifacation Point:&VP1(重点检查点):每个列表列出的人员、机构信息是正确的,没有重复、不缺少用户VP2: 组合这两部分的接收者,比如:用户user1在机构1 user2属于本公司人员&&& 选择user1、无群组: user1能收到刚才发布的文件,user2没有&&& 选择user1、本公司人员:user1、user2都能接收到刚才发布的文件&&& 选择user3、本公司人员:user1不能接收到,user2能收到VP3:坚持非空域,标题、时间必须为非空等VP4:附件,测试各种格式,如doc、gif、xls、ppt、pdf格式的文件,文件大小分别为100k、1M、5M、10MVP5:添加图片,浏览gif、tif、jpg、bmp格式的图片,查看现实上传是否正确。VP6:检查文件状态,如暂存文件显示 “审核中“,发布文件显示”已审核“。不断总结中,求捷径你懂得!
界面测试用例的设计方法一般界面测试容易引起争议,在评审前就考虑到这些让开发意识到这些界面设计的必要性,可以在测试时避免很多“扯皮”。团队效率更高 1,窗体 测试窗体的方法: a,窗体大小,大小要合适,控件布局合理; b,移动窗体.快速或慢速移动窗体,背景及窗体本身刷新必须正确; c,缩放窗体,窗体上的控件应随窗体的大小变化而变化; d,显示分辨率.必须在不同的分辨率的情况下测试程序的显示是否正常; 进行测试时还要注意状态栏是否显示正确;工具栏的图标执行操作是否有效,是否与菜单懒中图标显示一致;错误信息内容是否正确,无错别字,且明确等等;2,控件 测试方法: a,窗体或控件的字体和大小要一致; b,注意全角,半角混合 c,无中英文混合.菜单进行测试时要注意 a,选择菜单是否可以正常工作,并与实际执行内容一致; b,是否有错别字: c,快捷键是否重复; d,热键是否重复; e,快捷键与热键操作是否有效 f,是否存在中英文混合 g,菜单要与语境相关,如,不同权限的用户登陆一个程序,不同级别的用户可以看到不同级别的菜单并使用不同级别的功能; h,鼠标右键快捷菜单特殊属性 1,安装界面应有公司介绍或产品介绍,有公司的图标 2,主界面及大多数界面最好有公司图标 3,选择"帮助"-&"关于"命令,应看见相关版权和产品信息验证界面显示内容的完整性:a)&&&&&&&报表显示时应考虑数据显示宽度的自适应或自动换行。b)&&&&&&&所有有数据展现的界面(如统计、查询、编辑录入、打印预览、打印等),必须使数据的记录数超过一屏/一页,以验证满屏/页时其窗体是否有横向、纵向滚动条或换页打印,界面显示是否正常;2.应验证界面显示内容的一致性:a)&&&&&&&如有多个系统展现同一数据源时,应保证其一致性;3.应验证界面显示内容的准确性:a)&&&&&&&对于报表中的所有字段值都应该有明确的定义,对于无意义的字段值,不应该显示空,应显示“--”或“/”,表示该字段值无意义。4.应验证界面显示内容的友好性:a)&&&&&&&对统计的数据应按用户习惯进行分类、排序。b)&&&&&&&某些重要信息在输入、修改、删除时应有“确认”提示信息;c)&&&&&&&界面内容更新后系统应提供刷新功能。d)&&&&&&&用户在退出系统后重新登陆时应考虑是否需要自动返回到上次退出系统时的界面;5.应验证界面提示信息的指导性:a)&&&&&&&在多个业务功能组成的一个业务流程中,如果各个功能之间的执行顺序有一定的制约条件,应通过界面提示用户。b)&&&&&&&用户提示信息应具有一定的指导性,在应用程序正在进行关键业务的处理时,应考虑在前台界面提示用户应用程序正在进行的处理,以及相应的处理过程,在处理结束后再提示用户处理完毕。c)&&&&&&&在某些数据输入界面,如果要求输入的数据符合某项规则,应在输入界面提供相应的规则描述;当输入数据不符合规则时应提示用户是否继续。d)&&&&&&&在对任何配置信息修改后,都应该在用户退出该界面时提示用户保存(如果用户没有主动保存的情况下);6.应验证界面显示内容的合理性:a)&&&&&&&在对某些查询功能进行测试时,应考虑查询条件的设置的合理性以及查询结果的互补性。如某些后台处理时间不应该作为查询条件。b)&&&&&&&界面测试时,应考虑某一界面上按钮先后使用的顺序问题,以免用户对此产生迷惑。例如只能在查询成功后显示执行按钮。c)&&&&&&&界面测试时,应验证窗口与窗口之间、字段与字段之间的浏览顺序是否正确;7.界面测试时,应考虑用户使用的方便性:a)&&&&&&&在某些对数据进行处理的操作界面,应考虑用户可能对数据进行处理的频繁程度和量,考虑是否可以进行批量操作。8.界面测试时,应考虑界面显示及处理的正确性:a)&&&&&&&界面测试时应验证所有窗体中的对象状态是否正常,是否符合相关的业务规则需要。b)&&&&&&&应验证各种对象访问方法(Tab健、鼠标移动和快捷键)是否可正常使用,并且在一个激活界面中快捷键无重复;c)&&&&&&&界面测试不光要考虑合理的键盘输入,还应考虑是否可以通过鼠标拷贝粘贴输入。d)&&&&&&&对于统计查询功能的查询结果应验证其是否只能通过界面上的查询或刷新按键人工触发,应避免形式的触发。e)&&&&&&&对界面上的任何对象进行拖拉,然后进行查询、打印,应保证查询打印结果不变;9.界面测试时,应考虑数据显示的规范性:a)&&&&&&&确保数据精度显示的统一:如单价0元,应显示为0.00元;b)&&&&&&&确保时间及日期显示格式的统一;c)&&&&&&&确保相同含义属性/字段名的统一;& & &&d)&&&&&&&&对所有可能产生的提示信息界面内容和位置进行验证,确保所有的提示信息界面应居中
& 1.你为什么选择行业
  因为对软件测试领域有浓厚的兴趣,而且该行业也与本人大学的专业对口,有着比较扎实的专业的基础。
  2.根据你以前的经验描述一下软件开发、测试过程,由那些角色负责,你做什么?
  有技术总监、开发经理、程序员和测试员。主要负责做黑盒测试,兼容性测试和自动化测试等。
  3.结合你以前的和工作经验,你认为如何做好测试。
  根据我以前的工作经验,我认为做好测试首先要有良好的测试技能,掌握测试理论知识。其次要认真细致,有良好的沟通能力,因为在测试工作中,经常要和开发人员进行实时有效的沟通。
  4.你觉得测试最重要的是什么?
  尽可能的找出软件的错误,提高软件的可靠性。
  5.怎样看待加班问题
  合理的加班也是一件比较正常的事情。但是我还是觉得如果能够合理的安排工作时间的话,不会有太多时候会加班的。
  6.如果一个很有个性的程序员认为自己的不是BUG,怎么解决?
  首先我要确定我所提的在我认为是不是bug,如果我认为是的话我会在他面前重现这个bug,并且和他沟通为什么是bug,或者我会找到我的直系领导和他沟通确认这是个bug。
  7.为什么在团队中要有测试
  因为软件有错误,如果没有专业的测试人员很难发现软件的一些错误。
  8.在上一家公司自己最大的收获是什么?
  积累了一定的测试经验的同时,也提高了软件测试的技能,掌握了如何把测试的理论知识结合到实际的工作中,并且让我掌握了xx自动化测试工具。
  9.你对未来的规划
  毕业的1年多熟悉职场,工作中慢慢地积累经验,2-5年使自己的测试技能得到更大的提高,继续往高级测试工程师发展。
  10.自己优势及缺点
  我的优点是有足够的耐心对待每一件事情,善于观察事物,承受压力的能力比较强。缺点可能就是我不是很爱说话,属于有点文静性格,但是和人沟通还是没有问题的。
  12.请谈谈您对测试工作的理解
  我认为测试工作是尽可能多地发现软件的缺陷,提高软件的质量,成功的测试在于发现了迄今尚未发现的缺陷。所以测试人员的职责是设计这样的测试用例,它能有效地揭示潜伏在软件里的缺陷。
  13.你认为测试人员需要具备哪些素质?
  我认为做测试的应该要有一定的沟通协调能力,因为测试人员要经常与开发接触处理一些问题,如果处理不好的话会引起一些冲突这样的话工作上就会做不好。还有测试人员要有一定的耐心,有的时候做的测试很枯燥乏味的。除了要有耐心之外还要细心,不放过每一个可能的错误。
  14.你为什么能够做测试这一行。
  因为我不仅有N年的测试工作经验,掌握测试的理论知识,而且有一定的沟通能力,耐心、细心等外在的素质。综合起来看我认为我是胜任这个职位。
  15.测试的目的是什么?
  测试的目的是尽可能多地找出软件产品中的缺陷,提高软件产品的质量,使软件尽可能的符合用户的要求。
  16.测试分为那几个阶段?
  一般来说测试大体分为4个阶段:
  、集成测试、、验收测试
  在测试过程中如果有需要还要进行回归测试。
  17.单元测试的测试对象,目的、测试依据、测试方法?
  单元测试对象是模块内部的程序错误;目的是消除局部模块逻辑和功能上的错误和缺陷;
  测试依据是模块的详细设计;
&& 测试方法采用。
18.集成测试的测试对象,目的、测试依据、测试方法?
  集成测试的测试对象是模块间的组装和调用关系以及模块组合后的整体功能;
目的是找出与软件设计相关的程序结构模块调用关系,模块间接口与接口数据传递关系等方面问题;
测试依据是概要设计;
测试方法采用灰盒测试。
  19.系统测试的测试对象,目的、测试依据、测试方法?
  系统测试的测试对象是整个系统;
测试的目的是验证软件系统的功能和性能等是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方;
测试的依据是需求规格说明书;
测试方法。
  20.测试覆盖的类型
  测试覆盖的类型有:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖、路径覆盖
  21.性能测试的分类
  分为:、负载测试、压力测试、容量测试、强度测试等
负载测试是一种性能测试,指数据在超负荷环境中运行,程序能否够承担。
强度测试:在一定的负荷条件下,在较长时间跨度内的系统连续运行给系统性能所造成的影响。(它在系统资源特别低的情况下软件系统运行情况。)
容量测试:确定系统可处理同时在线的最大用户数。容量测试目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限值状态下没有出现任何软件故障或还能保持主要功能正常运行。
压力测试:通过逐步增加系统负载,测试系统的性能变化,并最终确定在什么负载条件下,性能处于失效状态,并获得系统能提供的最大服务级别。
  负载测试与压力测试可以结合进行。
  22.列举您熟悉的主流工具
  我熟悉的自动化测试工具有:基于应用的开源自动化测试工具selenium、以及性能测试工具
  24.c/s和b/s结构的软件进行测试时有何不同
  C/S又称Client/Server或客户/服务器模式。服务器通常采用高性能的PC、工作站或小型机,并采用大型系统。客户端需要安装专用的客户端软件。
  B/S是Brower/Server的缩写,客户机上只要安装一个浏览器(Browser)。浏览器通过Web Server 同数据库进行数据交互。
  26.页面中有一个输入日期的输入框和一个输入身份证号的输入框,如何进行用例设计?
  输入日期的输入框要考虑边界值、输入有效数据、非法数据、非数字等
  省份证输入框要考虑18位身份证、16位身份证、非18、16位的数据、汉字、字母、非法数据
  27.测试和质量保证有什么区别?你的看法
  质量保证是对软件制作过程的制作质量进行管理,看是否符合公司的规定。
  软件测试是对软件产品的质量本身进行测试,是从技术方面出发测试
  28.用过什么工具? 流程是什么 有什么能改进的
  我所熟悉的是TD
  流程是讲测试计划、方案、测试用例录入TD,在TD上执行测试用例记录缺陷,并对bug进行跟踪。
  29.你有没有用过QTP做项目,QTP的工作原理
  我有用QTP做过项目。QTP的工作原理是执行重复的手动测试,首先制定测试计划再根据测试计划创建测试脚本,然后对脚本进行优化,增强测试脚本,接下来运行脚本分析测试的结果。
  30.什么是白盒测试?白盒测试的工具有哪些?
  白盒测试也称结构测试或逻辑驱动测试,测试人员利用程序内部的逻辑结构及有关信息,设计和选择测试用例,对程序所有的逻辑路径进行测试。工具有: Purify 、Rational Quantify 、Rational Purecoveage
  31.路由器,集线器,交换机的区别?
  路由器的作用是用于连接不同网段并且找到网络中数据传输最合适的路径。
  集线器的作用是将一些pc机连起来组成一个局域网。
  交换机的作用与集线器的相似,区别在于集线器采用的是共享带宽的方式,交换机是独享带宽。
  32.我手上这支笔,请你根据这支笔设计测试用例。
参考论坛:/thread-.html
功能测试:该笔能否写字、哪些纸上写字、除了书写功能外,是否还有其他功能,例如能不能当手电筒,能不能当计算器等等
性能测试:写字是否流畅、能连续不断地写出多少字、写成的字能保留多长时间、在什么环境下可以正常时使用,比如温度
压力测试:能够承受多大的压力而不会被折断、
安全性测试:写出的字体是否带毒性、笔的材质是否有毒
易用性测试:笔握在手上是不是舒服、是否方便携带和存放
界面测试:设计是否美观,写成字体的颜色、粗细是否符合要求。
  33.BUG报告包括那些内容
  Bug出现的位置、可重现的步骤、所使用的数据、bug的截图、发现人及日期。
  35.W和H模型的区别
  W模型强调的是测试伴随整个软件开发周期,而且测试的对象不仅是程序,需求也需要进行测试,测试与开发是同步进行的。
  H模型是讲测试活动玩却的独立出来,形成了完全独立的流程,可以实现迭代而W模型不支持迭代这是两者最打的区别。
  36.没有任何说明书,如何进行测试?
  首先是通过对软件册使用来熟悉整个软件,接着是与开发沟通掌握软件的特性并一一记录下来,作为测试的依据。
在人员提交软件缺陷报告后,最不希望看到的这些缺陷被开发人员忽略,尽管你坚信这一定是软件缺陷,而罪魁祸首就是这些缺陷不可重现!一旦出现这样的情况,测试人员会很被动,开发人员也会对测试人员有意见。这就使得关系本来就不怎么融洽的测试人员和开发人员之间的关系更加紧张;对于整个时间紧凑的项目来说,无异于是火上浇油。为了减少这种尴尬情况的出现,非常有必要分析一下软件缺陷不能重现的原因。1. 测试环境不一致从广义上来说,保证或影响软件的任何因素都是环境,例如,系统的构造版本、应用服务器的类型和版本、浏览器的语音和版本等。以下就是我们会遇见的错误:某个B/S(Web应用)架构的系统软件运行于IE8上,出现了JS(Java Script)脚本错误导致页面浏览异常的软件缺陷,把IE8降级到IE6或7后,此软件缺陷就自动消失了。2. 测试配置不一致程序运行都是基于一定的配置条件下进行的,包括被测系统参数设置、基础数据完整性、业务流程完整性等,比如,我们曾经在某产品测试过程中,由于在安装界面中选择了非默认路径进行安装,结果导致该数据库物理备份会恢复功能出错,而对方在核对缺陷时按照默认路径进行了安装,因此缺陷总是无法重现。3. 内存泄露某些系统长期运行后出现速度慢的原因是开发人员未养成回收内存的习惯。这类错误在短期内不会出现,但当系统长期运行时就会出现,并且由此会引发一系列的问题。4. 数据接口不匹配一般只有在查看源代码后才能发现。某些类型的数据会被系统自动转换,有些数据被截断或被强制转换成另外一种数据类型时,会出现一些潜在的错误。基于以上测试过程中出现的软件缺陷不能重现的原因,我们提出如下一些解决策略,以更好地从源头上减少不可重现软件缺陷的出现。1. 测试环境配置充分细致测试人员在测试前,严格核对系统的运行环境配置要求,并充分考虑系统在线运行后的环境变化,做好测试环境配置的全面规划,注意细节。另外可以使用Ghost对硬件或某个分区进行镜像备份。2. 捕获系统,分析异常信息测试人员应养成记录系统错误日志的习惯,保留系统在出错时的真实状态。比如将IE浏览器高级选项设置为“显示每个脚本错误的通知”。3. 监测系统状态,异常及时告警在实施过程中,我们必须充分关注系统运行状态的变化,一旦系统运行状态发生较大的波动,势必会对后期的业务执行带来较大的影响。因此,系统运行监测的一个重要内容是需要及时反馈系统运行异常,并提供异常报告。4. 测试数据翔实,易于追溯测试数据是的核心,很多情况下,测试人员为了缩短测试周期,在实际测试前并没有充分编写足够的测试数据,也没有记录这些测试数据的执行顺序和运行轨迹,一旦程序在某个节点出现问题,我们无法判断其产生的过程和引起这个缺陷的具体测试数据,对我们进一步分析软件缺陷产生的原因会造成一些不必要的障碍。正是基于此我们强调在软件测试开始前,我们必须制定完整的,辅以详细的测试数据,并明确测试数据的操作步骤和每一步的预期结果,这样,一旦软件出现问题,我们可以很快进行重现和定位。
  随着软件系统在互联网中的广泛应用,其规模性和复杂度的增加,软件系统的性能已经是倍受软件开发商和用户的关注,如果软件产品(包括硬件产品)没有经过严格的系统就上线运行,就好比在身边安放了一个非定时炸弹,随时都有系统崩溃或不能满足客户使用需求的问题出现。给企业带来的损失是无法估计和弥补的。
  邮件是政府、企事业单位和个人重要的信息沟通和传递的方式,邮件的传递不分昼夜、不论远近,时刻都会有传送,所以邮件系统对其稳定性、可靠性、承受的负载压力等性能要求更为突出。而邮件系统的性能测试除了要考虑通用的软件性能需求指标外,还要考虑邮件系统特有的性能指标。
  对于大多数用户来讲,对邮件系统性能的需求是个盲区,不知道邮件系统的需要考虑哪些性能指标,性能指标值怎样来定,更不知道该如何对邮件系统做性能测试,这就需要有邮件系统领域有专业系统知识和性能测试经验的第三方,站在用户角度来协助用户完成性能需求分析,制定性能测试计划和方案,执行性能测试用例,提交性能测试报告,为项目开发和实施提供参考依据,保证产品上线后能够满足用户的需求。
  邮件系统性能测试主要指标
重点测试指标
邮件系统常用协议并发测试
SMTP峰值并发链接请求测试
POP3峰值并发链接请求测试
HTTP峰值并发链接请求测试最大并发测试
SMTP最大并发链接请求数
POP3最大并发链接请求数
HTTP最大并发链接请求数
并发测试的并发数根据系统需求环境负载模型和对应的计算公式获得。测试结果要保证业务成功率为100%
最大并发测试是验证邮件系统成功完成业务请求的瞬间最大值。反映了邮件系统的瞬间提供服务的能力。
WEBMail邮件系统响应时间测试
打开首页页面响应时间
用户登录页面响应时间
查收邮件页面响应时间
发送邮件页面响应时间
WEB系统响应时间:浏览器向Web服务器提交一个请求开始到收到响应结束的间隔时间,这个性能指标的好坏直接影响着用户对系统的使用感受。
疲劳强度性能测试
大数据量性能测试
疲劳强度性能:指在系统稳定的情况下,同时并发执行各种业务,以一定的负载压力来长时间运行系统。
大数据量测试:是针对邮件系统的存储、数据传输,统计查询等业务进行大数据量操作的性能测试。
系统资源监控
CPU占用率的监控
内存合理释放监控
网络吞吐量监控
性能计数器
占用率:一般情况下服务器上处理器的占用率不能持续超过极限值。
内存释放:多种并发业务处理后和系统长时间运行过程中,不用的内存是否有效释放,保证系统内存不会出现持续增长。
网络吞吐量:主要测试用户数目与网络带宽的关系,通过测试工具准确展示带宽,延迟,负载和端口的变化是如何影响用户响应时间的
  用户提供性能需求指标
  和功能需求一样,用户提出性能需求指标,如果用户不了解邮件系统的性能需求,就需要由具有专业的邮件系统性能测试的企业来协助用户完成邮件系统性能指标分析,制定性能需求指标量值,来测试邮件系统开发商提供的邮件系统性能。
  性能测试流程
  * 性能测试前期准备:系统基础功能的验证,测试人员的组建,选取测试工具。
  * 制定测试计划和方案:根据确定好的性能需求制定测试计划和方案。
  * 测试设计与开发:设计测试场景、测试用例,开发测试脚本和辅助工具。
  * 测试执行和管理:执行测试用例和测试脚本,记录测试结果,整理测试报告。
  * 分析测试结果:对测试的结果进行分析和统计,生成图表,形成性能测试分析报告,找出系统性能瓶颈。
  性能测试流程图
好久没有写博客了,让大家失望了,最近实在是事情太多了,在最近的对学员的模拟过程中有一些体会和感受,希望这些感受对目前正在找的学员以及同仁能起一点抛砖引玉的作用。下面就从问题开始入手:
问题一,谈谈你对缺陷的认识?
参考的思路:首先,这个问题是个非常发散的问题,为什么这么说呢?因为大家都知道BUG在软件的整个生命周期内一直是一条主线,从程序员的“错误”的行为导致“缺陷”,而“缺陷”被激发导致软件“故障”,“故障”没有人修复会导致软件某一功能“失效”。另外一点的是众所周知的缺陷放大模型,根据缺陷放大模型的要求提出了“尽早测试”的观点,同时也带出了静态测试的重要性。从目前很多企业通过“BUG”数来衡量测试执行人员甚至是测试人员的工作绩效,到所提倡而且做得非常成功的对“缺陷”从100多个纬度来进行ODC分析。再到强调的“以BUG为中心”的工作模式,无不体现“缺陷”在整个甚至在整个软件开发活动中的重要性。那么对于缺陷而言,到底有哪些东西是需要我们测试人员能联想到和需要掌握的呢?以下是鄙人的一点点看法:
第一,一谈到缺陷,我们首先能够想到的肯定是缺陷怎么样管理,也就是缺陷跟踪怎么样去做?用什么样的缺陷跟踪工具?缺陷的一生到底是什么(也就是BUG有哪些状态)?为什么要进行缺陷跟踪?参考的答案:首先缺陷跟踪对于整个项目具有十分重要的意义,是后期进行缺陷的分析和统计的基础,是对整个软件质量进行度量的基础。而想到缺陷的分析,我们可以联系到Gompertz模型和ODC分析,通过对缺陷的Gompertz分析我们可以得出测试该如何结束?测试应该停止于理智而非情感,那就是我们对于测试该如何结束的决策需要基于事实数据,这里可以联想到ISO的八项原则的其中一点“基于事实的决策”。通过的缺陷的ODC分析,我们可以从多个纬度来分析导致缺陷发生的和非技术原因,从而可以改进我们的开发和以及我们的测试过程,举个例子,如果通过分析发现很多问题跟初始化相关,那可以说明的静态检查没有做好,那可以选择对单元比较熟悉的人,经验跟丰富的人来做代码检查。因为工作好象就是这样的,如果你不行就让别人来。好,不能太发散了,回到我们缺陷跟踪,常见的具备缺陷跟踪能力的工具有以下:1,最简单的电子表格和WORD文档管理,2,专业的测试管理工具如QC、CLEARQUEST、免费的BUGZILLA和JIRA等。然后再描述下,比如在QC中BUG有哪些状态?
第二,BUG单的内容?什么样的BUG单是比较好的BUG单?参考的答案:1,测试项目的名称,这一点好的BUG跟踪工具都已经把它给模板化了,在填写BUG单的时候只需要选择就可以了。2,软件的版本号,包括主版本和从版本号。这一点同测试项目名称一样,都已经模板化了。3,BUG问题发现人,这个目的很简单,为了方便问题的统计,了解某一测试执行工程师的工作成绩。4,BUG发现的日期和时间,同上面一样方便统计。5,问题发现的测试环境(软硬件软件,包括客户端和服务端的环境),目的是为了清晰地了解问题发现的条件。6,缺陷的编号,每个缺陷都有唯一规范的编号,目的是为了方便检索和统计。7,缺陷的标题,对缺陷的简明扼要的描述。8,缺陷的类型,缺陷是功能性问题还是性能性问题,还是安全性问题,这样可以联想到软件质量模型。9,缺陷发现的用例编号,目的很明确,为了方便回归测试,然后又可以联想到回归测试的策略等。10,缺陷的严重级别,是致命、严重、一般还是提示问题,方便问题的统计和对版本质量的总体评估。11,缺陷的优先级别,这个定义了开发处理问题的优先级别,一般情况下,一般优先处理紧急且重要的问题。12,缺陷重现的操作步骤,这点的重要性就不必多少了,这个也最能体现提问人的智慧和水平。13,缺陷描述需要的附件,一个贴图有时可以顶上你洋洋洒洒几百字的描述。14,缺陷的状态,缺陷当前的状态。15,缺陷建议的处理人。那么什么样的BUG单是好的BUG单?这里大家可以想到的应该有“5C”原则:Correct,Clear,Concise,Complete,Consistent。具体的东西大家可以去发挥,另外敬请参考编写优秀缺陷报告的艺术一文:
51Testing软件测试网
今日看到一段李开复老师的介绍,很有共鸣,与大家分享:
【李开复:如何提升个人专业能力】1.写文章,多发表个人见解,增加个人思考机会;2.大量看书,自学,但一定要选好书;3.多和圈里高手交流,听君一席话,胜读十年书;4.建立个人文件管理系统,不断整理自己的原创;5.参加系统学习,找到短板,快速学习;6.实践,大量实践!
1. 几个月写一次blog文章和每半年写一次测试技术总结的习惯,让我及时记录下自己最新的测试创新想法,并进行了系统化的梳理,在梳理过程中找到下一步的专业提升方向。
2. 时至今日每年都会购买几本测试书和计算机基础知识的书,几乎不买工具操作书(互联网上有文章)。因为操作书属于短平快没有收藏价值,我所购买的书都是通用性和能反复阅读5遍以上,每次都有收获的书籍。
3. 博客和微博是好东东,有条件参加一些测试大会和活动也能开拓视野。但还会紧盯和关注欧洲和美国一些测试大师 ,测试咨询公司的互联网资源,来拓展自己的思想。
4.&即使我自己回顾看自己写的blog和微博,有时都会有种疑问,这是我写的吗。所以及时写下自己的灵感非常有价值。
5. 通过阅读某一知识领域系统性的书籍,学习系统性的ppt,多看老外系统性的文章和国内专家们系统性的分享,作为镜子诚实的对比自己,就能找到短板。
6. 做1万小时一线的测试用例开发和执行,亲自发现1000以上bug,学习和分析它人发现的5000个bug,思考测试改进时间超过1000小时,项目中运用新测试方法超过1000小时,这些大量的实践,会加深你对专业领域的认知,会让你量变引起质变。}

我要回帖

更多关于 safari调用摄像头 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信