如何将confluence上的页面做汽车发布投影展示示,实现自动化滚屏和刷新更改?

TestManager
Rational测试解决方案中推荐的测试用例管理工具。
1. 功能强大。
2. 文件夹形式的管理,可以对测试用例无限分级。
3. 可以和Rational的测试工具robot、functional相结合。
4. 有测试用例执行的功能,但必须先生成对应的手工或自动化脚本。
1. 本地化支持不好。汉字显示太小。
2. 测试用例很多时不太稳定。有时会造成测试用例的丢失。
3. 必须安装客户端才可使用。和开发人员交流不方便。
4. 测试用例的展示形式单一。
Quality Center
Quality Center是一个基于Web的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、计划测试、执行测试和跟踪缺陷,如下图所示。此外,通过Quality Center还可以创建报告和图来监控测试流程。
1.确保支持所有环境,包括 J2EE、.NET、Oracle 和 SAP。
BugFree是借鉴的研发流程和Bug管理理念,使用PHP+MySQL独立写出的一个Bug管理 系统xx。简单实用、免费并且开放源代码(遵循GNU GPL)。 命名BugFree 有两层意思:一是希望中的缺陷越来越少直到没有,Free嘛;二是表
示它是免费且开放源代码的,大家可以自由使用传播。
1.BugFree是基于浏览器的。基于此,Raid 有很强大的编辑展示功能,而BugFree简单、方便、易用;
2.BugFree 还有一个独创的功能:当一个Bug被指派给你的时候,系统会自动给你发一封邮件,告诉你有个Bug需要你处理,这样结合 Email,BugFree被完美使用起来
1.BugFree的查询功能相对弱一些
使用wiki做测试用例的管理工具。
1. Web界面形式,交流方便。
2. 测试用例的展示形式多样,可以贴图。可以进行格式化的编辑。
3. Wiki提供测试用例的版本控制、版本比较功能。
4. Wiki提供测试用例的添加注释(评论)功能,方便测试用例评审。
5. Wiki本身强大的全文索引功能。
6. 可以任意为测试用例添加标签。
1. Wiki并不是专业的测试用例管理工具。
2. 无法和其他测试工具集成。
3. 测试用例的统计不方便。需要编写专门的程序。
4. 没有测试用例的执行跟踪功能。
5. 有一些wiki本身的限制,如不同产品的测试用例名也不能重复。
6. 目前还没有定制统一的模板
Wiki本身有多种实现,这儿列出的是Confluence wiki。其他的wiki可能没有优点中列出来的某些功能。
Bugzilla+Test Runner
开源的测试管理解决方案,有很多开源软件使用此方式管理。
1. 开源免费。
2. Web方式的管理界面。
3. 自动邮件提醒。
4. 和缺陷管理系统Bugzilla结合紧密。有测试用例执行管理。
5. 测试用例可以分优先级。
6. 测试用例可以有评审的功能。(测试用例有不同的状态)
1. 安装设置较繁琐。
2. 没有配置过的经验。
3. 测试用例的编写上必须按照一个步骤对应一个验证点的形式来编写。
听说后来Test Runner升级后名字改为了Testopia,没有常试过。
TestDirector
1. 和Rational测试系列其名的测试管理工具,功能强大。
2. Web方式的界面。
3. 有测试用例执行跟踪的功能。
4. 有灵活的缺陷定制。
5. 和自身的缺陷管理工具紧密集成。
6. 界面较友好。
1、每个项目库同时在线人数有限制(具体个数忘记了)
2、可能存在部分不稳定性,但是基本功能没有问题
没有配置过的经验。不了解其具体的一些特征。
新版CQ(7.0)
新版本的CQ中增加了测试用例管理的功能。
1. 和cq的缺陷管理紧密结合。
2. 可以使用cq强大的查询和图表功能。
1. Eclipse的界面,较为笨重,需要安装。
2. 不知道有没有web形式的界面。
看过演示,没有实际用过。
1. Web方式的界面。
2. 和bugzilla缺陷管理工具的整合
3. 可以自定义和其他缺陷管理工具的整合。
4. 同时具有需求管理的功能。
1. 没有配置过的经验。
2. 不了解其具体的一些特征。
没有实际用过,只看过网上的一些介绍。
适合小型项目。
如果充分利用excel的功能也可适合大型项目
依托Excel本身的强大功能;很灵活,易于扩展。
将来的维护等较麻烦;统计、度量等也不方便。
依托Word本身的强大功能。很灵活,易于扩展。
不如excel格式统一;不如excel容易统计。
2.EmailBug
9.WebXmlEmail
1.点击“Open a new Bugzilla account”链接,输入你的Email地址(如:XXX@office)然后点击“Create Account”。
2.稍候,你会收到一封邮件。邮件中包含你的登录账号(与你的Email相同)和口令,这个口令时Bugzilla系统随机生成的,你可以根据你的需要进行变更。
3.Log InLogin
Bug记录按产品分类,每种产品按功能拆分成几类。以Bugzilla产品为例,它由以下几部分构成:
lAdministration
lBugzilla-General
lCreating/Changing Bug
lDocumentation
lInstallation
lQuery/Buglist
lReporting/Charting
lUser Accounts
lChanging Passwords
lUser Interface
1.Bug报告状态分类(Status)
l待确认的(Unconfirmed)
l新提交的(New)
l已分配的(Assigned)
l问题未解决的(Reopened)
l待返测的(Resolved)
l待归档的(Verified)
l已归档的(Closed)
2.Bug处理意见(Resolution)
l已修改的(Fixed)
l不是问题(Nvalid)
l无法修改(Wontfix)
l以后版本解决(Later)
l保留(Remind)
l重复(Duplicate)
l无法重现(Worksforme)
l可以指定一个处理人
l如不指定处理人,则系统指定管理员为默认处理人
l输入超链接地址,引导处理人找到与报告相关联的信息
l概述部分“Summary”的描述,应保证处理人在阅读时能够清楚提交者在进行什么操作的时候发现了什么问题。
l如果是通用组件部分的测试,则必须将这一通用组件对应的功能名称写入概述中,以便今后查询。
l测试应用的硬件平台(Platform),通常选择“PC”
l测试应用的操作系统平台(OS)
l产生Bug的软件版本
l分五个等级即P1-P5,P1的优先级别最高之后逐级递减
lBlocker,阻碍开发和/或测试工作
lCritical,死机,丢失数据,内存溢出
lMajor,较大的功能缺陷
lNormal,普通的功能缺陷
lMinor,较轻的功能缺陷
lTrivial,产品外观上的问题或一些不影响使用的小毛病,如菜单或对话框中的文字拼写或字体问题等等
lEnhancement,建议或意见
lBug报告提交者的账号
lBug报告抄送对象,该项可以不填
l如需要抄送多人,可将邮件地址用“,”分隔
l“Bug “ID” depends on”如果该Bug必须在其他Bug修改以后才能够修改,则在此项目后填写那个Bug的编号
l“Bug “ID” blocks”如果该Bug的存在影响了其他Bug的修改,则在此项目后填写被影响的Bug编号
l在Bug跟踪过程中测试与开发人员通过这里进行沟通
l开发人员可以在这里填写处理意见和处理记录
l测试人员可以在这里填写返测意见和对在返测过程中发现的新问题进行描述
l可以通过页脚中的“Query”链接进入查找界面
l根据查找的需要在界面中选择对象或输入关键字
l查找功能能够进行字符或字串的匹配查找
l查找功能具有布尔逻辑检索功能
l你可以通过在查找页面中选择“Remember this as my default query”将当前检索页面中设定的项目保存。以后可以从页脚中的My bugs中直接调用这个项目进行检索
l你还可以通过在“Remember this query, and name it:”后面输入字符,将你当前检索页面中设定的项目保存命名,同时选中“and put it in my page footer”。则以后这个被命名的检索将出现在页脚中。(有关如何在页脚中设定显示的项目请参见1.5.3)
l如果你运行了Bug检索功能,系统会根据你的需要列出相关的项目
l你可以通过列表页脚附近的“Change Columns”设定在列表中显示的Bug记录中的字段名称
l如果你拥有必要的权限,你还可以通过“Change several bugs”修改列表中罗列出的Bug的记录。例如:修改Bug的所有者
l通过“Send mail to bug owners”你可以给列表中罗列的Bug记录的所有者发信
l如果你对查找的结果不满意,希望重新调整检索设定。你可以通过“Edit this query”实现
l通常情况下,检索结果中只显示最基本的信息。你可以通过“Long Format”显示更详细的内容
1账号设置(Account Settings)
l在这里你可以改变你账号的基本信息,如口令,Email地址,真实姓名
l为了安全起见,在此页进行任何更改之前你都必须输入你当前的口令
l当你变更了你的Email地址,系统会给你的新老Email地址分别发一封确认邮件,你必须到邮件中指定的地址对你的更改进行确认
2Email设置(Email Settings)
l你可以在此通过选择告诉系统,你希望在什么条件下收到和你相关的邮件
3页脚(Page Footer)
l设定“Preset&Queries”是否在页脚中显示
4用户权限(Permissions)
1.1添加功能
说明:点击添加按钮后,系统在原有页面或新打页面中显示相关的字段信息,供操作人员进行信息录入
验证方式:
(1)验证需要输入的字段是否可获得光标焦点,是否可以进行输入。
(2)若为下拉框选择输入,查看是否可进行选择。
(3)对于系统默认字段,查看系统是否正确给出默认值。
1.2保存功能
说明:按要求输入各项符合要求的信息后,点击“保存”按钮,查看系统是否能够正确处理。
验证方式:
(1)通过保存后显示的页面详细信息查看保存的信息是否与录入的相一致。
(2)通过相应的查询功能,查询对应的详细信息,查看保存的信息是否与录入的相一致。
(3)通过相关的查看工具查看数据库表中的信息是否与录入时相一致。
1.3删除功能
说明:选中某条要删除的记录信息,点击“删除”按钮,查看系统是否能够正确处理。
验证方式:
(1)对于物理删除的记录信息,在相应的数据库表中查询不到该记录信息。
(2)对于物理删除的记录信息,若有必要,验证在有数据关联的情况下,该记录信息是否不允许被删除。
(3)对于非物理删除记录信息,查看相应的标志是否被置为“已删除”或“无效”等,是否修改正确。
(4)对于字典等被引用的记录信息,删除后需验证其后继业务中是否做相应判断,无效或已删除的记录信息不允许使用。
1.4修改功能
说明:选中某条记录信息,进行相应的修改,修改完成后,点击“更新”或“修改”按钮,查看系统是否正确处理。进行修改时,也应做基本检查项中各内容的检查,并通过保存功能的验证方式进行验证。
1.5确认功能
说明:在进行保存、删除或修改功能时,系统有时候弹出对话框,要求操作人员进行确认。
&&&&&一般情况下,有“是”、“否”及“取消”三种选择。
选择相应的功能后,要根据所做操作及所选功能,进行相应的数据验证。
&&验证方式:
(1)选择“是”,即确认方才所做操作,则系统执行相应功能,并反馈相应的操作结果。
(2)选择“否”,即否认方才所做操作,则系统什么也不做,返回到前一状态。
(3)选择“取消”,即不希望继续方才操作,则系统什么也不做,保持前一状态不变。
1.6打印/打印预览功能
验证功能:
(1)点击打印按钮时,是否能够正常调用系统打印功能。
(2)若有打印预览功能,查看预览内容是否与期望打印内容相一致。
(3)查看打印后的实际内容是否与显示内容相一致,是否正确。
(4)对于发票及证书等特殊打印,还要验证打印位置是否符合要求,是否能够进行调整以符合要求。
1.7清空功能
验证功能:
(1)在查询功能中,点击“清空”按钮,查看是否能够将已经设置的相关内容进行清空处理。
(2)在修改功能中,若选中某条记录后,相应的信息在窗口中进行显示,点击“清空”按钮,查看是否将显示的信息清空
1.8返回功能
说明:若为新打开窗口中的“返回”按钮,点击后,查看新打开窗口是否能够正确关闭。
5- 1&&&&&&&&&&&&&&&&&&
5- 1CPU5- 1
第三、B/SC/SERPOracleSybase
OA8:409:10OAOA2000 2000200020008:409:1030100%
2583523583OA3
CPUWebCPU75%70%CPU75%90%CPU
1.入职时的工资高低不重要,只要你努力工作你会得到相应待遇的  我估计几乎找过工作的人都听过这句话,当我们确定被聘用跟公司谈工资时,他们都会说“如果以后你业绩突出、努力工作,你的报酬也会相应增加的”,特别是当第一次找工作的时候大多数人会相信这些话,但是千万~~别相信。  刚入职时,你的工资就是你的全部(当然有一些岗位,比如销售或弹性工资的岗位除外),而且你入职以后大部分待遇都会跟着你的工资而浮动,工资调整也是按你目前的工资乘于一定的百分比,保险、公积金也跟工资有关系,当你的基本工资低的时候你今后的报酬增长空间也不大。  所以,找工作时千万不要心软,多争取一些基本工资,因为这是你的所有。  我第一次找工作时就是犯了这个错误,当时心软没要求更高的工资,当时觉得基本工资比别人低几百块钱无所谓,但是后来才发现它有一个杠杆作用,尽管以后每年你工资涨幅比别人大,但是工资还是比别人低。  比如你入职时的基本工资为4000,第二年涨幅为20% (一般的企业极少数人能涨20%),那第二年工资为4800; 如果你的同事入职时基本工资为4500,第二年涨幅为10%(一般涨幅),那他第二年工资为4950。  是不是看到差距了? 请记住,入职时工资就是你的全部,一定不能心软。2.人事部不是你的倾谈对象  我在公司看过很多员工找人事部经理谈话,而且人事部员工可能会定期找员工谈话,问员工在工作中有没有遇到什么问题? 有没有人事部需要帮员工解决的事情?  但是请你记住, 公司人事部并不是你的倾谈对象,人事部的首要任务不是去帮助雇员,而是保护公司利益不受雇员损害,这才是最为重要的。 可能很多人认为人事部门是自己的朋友,有时甚至连对公司、对老板的真实态度都会告知于人事部门。(如果你经常这样的话,我可以肯定的说,你会跌得很惨,而且不会有人告知你原因的)  无论人事部的人员表现得何等友好,你均要认清,你跟他们的谈话内容,他们必然会与决策部门分享这些信息,例如你的老板、经理、主管及首席执行官。人事部门的职责就是(有时也是合法的)告知公司决策部门你那些所谓的“ 秘密”。  比如你不喜欢你目前的工作内容、或与老板的关系处理的不好,你千万不能找人事部抱怨,你应该直接跟你的老板沟通。可能当时谈话时人事部的员工会给予同情,说自己向自己的上司反映这个情况,但是大多数情况下人事部门会将你与他们的对话原封不动地转达给你的老板,而你的老板对此是绝对无法原谅的,出现问题首先不去找老板解决,而是直接找到人事部门,这样你的处境就很被动了,有可能被迫离开公司了。3.你的能力并不能确保你的安全  很多公司在招聘员工或对外宣传时说我们公司注重员工的能力,提倡员工能发挥自己的主观能动性 (确实有一些公司是提倡创新的,但是极少数,大部分都只是打打口号而已)。对于刚入职的员工来说可能都会有一种心理,那就是向同事或领导展示你的才华、展示你的能力,但是请注意: 公司或你的领导倒希望先看到你的忠诚,而不是显摆自己的能力。不管你的目的是什么,这个并不重要,如果你一贯展示你的能力,很有可能上司觉得你卖弄小聪明、是一个不值得信赖的人,或他会感受到威胁,如果他认为你在威胁他的位置,他才不管你有多聪明,他宁愿要一个愚笨但对自己忠诚的人。  所以,当你刚入职或刚调到一个新部门的时候,千万不能先自作聪明,你首先要做的是熟悉环境熟悉上司同事的性格,即使你是一个专家也要先摆低姿态,当然必要的是关键时刻也需要显示自己的能力,让别人觉得你是深藏不露。  韩国有一个俗语说“要想让婚姻生活幸福,就要当3年聋子,3年哑巴,3年盲人” ,因为以前在韩国婆婆对媳妇很是虐待,你必须是装聋作哑才能熬过去(当然现在已经不是这种情况了),我说这个的目的是新来乍到,你应该学会作哑装聋,刚开始多听、多学,听到闲言碎语要装聋。4.报销单是公司测试你的一个工具  看到这个题目或许你会纳闷?报销单也能测试员工?是的,我们平时不以为常的报销单也是公司或领导测试你的一个工具。  大部分公司都会有月底报销(餐费、交通费、电话费等)或出差报销吧?   你让你的领导在你的报销单上签字的时候,他有没有说过什么?或他有没有做过什么表情? 请注意,其实大部分情况下领导们都会看你报销的金额,而且如果他们愿意的话财务部门可以随时提供每个人的报销明细。  以前看过一些在公司里面贪小便宜的人,餐费、交通费里总是放着一些自己私人用的(而不是为了公司业务)费用,或许这些费用只有100元,但正是这些小钱会坏了你的前程。  我认识的一个老板跟我说过这样一句话:“某某员工哪天报了业务餐费,但是那天明明是我付款了。”或许这位员工太大意了。  但是我认识的老板当中也有一些人,他连你打的票上面的时间也核对,然后把属下每个员工的每月费用都记录下来,或许你报销的时候他可能不会说什么,但是到时候你丢掉的并不仅仅是金钱。5.在工作场合中透露私事很危险  现在我们大部分人有太多时间跟同事一起过,我们跟同事在一起的时间有时甚至超过跟家人在一起的时间,这种情况使我们有时分不清公事和私事,有时候觉得跟同事的关系像亲人一样,跟同事分享自己的私事,孩子养育问题,个人健康问题,经济上遇到的一些困难等,但是请记住,职场就是职场,你这样做很危险。  我的一位同事经常在工作场合说他儿子现在是青春期,跟我们描述怎么怎么叛逆,由于儿子的叛逆,每天回家以后家里的氛围都很紧张,有可能他是想通过倾述减少来自家庭的压力,但是最近公司开始了一个重大的项目,他一直以为自己是最佳候选人负责这个项目,但是结果令人意外,公司领导层选了其他人选,为什么呢?因为公司领导层觉得“他家里的事情已经够多了,估计他没有余力做这么重要的项目”或讲得更冷静一点就是“你连自己家里的事情都解决不了,你还能负责这么重要的项目吗?”  如果你自己身体不太好,不需要把自己的健康情况告诉同事或上司,因为对上司来说你不健康说明你不能百分之百投入或有可能影响工作,这样你的上司会不安,他甚至会提前想对策或再额外招人,这样的话到时候即使你的身体恢复了,你有可能会面临失去自己位置的尴尬局面。
6.如果你与老板作对,必然会被逐出公司大门   在公司里有一个对你产生很大影响的人,如果没有他的支持你不能得到公司的认可,晋升也很难甚至有可能丢掉你的工作,他就是你的顶头上司。  或许你的上司没有你聪明、没有你能干,你或许对他并不服气,但是请记住,他就像是一个守门人一样,你想绕开守门人,但最终的结果是你也失去了给你敞开的一扇机会门。或许你觉得如果你自己足够有能力,公司领导层会让你绕开你的上司直接让你晋升或给你另外的机会,但是不要做白日梦了,公司往往会站在你上司的角度想一个组织的稳定性,跟自己的上司斗99%受伤的都是你自己。  或许你的上司能力没有你强,但是既然他能上升到那个位置就说明他必然有一些其他方面的能力,领导力或组织管理能力或对公司的忠诚,当上司和你产生冲突时公司会站在你上司这一边,请你记住这一点。  我的一个同事很有能力,当他调到一个新部门的时候发现上司根本没有能力而且往往做不了决定,所以很多情况下他绕开自己的上司直接跟总经理沟通,而且在业务上总经理也认可了他,这让他很得意以为自己能力强上司不能拿他怎么样,但是有一次,上司说他工作太辛苦了,让他去马尔代夫休假(公司出钱),当他从马尔代夫回来以后发现,他不在的时候公司发了一个人事调令,把他调到一个无关紧要的部门。  所以,不管碰到什么样的上司,如果你还想呆在这个部门,呆在这个公司,你需要配合你的上司,这样他会帮你打开一扇机会的门。7.按了发送键? STOP~~ 公司邮件很危险  如果我说你用公司邮箱收发的邮件都被你的上司所看到,你是不是觉得天要塌下来了? 如果不是的话,那就说明你很光明正大。其实很多人都不知道公司或上司能看到你的邮件,而且公司也绝不会给员工发个警告,说要注意互相往来的E-mail,如果你用公司邮箱给朋友发私人邮件,或跟同事用邮件谈论上司或公司的政策,一定要睁大眼睛看一下:公司邮箱很危险。    (1)你利用公司邮箱收发邮件时,你一定要想着有可能公司某人正在看这封邮件,因为真的有些公司会定期检查一下邮件内容(当然是不告知于员工的情况下),我不知道之前我任职的公司是不是也这样,但是我听过一些国际知名公司会定期查员工的邮件。  (2) 邮件会永远留在公司服务器: 你或许不知道,就算有些邮件发完了你后悔了马上删除了,可能在你的邮箱里面是已经没有了,公司服务器永远记录这封邮件的。  (3)按发送键的时候一定要三思:你或许通过邮件给人事部或你的上司提一些建议或者对公司制度做一些评论,一定要注意,这些邮件在一些重要时刻会成为呈堂证供,很多情况下往往对你不利。    在公司里面我经常收到一些群发的搞笑邮件,如果以前你给同事群发过这些邮件,我建议你以后不要再发了。因为你经常发这些会让别人觉得你整天没事做,所以才发这种邮件。或许收到这些邮件的他(或她)把这个邮件转发给一些领导了,或许他也是为了让领导搞笑、高兴,但是领导们可不会这么想,你在领导的眼里会变成整天无所事事的人的。8.我努力工作公司会给我加薪?No,你必须要求!  对于工资,公司和员工之间永远都不能达到双赢,很多人对自己目前的工资并不满意。那么怎么办呢? 等着公司给你加薪?很多人认为如果我做好自己的事情,我出业绩了,公司肯定会给我加薪,是的,公司会给你加薪,但是~~ 加薪的幅度肯定不能满足你的期望。  我在公司里看过很多案例,很多人都幻想“到时候”公司会给我加薪,或害怕自己提要求以后老板有什么想法所以不敢提出来,但是如果你不敢提出加薪,公司给你的可能就是一个平均值或略高于平均值的薪水,它不是你所期待的。    当然你想要求加薪,首先你要弄清楚你的“价值”,而且必须是站在公司的角度想,如果公司认为你没有“加薪的价值”还提出要求,那你很有可能会被裁掉的。  (1)证明你的“价值”:如果你在公司整天无所事事,那公司肯定不会给你加薪的,在要求之前你必须要证明你的“价值”,让你成为公司不可缺少的人才。  (2)提要求: 像前面所说的一样,公司每天都想着怎么削减成本,如果你不要求公司觉得这是一件好事情,除非你要求了,公司绝不会自愿给你涨很多工资的。不要想着哪天会出现奇迹,如果你觉得你有价值,就要求吧,如果上司认可你,他会倾听你的话语的,并且千万不能让你老板成为你的敌人, 交流的最后一定要强调我还是尊重你的决定,因为有些时候由于客观的原因老板也有身不由己的时候。  (3)不要威胁上司:如果你还想待在公司,在要求加薪时,千万不要威胁上司,比如不加薪就离开公司或跟上司说谎说已经拿了别的公司的OFFER等,你的立场必须是“我很喜欢这个公司还有目前的业务,但是我觉得目前的工资跟我实际做的工作有差距,我希望工资能体现我的价值”等,你威胁的结果很有可能是得打包走人。  (4)不要抱怨:即使最后的结果不是很好,比如不给你加薪或加了很少一部分,通过主动出击你可能明白了自己的短处或老板对你的看法,也让老板明白了你不满足于现状。如果你没有打算离开这个公司,你就要现在开始弥补自己的短处或提高自己的业绩,下次再用更强烈的事实来证明,可能这次没有成功,但是你离下次成功就不远了 。  我知道跟老板提加薪要求很难,因为你害怕“如果我要求提工资,老板会炒我或以后他对我不给好脸色怎么办呢?”,但是大多数情况下那些你想像的最坏的情况并没有发生,大多数是happy ending。而且即使有一些副作用,公司或老板很健忘的,因为如果这个公司的OWNER不是你上司的话,钱不是从他口袋里出来,过一两个月他就会忘掉这件事情的。  这个我可以很肯定的告诉你,因为我曾试过。9. 加薪必须要求,那晋升呢? NO,千万要管好自己的嘴巴~~  既然说加薪必须要求,那晋升呢?这个千万不能要求,一旦你申请或要求晋升机会,它就会与你失之交臂,晋升不是要求的,而是上司通过认真考虑之后给予你的。  上司还没有确信你能不能成为管理人员之前你先要求,这就像是你不从大门进,而是要跳过墙进到内部。因为如果上司还没有确信你是一个当领导的料,但你先提出来,他会觉得你还没有成熟或认为你比起公司的利益更在意自己的私利。  领导们在决定晋升人选时除了业绩、工作能力之外,还会考察很多其他能力,比如领导能力,组织能力,对公司的忠诚度等,而且作为管理人员应该要沉得住气、该谦虚的时候需要谦虚,你事先提出来会破坏你的形象的。  难道要坐等吗?当然不是,你可以主动负责一些重要的项目、要提出帮助其他部门面临的棘手的项目等,一定要抓住机会让上司看到你的能力,看到你的热情。  10.如果遇到新上司要积极配合他   现在的公司经常会发生人事变动,一般来说遇到新上司属下的员工都会有一点被别人侵入的感觉,特别是当你和前任上司关系非常好的时候这种感觉更强烈。但是如果你想在公司继续混下去,你要尽快配合新上司,熟悉他的工作作风。  很多时候新上司赴任以后下属员工都期望新来的上司适应部门原来的工作方式,但是这种事情不会发生的,大部分新上司都会对目前的工作方式进行变更,这种时候千万不要带头抵触或提意见,所谓新官上任三把火,这时候你要做的是积极配合他,如果别的员工有不满情绪,你应该要中间周旋一下,这样新上司会觉得你是站在他这一边的,这个第一印象特别重要。同时,新上司刚来时,你觉得新上司还不懂部门的情况,所以就出面给他一些忠告或建议,就算你是为了新上司好,千万不要提忠告或建议,这是一个禁忌。如果他主动问你,你可以说,但是~~这种时候也尽量说事实,不要涉及到你个人的意见或负面的信息,你要让你的上司根据这些事实自己做出决定。况且新上司问你的意见或建议,是想测试你们的忠诚,想知道你们对公司或同事的真实想法,这很有可能是一个圈套。  在这里你要记住一点的是,新上司来了熟悉业务的时候对你来说是一个很好的表现自己的机会,记住,少说,默默配合新上司的工作,他会把这些都会记在心里的。
11. 想成为公司中最有价值的员工?那你就必须停止说“我做不了”而主动请缨& && &&&是不是人人都想成为公司的MVP? 那你必须要停止说"我做不了"而主动请缨,每次上司给你分配任务的时候你是不是说 “我没做过这个,我做不了这个”或“我现在没时间这个”。  就算是你觉得这个任务对你来说有点难,你觉得你有可能完成不了, 这种时候很多人可能条件反射地说”这个我做不来”, 千万不要这样说. 其实领导给你分配这个任务, 他肯定是考虑过你的能力,而且可能这件事情即使没做好他也有后路的. (一般领导不会给你安排很重要而且如果搞砸了没有后路的事情) 这种时候即使你完成的不够好可能也不会损失什么, 这种时候你的态度应该是" 这个我做起来有些难, 但是我会试试的” . 然后就得通宵加班或使上你全身力气把问题给解决. 如果你做的过程中发现按你现在的能力完成不了, 你一定要在deadline之前提交给领导(不要在最后一天提交完成度不高的答案, 领导最讨厌这种人),让他有更多时间来修改。    如果你习惯性的说"我做不了",过一段时间以后他会觉得"给你任务你肯定说做不了",所以干脆不给你指派任务.    如果你们部门里有所有人都不想做的项目或任务,如果你主动请缨接收这个"烫山芋",那领导会对你刮目相看,给予你很好的评价的,当然这种烫山芋不需要太多,只要一个就可以.  12. 想要脱颖而出?让领导感到150%满足感  在职场成功的一个秘诀, 不要只干领导让你做的事情,。如果你只是按照领导说的话100% 执行, 那你永远也无法脱颖而出。在公司做领导给你分配的任务的时候,一定要多长一个心眼, 除了他布置的任务以外, 你可以提出你的建议或者是一些改善意见, 而且完成度不能是100%, 而是要达到150%.    “做女人要像希拉里一样”中希拉里用的战略中一个很重要的战略就是: ” 让雇佣我的人或者是接受我提供的服务的人感到200%的满足感”, 这样看希拉里的目标更高.    很多人都觉得你只要做好领导分配的任务让你的领导满足100%, 做好自己分内的事情就可以了,但是如果这样做, 你在职场永远不能混好.  13. 你们公司允许言论自由吗?职场没有言论自由  或许当你第一天上班的时候人事部的人会对你我们公司很OPEN,而且在很多时候开会的时候总经理会说“大家畅所欲言吧,我会尽力满足你们的要求、尽量解决你们所提的意见”,千万不要陷进这个陷阱。大多数时候公司是没有言论自由的,特别是当你对公司的政策,环境或制度说出了真实的想法,在公开场合上反对公司的政策制度,公司会视你为影响公司氛围的反-动派,他们觉得你很危险所以通过一些方法让你打包走人的。  我不知道有些真的开放的公司是不是有言论自由,但是我看到的版本是每当总经理跟员工面谈时都会让他们畅所欲言,但是等他们真正说出了真实想法,马上他就失去了公司的信任。  还有一点,我经常看到一些人在电梯里跟同事或朋友说公司里面的事情,这个是一个很不专业的行为,因为不管你是在你办公室的电梯还是在客户公司电梯,跟你一起乘坐电梯的人有可能是你上司的朋友,重要的客户,你称赞公司可以,但是反对或不满的话语千万不要在电梯里面说,不然到时候你都不知道自己为什么死得这么快了。14. 你的办公桌专业化吗?  现在大部分外企的办公桌都是一格一格的小格子,或许你认为办公桌是我私人的地方,我想放什么就放什么,但是请注意,办公桌也是体现你价值的地方,所以要让你的办公桌也变得专业化。  那怎么样的办公桌才是专业化的呢?(1)不能太乱,我在公司里看到很多人的办公桌都是乱七八糟的,各种各样的文件摆在那里,太乱的话很容易给别人这个人工作没有条理的印象。(2)不能太整洁,如果你办公桌上什么都没有太整洁了,那别人会觉得你根本没事做。(3)不能有太多装饰品。现在80后追求个性,办公桌上面放着各种各样的东西,曾经我的同事中有一个人的办公桌可以看作是一个礼品店,各种各样的娃娃还有各种小东西,可能自己觉得这样很有创意,但是别人都在背后说她。(4)跟业务无关或跟你的调不符的书籍千万不要放在让人看到的地方。    总的来说,我觉得白天你可以把你的文件或资料放在桌上,但是下班的时候一定要整理,那些重要的资料一定要放在抽屉里(最好是锁着),这样可以显示出你做事很专业。而且现实生活中有些上司习惯下班以后转一圈看看下属的办公桌,一是看看你的桌上有没有公司重要的资料敞开着,二是通过你办公桌上的东西看看你最近的动向(如果你桌上有“8个方法教你找好工作”之类的书,那你应该是有跳槽的打算了吧?^^)  15.业绩考核结果跟你的业绩不相符?业绩也需要进行宣传  大部分公司每年都会进行1到2次(或4次)的业绩考核,业绩考核结果会影响到你的奖金/晋升等,但是很多员工发现业绩考核结果跟自己想象的完全不一样,这是为什么呢?因为业绩考核中你主观性的判断根本不重要,重要的是你的上司怎么判断你的业绩。如果你做的工作是拿数据说话的,像销售等,可能还好一点,但是我们很多人做的工作可能没有具体的数据来支持,这种时候你平时也要对自己的业绩进行宣传了。  我看过很多人平时都不怎么跟上司沟通,但是一到年底对考核结果不满,就找上司透漏不满,这种做法无法改变什么,你需要做的是  (1) 要跟上司做定期的沟通:跟自己的顶头上司定期沟通是很重要,因为通过这种沟通你可以让上司知道你正在做的工作,同时你也可以了解上司到底想什么,对你期待什么。按自己的标准来做事在公司里是站不住脚的,如果想要获得好的绩效评价,你必须要满足上司的期待和标准。  (2)对自己的业绩进行宣传:大家肯定会问这个怎么宣传啊?上司不都在看着吗?但是很多时候你做的一些事情上司还真不知道,不管你多么努力工作,如果上司不知道的话就没用,所以必要的时候一定要把一些工作进展的情况CC给上司,或我一般是采取定期把自己正在做的工作列个目录,详细描述进行情况发给上司,上司在进行绩效考核的时候可以参照这些书面的东西。  (3)即使上司给了你一个不好的评价,你不能透漏不满。因为上司这样做肯定是有他的理由的,而且他有权力给你不好的评价。你需要做的是让上司说出来他的意见,你要根据上司的意见来进行改正,因为你有义务迎合上司的工作方式、工作作风,谁让他是你的上司呢?
16. 你是不是公司里的“好好人”?如果一味地讨好他人,你便会失去他人的尊重  每个公司都会有好好人,他们对于所有人都笑眯眯,对于所有人的要求都不会说“NO”。如果你是新进入公司的员工,可能刚开始要得到其他同事的信任,需要讨好别人,当然这个是需要的,但是请你不要搞混”谦虚、摆正态度”和 “没有自己主见的好好人” 。如果你一味地讨好他人没有一点自己的主见,你会失去他人对你的尊重,在工作中别人也会把你看作是没有真学问的空瓶。    我知道这个说起来简单做起来难,有些时候是需要讨好人,但是面对重要的事情或重要的业务时,如果你认为你的想法是正确的,你应该坚持,不能一味同意别人的观点,要有自己的主见。    以前听朋友说他们公司有一个人,对于任何人拜托他的事情他都说好,结果到后来公司里的所有杂事都摊到他那里去了,他自己是为了这些琐事而整天忙碌,但是别人在后面则会笑话他。当时听的时候我想,他的同事们怎么这样啊?但是一想,估计这些事情都是他咎由自取的。对于不合适的工作或拜托,或对工作的正确的意见,如果你认为正确的话,你都应该要提出来,不能做个“好好人”,这两者的度怎么掌握,那还是看个人所处的环境或性格了。^^  17.不要隐藏自己的失误  我们在工作中难免会犯一些失误,所有人都有一种心理,那就是想在别人不知道的情况下隐藏自己的失误。但是有一点请注意,如果你所犯的失误涉及到你们部门或你的上司,你一定不能隐藏,因为很多时候隐藏自己的失误带来的是更大的失误,正所谓越遮越丑,就算你犯的是一个很低级的错误,你也要告知部门负责人或相关人员。    我刚开始工作的时候犯了这个错误,刚开始写企划案的时候修改的次数会比较多,因为上司和我之间来来回回的版本比较多,所以最后把最终版本发给上司以后自己发现有一些数字错了,因为是刚开始负责企划案,不想让别人知道我的疏忽,我就偷偷改了这些数字,因为第二天上司跟老总开会时我会把资料打印出来给他们。第二天当我把打印出来的资料递给上司,上司瞅了几眼,正好看到了那些数字,他就大发雷霆。他发火不是因为我出现了失误,因为每个人都难免会失误,问题是我想偷偷隐藏这个失误,并没有考虑上司的立场。如果当时他没发现这个,到时候给老总报告时发现了,老总正好也对这个数据有印象(因为资料是提前发给老总的),而他自己不能自圆其说的话会有什么样的后果。    这件事情对我的启示很大。我并不是说所有的失误都要公开,如果这个事情不涉及到别人,你自己一个人就解决的话你就不用公开。但是如果这个失误会波及到你的上司或组织,一定要提前告知他们,并想办法解决。所有人都会失误,如果你非常负责地处理你所犯的失误,它不会让你难堪,反而会给你加分的,因为领导们觉得你很诚实而且有责任心。但是请注意,事情过去以后同样的错误你不能再犯一次。18.休了病假或产假吗?你需要注意了  病假和产假是一个很好的福利制度,最近发现公司里怀孕的人比较多,大多数人认为法定的“病假或产假”是严格受法律保护的权利,但是你一定要注意,这有可能会把你陷入两难境地。当然,当你休长期病假(法定的)或产假还有哺乳期间公司是不能解雇你,但是如果这段期间你处理不好的话,一旦过了这个时期你就会上“黑名单”上。因为公司的员工数基本上是固定的,一旦你休几个月的假,这段期间你的工作会分到别人的头上或公司要额外的招人,过了几个月以后当你回来很可能已经没有你的位置或让你做的工作了。  那么怎么样才能防止这种情况呢?  (1)假期期间,持续跟公司的联系,特别是跟你上司的联系:我知道对于刚生孩子休产假的人来说这个应该很难,因为有太多事情让你操心,但是我还是希望你能定期抽时间跟上司或同事联系,聊一下工作的事情,或有重要的项目时如果可以的话你也可以给一些建议,但是这些,必须要让你的上司。  (2)一定要与时俱进,不能丢”业务感觉”。我们学外语的时候语感很重要,但是一旦你放了很久,你就没有语感了,这样你整个外语水平就会下降。工作也是一样的,你必须对你的业务保持那种“业务感觉”,如果可以的话在家里也看一下相关资料(当然是在你的身体允许的情况下),因为你一旦上班,公司或上司会有一段时间“观察”你,看你的工作能力或效率是不是跟以前一样。    我朋友的一个同事就是刚生完孩子上班之后状态特别不好,其实这个是情有可原的,因为小孩晚上闹精神状态就不太好,肯定会影响白天上班。但是公司不能接受她不能集中精力工作,休完产假以后过了1个月后,上司就慢慢不给她工作,而且把她手头上的工作也慢慢分给别人,最后是那个同事自己受不了无所事事就提出辞职了,这个可能就是公司所愿意的。如果她没有主动提出辞职,估计过了哺乳期以后公司也会用各种理由裁她的。  19. 劳动法并不能保护你  可能很多人会觉得现在随着法律的完善,特别是随着劳动合同法的修订等,劳动法会保护我们,但是不要对劳动法抱有幻想,它并不能保护我们。因为正所谓“上有政策下有对策”,公司的人事部或外部的人事机构会巧妙的绕过法律,保护公司的利益。  举一个例子,从新劳动合同法第39条中明确规定 劳动者有下列情形之一的,用人单位可以解除劳动合同,如“严重违反用人单位的规章制度的”,用人单位的规章制度很多样化,我们公司以前制定一个“公司员工手册”时,我们看到光是工作纪律这块就列了100多条^^ 几乎你所想到的或没想到的都列了出来,到时候如果公司真的要辞掉你,很简单,在这么多条当中肯定适用于你的。    而且一般公司想裁你会通过一些措施来让你“主动辞职”,比如上司经常给你分配你无法完成的任务,或上司对你的态度很冷淡让你无法忍受,你的办公桌移到非常不好的位置,给你一个很短的期限完成一个根本不可能完成的任务,给你很低的评价等,如果有这种征兆的话,你应该好好考虑自己的职业规划并做打算才行。20.赢才是硬道理  说了这么多,或许给一些即将进入社会或刚进入社会的师弟师妹们一种恐惧的心理,想着公司怎么都这样啊。或许这个不是适用于所有的公司,因为我也碰到过好的公司,好的上司。    但是不怕一万就怕万一,我希望大家都提前准备能保护自己的武器,可以绕过这些陷阱。如果你有才能,你必须要充分发挥出来并让别人知道,并让他们给你打开一扇机会之门。    我们的人生就像是一场赌-博,职场更是一场赌-博,你可以选择你出的牌,从而决定自己的输赢。    在职场无望的等待天上掉馅饼不是明智之举,你应该积极地占据主动位置,学会“赌-博”,学会扭转局势,因为赢才是硬道理。
sql server 中的一些实用的sql语句
简介&&&&&&& 在这篇文章中,我列举一些sql语句来介绍数据库,数据表,视图等等。当我们在使用查询查询操作时这些sql语句都是非常有用的。虽然在sql server对象浏览器中我们也可以获得这些语句,但是如果我们写这些语句时我们可以将它自定义。这就意味着我们可以给予自己的需求来过滤结果。
sql语句列表如何列举sql server当前连接的可用数据库
Method 1 : SP_DATABASES& Method 2 : SELECT name FROM SYS.DATABASES& Method 3 : SELECT name FROM SYS.MASTER_FILES& Method 4 : SELECT * FROM SYS.MASTER_FILES -- Type=0 for .mdf and type=1 for .ldf SP_DATABASES是一个可以列举数据库及其大小的存储过程
sys.databases语句中可以列举数据库名称,创建日期,修改日期,已经数据库id和其他一些信息。
SYS.MASTER_FILES语句可以查询数据的详细情况,比如数据库id,大小,物理存储路径以及列举数据库mdf和ldf.
如何列举数据库中的数据表
以下的sql语句都可以列表sql server数据库中的用户表.
Method 1 : SELECT name FROM SYS.OBJECTS WHERE type='U'& Method 2 : SELECT NAME FROM SYSOBJECTS WHERE xtype='U'& Method 3 : SELECT name FROM SYS.TABLES& Method 4 : SELECT name FROM SYS.ALL_OBJECTS WHERE type='U'& Method 5 : SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'& Method 6 : SP_TABLES
如何列举数据库中的存储过程
Method 1 : SELECT name FROM SYS.OBJECTS WHERE type='P'& Method 2 : SELECT name FROM SYS.PROCEDURES& Method 3 : SELECT name FROM SYS.ALL_OBJECTS WHERE type='P'& Method 4 : SELECT NAME FROM SYSOBJECTS WHERE xtype='P'& Method 5 : SELECT Routine_name FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE='PROCEDURE' SYS.OBJECTS数据表包含了全部的存储过程,数据表,触发器,视图等的信息,这里使用type=’p'来查询存储过程.
Information_schema.routines在sql server 7.0是一个数据视图,在其后的版本中已经变成存储过程专有的表.
如何列举数据库中的触发器
Method 1 : SP_HELPTRIGGER Products& Method 2 : SELECT * FROM SYS.TRIGGERS WHERE parent_id = object_id('products')
下面我以一个products表为例列举一些对表的操作.
如何获取数据表中的列
Method 1 : SP_HELP Products& Method 2 : SP_COLUMNS Products& Method 3 : SELECT * FROM SYS.COLUMNS WHERE object_id = object_id('Products')& Method 4 : SELECT COLUMN_NAME,Ordinal_position,Data_Type,character_maximum_length FROM&&&&&&&&&&&&&&&&&&&&& INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='Products'
如何根据数据表的列查找数据表的名称
Method 1 : SELECT O.name FROM SYS.OBJECTS O INNER JOIN SYS.COLUMNS C ON C.Object_ID = O.Object_ID& WHERE C.name LIKE '%ShipName%'& Method 2 : SELECT OBJECT_NAME(object_id) AS [Table Name] FROM SYS.COLUMNS WHERE name LIKE '%ShipName%'& Method 3 : SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME LIKE '%ShipName%'
如何获得数据视图的模式定义
Method 1 :& SELECT OBJECT_NAME(id) AS [View Name],text FROM SYSCOMMENTS WHERE id IN (SELECT object_id FROM SYS.VIEWS)& Method 2 : SELECT * FROM sys.all_sql_modules WHERE object_id IN (SELECT object_id FROM SYS.VIEWS)& Method 3 : SP_HELPTEXT ViewName
总结以上列举了一下sql server用实用的一些sql语句,希望对你在使用查询窗口操作时有用。
动态链接库的编写
在Visual C++6.0开发环境下,打开FileNewProject选项,可以选择Win32 Dynamic-Link Library建立一个空的DLL工程。
1. Win32 Dynamic-Link Library方式创建Non-MFC DLL动态链接库每一个DLL必须有一个入口点,这就象我们用C编写的应用程序一样,必须有一个WINMAIN函数一样。在Non-MFC DLL中DllMain是一个缺省的入口函数,你不需要编写自己的DLL入口函数,用这个缺省的入口函数就能使动态链接库被调用时得到正确的初始化。如果应用程序的DLL需要分配额外的内存或资源时,或者说需要对每个进程或线程初始化和清除操作时,需要在相应的DLL工程的.CPP文件中对DllMain ()函数按照下面的格式书写。
BOOL APIENTRY DllMain(HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved)
switch( ul_reason_for_call )
case DLL_PROCESS_ATTACH:
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
return TRUE;
参数中,hMoudle是动态库被调用时所传递来的一个指向自己的句柄(实际上,它是指向_DGROUP段的一个选择符); ul_reason_for_call是一个说明动态库被调原因的标志,当进程或线程装入或卸载动态链接库的时候,操作系统调用入口函数,并说明动态链接库被调用的原因,它所有的可能值为:DLL_PROCESS_ATTACH: 进程被调用、DLL_THREAD_ATTACH: 线程被调用、DLL_PROCESS_DETACH: 进程被停止、DLL_THREAD_DETACH: 线程被停止;lpReserved为保留参数。到此为止,DLL的入口函数已经写了,剩下部分的实现也不难,你可以在DLL工程中加入你所想要输出的函数或变量了。
我们已经知道DLL是包含若干个函数的库文件,应用程序使用DLL中的函数之前,应该先导出这些函数,以便供给应用程序使用。要导出这些函数有两种方法,一是在定义函数时使用导出关键字_declspec(dllexport),另外一种方法是在创建DLL文件时使用模块定义文件.Def。需要读者注意的是在使用第一种方法的时候,不能使用DEF文件。下面通过两个例子来说明如何使用这两种方法创建DLL文件。
1)使用导出函数关键字_declspec(dllexport)创建MyDll.dll,该动态链接库中有两个函数,分别用来实现得到两个数的最大和最小数。在MyDll.h和MyDLL.cpp文件中分别输入如下原代码:
extern "C" _declspec(dllexport) int desinit(int mode);
extern "C" _declspec(dllexport) void desdone(void);
extern "C" _declspec(dllexport) void des_setkey(char *subkey, char *key);
extern "C" _declspec(dllexport) void endes(char *block, char *subkey);
extern "C" _declspec(dllexport) void dedes(char *block, char *subkey);
//MyDll.cpp
#include"MyDll.h"
//这里我用了比较大小的函数代替了我要实现的函数
int desinit(int a, int b)
int desdone(int a, int b)
该动态链接库编译成功后,打开MyDll工程中的debug目录,可以看到MyDll.dll、MyDll.lib两个文件。LIB文件中包含DLL文件名和DLL文件中的函数名等,该LIB文件只是对应该DLL文件的"映像文件",与DLL文件中,LIB文件的长度要小的多,在进行隐式链接DLL时要用到它。读者可能已经注意到在MyDll.h中有关键字"extern C",它可以使其他编程语言访问你编写的DLL中的函数。
LoadRunner调用动态链接库
上面完成动态链接库开发后,下面就介绍动态链接库如何被LoadRunner进行调用,其实也是很简单的。在LoadRunner中的DLL调用有局部调用与全局调用,下面介绍局部调用。
首先把你编译的DLL放在角本路径下面,这里是MyDll.dll,MyDll.lib.然后在Action中使用
lr_load_dll("MYDll.dll"),此函数可以把DLL加载进来,让你调用DLL里面的函数,而DLL中的运算是编译级的,所以效率极高,代码样例如下:
#include "lrs.h"
int nRet = 6;
char srckey[129];
memset(srckey, 'a', 128);
lr_message(lr_eval_string(srckey));
lr_load_dll("MyDLL.dll");
nRet = desinit(5,8);
lr_message("比较的结果为%d",nRet);
比较的结果为8
全局的动态链接库的调用则需要修改mdrv.dat,路径在LoadRunner的安装目录下面(LoadRunner/dat directory);在里面修改如例:
ExtPriorityType=protocol
WINNT_EXT_LIBS=wsrun32.dll
WIN95_EXT_LIBS=wsrun32.dll
LINUX_EXT_LIBS=liblrs.so
SOLARIS_EXT_LIBS=liblrs.so
HPUX_EXT_LIBS=liblrs.sl
AIX_EXT_LIBS=liblrs.so
LibCfgFunc=winsock_exten_conf
UtilityExt=lrun_api
ExtMessageQueue=0
ExtCmdLineOverwrite=-WinInet No
ExtCmdLineConc=-UsingWinInet No
WINNT_DLLS=user_dll1.dll, user_dll2.dll, ...
//最后一行是加载你需要的DLL这样你就可以在LR中随意的调用程序员写的API函数,进行一些复杂的数据加密,准备的一些操作进行复杂的测试.同时如果你觉的有大量高复杂的运算也可以放在DLL中进行封装,以提高效率。
沉浮于LR很多天了,以前一直在WR分论坛漂。看到大家提出很多问题,不过发现大家的脚本大都已录制为主,而且经常有提出录制的脚本回放有问题,其实很多问题很好解决,LR提供了很多手段调试和优化我们的脚本。1.设置断点相信大家都不陌生,LR也是可以设置断点的,在需要设置断点的语句前按F9快捷键,断点就设置好了,程序运行到断点语句后会暂停,这时我们可以用F10单步调试程序.2.打开EXtended Log只是设置断点是不够的,我们还得知道具体发生了什么事情,Log告诉了我们一切,默认的Log是 standard Log,这时远远不够的.我们要extended log,打开路径为runtime settings--&log--&extended log.把parameter substitution和data returned by server和advanced trace大家根据需要勾选吧.3.注释掉多余的语句很多回放时出错的脚本都是因为多余的语句.因为LR在录制的时候,LR生成的语句很多不是我们想要的,这里结合几个网友的问题说说,曾有网友问:回放脚本的时候socket出错,提示: Error : socket0 - Address already in use. Error code: 10048.而且非常坚持说脚本不会有问题,因为脚本直接录制后回放,什么都没改,是不会出错的.拿到脚本一看,有一条语句lrs_create_socket,建立了socket0,但是之后没有任何socket0的语句,可以判断出 该语句是无效的,注释掉,问题解决。所以大家不要过分相信LR了 ,它生成的语句也是有很多BUG的。
经常有朋友们问到,log文件在哪看,特别是controll执行后,怎么看log。这里一一说明一下:(1)在vgen中,我们必须写输出函数输出信息,将我们所想要了解的信息用函数输出,主要有这么几个函数输出信息: lr_output_message,lr_error_message,lr_log_message。这些函数请参阅help--&function reference.其次,我们要在runtime settings中设置,勾选always send messages,具体的做法是:runtime settings---&log--&always send messages,这样我们才能写出Log,在我们的脚本所在的文件夹中,有两个文件很重要, mdrv.log.txt和output.txt文件,lr_log_message只会把信息输到mdrv.log文件中,而lr_output_message则会写进以上两个文件。(2)在controller中,很多朋友都会想知道多次迭代,参数是否正确的导入了呢,我们依旧查看log,我们在执行结束后,查看结果目录的Log文件夹,如果是负载生成器运行的话,则在tmp目录。 不过,还想提醒朋友们,在controller 我们也要设置runtime settings才行,而且每个用户组的runtime settings,设置的方法是:在controller的design标签页中,右下角的部分有runtime settings按钮,我们点击它,设置的方法与在vgen中一样的
经常看到某些人问LR中如何选择协议,我来谈谈这个问题
1.LR支持多种协议,请大家一定要注意,这个地方协议指的是你的Client端通过什么协议访问的Server,Client一般是面向最终使用者的,Server是第一层Server端,因为现在的体系架构中经常Server层也分多个层次,什么应用层,什么数据层等等,LR只管Client如何访问第一层Server。
2.特别要注意某些应用,例如一个Web系统,这个系统是通过ActiveX控件来访问后台的,IE只是一个容器,而ActiveX控件访问后台是通过COM/DCOM协议的,这种情况就不能使用Web协议,否则你什么也录制不到,所以,LR工程师一定要了解应用程序的架构和使用的技术。
3.谈谈多协议
LR是支持在一个脚本里面使用多协议的,不过这个多协议是有一定的限制的,我有一个LR7.6上哪些协议支持多协议,LR8.0是不是取消了这些限制我不清楚。象HTTPS,一般来讲一定要选择多协议,但在选择具体协议的时候一定只选Web协议,这时候才能作那个端口映射。
4.谈谈Web协议中Option
Web协议里面有一些Option,具体我记不清楚了,但有一个地方很重要:就是选择URL方式还是HTM方式录制,这里有一些原则
a. 尽量使用HTM方式录制
b.如果使用了Javascrīpt,并且javascrīpt里面与后台有交互,那一定要使用URL方式,例如javascrīpt用于判断用户名和密码是否正确(与后台一定会有交互),那么就要使用URL方式录制;但如果Javascipt只是判断用户名或密码的格式,那一般不会与后台发生交互,就不需要使用URL方式。至于什么情况下一定要用URL方式,我曾经写过一个文档,但现在我不记得了不好意思。
5.谈谈并发点和结果检查
很多人喜欢使用并发点和结果检查,我谈谈我自己的看法。第一我基本上从来不使用结果检查,压力测试的结果我一般是去后台检查存储层的数据是否正确的。LR只能检查协议层上的错误,但如果在大量并发用户的情况下使用返回结果检查例如reg_text_check,会极大的占用客户端的资源,我一般不这么作;至于并发点,我只有在客户强烈要求的情况下才会使用,否则基本不用。
1.事务(Transaction)
事务(Transaction)是这样一个点,我们为了衡量某个action的性能,需要在action的开始和结束位置插入这样一个范围,这样就定义了一个transaction,LoadRunner 运行到该事务的开始点时,LoadRunner 就会开始计时,直到运行到该事务的结束点,计时结束。这个事务的运行时间在结果中会有反映。
&& 插入事务操作可以在录制过程中进行,也可以在录制结束后进行。LoadRunner 运行在
脚本中插入不限数量的事务。
比如一个单据,把从登录到保存成功退出整个作为一个脚本,对于需要关注的保存,输入的帮助定义为单独的事务,以取得响应时间,需要响应时间的设事务
2.集合点(Rendezvous)
集合点:是一个并发访问的点,在测试计划中,可能会要求系统能够承受1000 人同时提交数据,在LoadRunner 中可以通过在提交数据操作前面加入集合点,这样当虚拟用户运行到提交数据的集合点时,LoadRunner 就会检查同时有多少用户运行到集合点,如果不到1000 人,LoadRunner 就会命令已经到集合点的用户在此等待,当在集合点等待的用户达到1000 人时,LoadRunner 命令1000 人同时去提交数据,并发访问的目的。
注意:集合点经常和事务结合起来使用,常放在事务的前面,集合点只能插入到Action 部分,vuser_init和vuser_end 中不能插入集合点。集合点函数如下:
加入集合点之后,在后面运行过程中可以看到VU的状态,会等待集合。
3.IP Spoofer(IP 欺骗)
&& 当运行场景时,虚拟用户使用它们所在的Load Generator 的固定的IP 地址。同时每个
Load Generator 上运行大量的虚拟用户,这样就造成了大量的用户使用同一IP 同时访问一个
网站的情况,这种情况和实际运行的情况不符,并且有一些网站会根据用户IP 来分配资源,
这些网站会限制同一个IP 的登陆,使用等等。为了更加真实的模拟实际情况,LoadRunner
允许运行的虚拟用户使用不同的IP 访问统一网站,这种技术称为“IP 欺骗”。
启用该选项后,场景中运行的虚拟用户将模拟从不同的IP 地址发送请求。该选项非常
的有用。注意:IP Spoofer 在连接Load Generators 之前启用。要使用IP 欺骗,各个Load Generator IPIPDHCP
LoadRunner主要功能是模拟多用户对系统进行负载压力测试,默认情况下,多用户的生成器都是LocalHost,有些应用需要不同的IP访问,为了模拟真实操作,我们还必须模拟多个IP,IP Wizard工具就提供了生成多个ip的功能,IP Wizard是一个单独的程序,我们可以在开始菜单里面找到,你可以添加一个局域网内的IP段。添加后重启,在Win2k下使用Ipconfig/all查看到很多虚拟的IP,最后要在Controller里面选择enable ip spoofer.
4.(Text/Image)检查点
对于查询类的脚本,一定要添加检查点,以保证在测试时结果的正确性.因为LR只要检测到网页的响应,就认为是pass而并不管当前网页内容的正确性.在进行压力测试时,为了检查Web服务器返回的网页是否正确,VuGen允许我们插入Text/Imag 检查点,这些检查点验证网页上是否存在指定的Text或者Image,还可以测试在比较大的压力测试环境中,被测的网站功能是否保持正确。检查点的含义和WinRunner 中的检查点功能基本上一致,这里就不再作过多的说明。
&&& 举个例子:当我用loadrunner做压力测试的时候,它的确能反馈给我各种服务器性能的数据,但是在做B/S结构系统的测试的时候,去发现如下问题:loadrunner不能正确判断操作是否成功,比如登录,我要测试200人同时登录,但是我的login.jsp里面没有正确的关闭数据库的连接,导致登录100人后,建立了100个数据库连接,第101一个人登录的时候,由于超出数据库连接的最大数,所以,jsp程序抛出了一个数据库异常。但是页面的走向是正确的,所以loadrunner会认为程序是正确执行的,但是事实却并非如此
5.脚本复用问题
&&& 作为一款优秀的负载测试工具,LR的测试脚本有很好的复用性,参数化后的脚本,在应用没什么大的变化的情况下,一直是可以用的。甚至你在A服务器录制的脚本,如果做测试的时候,需要转移到B服务器上,你只需要用查找替换的功能将A服务器的IP地址换成B服务器就可以使用。
6.理解Correlation(关联)
关联是用来解决脚本中存在的动态数据问题的.在7.8中,当你回放一次后,LR会自动录找你录制的时候和回放时候的差别,找出动态数据,并作成参数。举个我作的动态数据的例子,当用户登录时,会产生一个Sessionid号,访问结束后,该Sessionid便会失效。我录制的时候,在脚本里面获取到了该Sessionid,但当我再回放的时候,这个Sessionid已经无效了,所以,我需要把这个Sessionid作为一个动态数据,当我一登录的时候,便获取一个新的有效的Sessionid,然后通过web_reg_save_param("WCSParam_Text2","LB=ProcessID=","RB=;","Ord=1","RelFrameId=1","Search=body",LAST);函数把它保存下来。那么后面用到的页面中就可以调用WCSParam_Text2这个参数使用这个新的Sessionid号。这是个动态数据很典型的例子,
web_submit_data("w_onload_check.asp","Action=http://gsserver3/cwbase/sys/userlogin/w_onload_check.asp","Method=POST","TargetFrame=","RecContentType=text/html","Referer=http://gsserver3/cwbase/sys/userlogin/index.asp","Snapshot=t3.inf","Mode=HTML",ITEMDATA,"Name=hdclentip", "Value=chenjing", ENDITEM,"Name=hdProcessID", "Value=F8E5ACCD372845C38C7E1981A342F703", ENDITEM,"Name=selInstanceid", "Value=T01", ENDITEM,"Name=TxtUserID", "Value={RYBH}", ENDITEM,"Name=TxtPassword", "Value=cwpass", ENDITEM,"Name=Txtkjdate", "Value=", ENDITEM,"Name=selInstancetxt", "Value=性能测试用(中型数据库)", ENDITEM,"Name=selInstance", "Value=T01", ENDITEM,LAST);web_url("loginpage.aspx","URL=http://gsserver3/cwbase/sys/menushow/loginpage.aspx?ProcessID={WCSParam_Text2}","TargetFrame=","Resource=0","RecContentType=text/html","Referer=","Snapshot=t4.inf","Mode=HTML",LAST);
左边界,右边界到底是个什么概念,
理解web_reg_save_param函数,
int web_reg_save_param (const char *ParamName, &List of Attributes&, LAST);
第一部分:参数名字,用双引号括起,逗号分开;
第二部分:List of Attributes,包括:LB、RB、RelFrameID、Ord、Search、SaveOffset、SaveLen等,
第三部分:LAST,结束标志。
LB是左边界,RB是右边界,比如说吧,程序中有这么一个赋值,ProcessID =AFCE81F26DCE712E65EBA;如果ProcessID的值是动态的,我想使用动态变量,那我设定查找左边界为LB=ProcessID=,右边界为;的字符,如果找到了,就替换成变量.
Search是指查找范围,就是说在哪里查找这些值,可以取这样几个值,我们一般设为ALL,Body等即可。
Headers (Search only the headers),
Body (search only Body data, not headers),
Noresource (search only the html body, excluding all headers and resources),
ALL (search Body and headers). The default value is ALL.
RelFrameID: The hierarchy level of the HTML page relative to the requested URL.一般取1
ORD: This parameter, also known as Instance, indicates the ordinal or instance of the match. 一般取 1
LR7.8已经为用户定义好了很多类型的关联,我们可以自己定义New rule,不过我在录制脚本的时候一般把系统的那些都关掉,定义自己的,只是有的时候,它不能自动关联,就干脆手工作了。需要关联的地方:

我要回帖

更多关于 实物投影展示台 的文章

 

随机推荐