study

发布新日志

  • tomcat jdk name报错解决方案

    2011-12-23 09:59:45

    tomcat jdk name报错解决方案

          首先确认安装好myeclipse和tomcat5,eclipse3.2版本的安装不要超过tomcat5版本,安装tomcat5确认第二次选择路径时确定是JDK安装的目录!(这个地方很容易添成jre路径,肯定就报错

          第一步:点击eclipse 的菜单项目-----> 窗口 ------> 首选项------> MyEclipse ----> Application Servers----->Tomcat5------>JDK,

          第二步:可以看到右边出现"Tomcat JDK name"项,

          第三步:点击右部按钮 "Add...",弹出窗体中设置"JRE名称(可以自己取名字),

          第四步:设置"JRE主目录",JDK安装的目录。(这个地方很容易添成jre路径,肯定就报错)然后确定。

          

            这时可见Tomcat5 的 Tomcat JDK name中使用的即是刚才所设置的JRE名称了,应用即可。

  • 使用OWA无法撰写邮件内容的解决法(转)

    2011-08-16 09:12:43

    [问题描述]
    有些用户使用OWA 新建邮件时,撰写邮件内容的区域可能出来一个红叉, 无法写邮件.如图:


    或是显示"这部电脑安装的S/MIME控制版本太旧"


    [ 解决办法 ]
    1、你可以尝试在登入 Outlook Web Access , 先进入左下方有个 "选项" 按钮, 在右侧的 "选项" 画面中会看到 "电子邮件安全性" 的项目, 可点选 "下载" 来安装 S/MIME 控件.如图:



    2、试着重新注册DHTML的两个组件(C:\Program Files\Common Files\Microsoft Shared\Triedit\目录下找到dhtmled.ocx、triedit.dll)把两个文件重新注册。
    regsvr32 dhtmled.ocx /u
    regsvr32 dhtmled.ocx
    regsvr32 triedit.dll /u
    regsvr32 triedit.dll
  • ruby中的hash(转载)

    2010-11-15 17:10:13

     数组和Hash对象是统一的,数组只是Hash对象的一种表现形式,Hash对象里包含的元素的key是任意的,而数组里所包含的key是连续的,而且只能够使整数,在同一hash中,索引键必须唯一

    Hash对象里的元素都是由两部分组成:key和value两个部分
    Hash对象是由一些列在花括号里面的key-value对组成,多个key-value对之间以英文逗号隔开,key和value之间由"=>"隔开,最后一个逗号会被省略

    a={"zhansa"=>40,"lisi"=>20,"wangwu"=>25}
    p a;
    p a["zhansa"]
    p a["lisi"]
    结果
    {"wangwu"=>25, "lisi"=>20, "zhansa"=>40}
    40
    20

     


    my_hash = Hash.new
    puts "Hash对象的长度"+my_hash.size.to_s
    my_hash["Java"]=5
    p my_hash

    my_hash["Ruby"]="aaaa"
    p my_hash
    输出结果
    Hash对象的长度0
    {"Java"=>5}
    {"Ruby"=>"aaaa", "Java"=>5}

     

     

    Hash对象的常用方法
    length()/size()

    delete(key)

    include?(key)\has_key?(key)\key?\member?  判断指定的Hash对象是否包含特定的key

    keys()

    values()

    b={"zhansa"=>40,"lisi"=>20,"wangwu"=>25}
    p b.length().to_s
    p b.include?("zhansa")
    p b.keys
    p b.values()
    输出值
    "3"
    true
    ["wangwu", "lisi", "zhansa"]
    [25, 20, 40]


    Hash对象的迭代
    Hash对象支持如下4个常用迭代
      each:迭代输出Hash对象里全部项(包括key和value)

      each_key 迭代输出Hash对象里全部key

      each_pair 迭代输出Hash对象里全部key-value对

      each_value 迭代输出Hash对象里全部value

    b={"zhansa"=>40,"lisi"=>20,"wangwu"=>25}
    b.each do |key,value|
      puts "key:"+key+",value:"+value.to_s
    end
    b.each_key do |key|
      puts "key:"+key
    end
    b.each_value do |value|
      puts "value:"+value.to_s
    end
    b.each_pair do |key,value|
      puts "key:"+key+",value:"+value.to_s
    end
    输出结果
    key:wangwu,value:25
    key:lisi,value:20
    key:zhansa,value:40
    key:wangwu
    key:lisi
    key:zhansa
    value:25
    value:20
    value:40
    key:wangwu,value:25
    key:lisi,value:20
    key:zhansa,value:40

  • Win32ole转载

    2010-11-03 10:00:50

    Win32ole为标准Ruby发行版的一部分。Win32ole是访问Windows自动化的接口,可以让Ruby和Windows应用进行交互。具体说来Win32ole可以操作Word,Excel,IE,Outlook等。 


    以下均为代码片段 
    Word 
    创建一个Word文件 
    Ruby代码 
    1. require 'win32ole'    
    2. word = WIN32OLE.new('Word.Application')     
    3. word.visible=true  #是否打开文件  
    4. word.Documents.Add()     
    5. for i in(0..100)     
    6.   word.Selection.Font.Size=12     
    7.   word.Selection.Font.ColorIndex = 2     
    8.   word.Selection.TypeText("Word with Ruby \n")     
    9. end    
    10. word.DefaultSaveFormat     
    11. word.Documents.close()   


    Outlook 
    调用Outlook发送邮件 
    Ruby代码 
    1. require 'win32ole'  
    2. outlook = WIN32OLE('Outlook.Application')  
    3. message = outlook.CreateItem(0)  
    4. message.Subject = 'Subject line here'  
    5. message.Body = 'This is the body of your message.'  
    6. message.To = 'xiaofan2350@yahoo.com.cn'  
    7. message.Attachments.Add('c:\really\one.txt', 1)  
    8. message.Send  


    Excel 
    创建一个Excel文件 
    Ruby代码 
    1. require 'win32ole'  
    2. excel = WIN32OLE.new('Excel.Application')  
    3. book = excel.workbooks.add  
    4. sheets = book.worksheets(1)  
    5. cells = sheets.cells("A1:A5")  
    6. cells.each do |cell|  
    7.   cell.value = 10  
    8. end  


    Ruby代码 
    1. require 'win32ole'     
    2. excel = WIN32OLE.new("Excel.Application")            
    3. excel.Visible = true  #是否打开文件  
    4. excel.WorkBooks.Open("d:\\really.xls")   #打开excel  
    5. worksheet = excel.ActiveWorkbook.WorkSheets(1)     
    6. # Output the sheet count of the current work book.  
    7. rows = worksheet.UsedRange.Rows  #得到excel文件的行数  
    8. worksheet.Range('A1:D1').value = ['North','South','East','West'#往excel指定区域写入数据  
    9. worksheet.Range('A2')['value'] = "really"  
    10. worksheet.Range('B2')['value'] = "notreally"  
    11. worksheet.Range('C2')['value'] = "javaeye"  
    12. worksheet.Range('D2')['value'] = "notreally.javaeye.com"  
    13. excel.ActiveWorkbook.WorkSheets.add({'count'=>1, 'after'=>worksheet})  
    14. #添加一个excel工作区  
    15. excel.ActiveWorkbook.Close  #关闭工作区  
    16. excel.Quit()    


    IE 
    创建一个ie浏览器的实例 
    Ruby代码 
    1. require "win32ole" #包含库  
    2. ie = WIN32OLE.new('InternetExplorer.Application')  
    3. ie.visible = true #这个时候就可以看到一个ie的界面出来了  
    4. ie.navigate('http://www.ask123.net'#转到这个页面  
  • 泛型

    2010-09-20 10:03:59

    泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 
      Java语言引入泛型的好处是安全简单。 
      在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。 
      泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。 
  • ruby+watir+netbeans安装

    2010-04-11 11:37:53

    安装watir,安装了一个晚上,还是没有安装成功。运行require'watir'时总提示could not load(watir)...最后参考了论坛中亲的安装方法:

    1、ruby安装
       下载 ruby186-27_rc2.exe,安装。 

       选择前面的,最后一个不选   

       在命令行下敲入 ruby -v 显示版本号,则说明OK!
    2、安装ruby的升级包
       下载升级包rubygems-update-1.3.6.gem,然后解开到展开目录rubygems-update-1.3.6.gem下。
       在rubygems-update-1.3.6.gem目录下运行:
        gem update --system

    再运行:
        gem install activesupport

    3、watir的安装

       以1.6.5版本为例,本地安装。

       先建立一个目录XXX,将后面下载的文件放到该目录中,
         下载commonwatir-1.6.5.gem.tar 改名(不是解开,下面也一样)为commonwatir-1.6.5.gem
         下载firewatir-1.6.5.gem.tar 改名为firewatir-1.6.5.gem
         下载watir-1.6.5.gem.tar改名为watir-1.6.5.gem
    4、在目录XXX下执行:
       gem install commonwatir-1.6.5.gem -l
       如果报错误,就试验:gem install commonwatir (我用这个成功)
       执行过程中报生成某个Doc错误,不管他。

    5、继续执行:
      gen install nokogiri
      会报告一些defination找不到之类的错误,不管他

    6、最后执行:
        gem install firewatir-1.6.5.gem -l
        再执行:
        gem install watir-1.6.5.gem -l

    7、安装开发工具:netbeans.

    因为netbeans是基于JAVA的,所以需要先下载一个JAVA JDK。

    下载1.5版本以上就OK。

    下载netbeans.并安装:

    下载地址:

    http://www.netbeans.info/downloads/dev.php  右边栏选择6.7.1,然后进入页面后,选择支持ruby的IDE选项,然后下载就可以了。

    安装完毕后,打开IDE更新需要更新的(与ruby相关的),重启NetBeans。

    8、完毕后执行:
    require 'watir'
    ie = Watir::IE.new
    ie.goto(
    http://www.google.com)
    如果能打开窗口并且可以切换到google,说明安装OK!

  • 随笔

    2009-10-27 13:29:53

     

    又回到QTP了

    又要开始写QTP脚本了

    鉴于QTP按位图来录制,页面布局改后就不好识别。这次的脚本要尝试手写的哟

    给自己先顶个

  • Unspecified error请帮忙~

    2009-04-13 10:57:51

    大家好,我在编写脚本时遇到以下错误,请求帮忙~
    相关脚本如下:
    Browser("用户登录").Page("集团资金管理系统").Frame("Frame_2").Link("待办任务").Click
    Dim rows,innertext
    rows=Browser("用户登录").Page("集团资金管理系统").Frame("content_9").WebTable("编号").RowCount
    If  rows>=2  Then
            innertext=Browser("用户登录").Page("集团资金管理系统").Frame("content_9").WebTable("编号").GetCellData(2,2)        'msgbox innertext
    Browser("用户登录").Page("集团资金管理系统").Frame("content_4").Link("text:="&innertext,"index:=0").Click
    'Browser("用户登录").Page("集团资金管理系统").Frame("content_9").WebTable("编号").Check CheckPoint("编号")
    'Browser("用户登录").Page("集团资金管理系统").Frame("content_4").Link("过程3").Click
    Browser("用户登录").Page("集团资金管理系统").Frame("content_5").WebEdit("amount").Set DataTable("amount_de", dtLocalSheet)
    Browser("用户登录").Page("集团资金管理系统").Frame("content_5").WebButton("通过").Click
    else
    Reporter.ReportEvent micPass,"无待办任务","待办审批失败"
    end if

     

    运行到上述红色标记时,总是报错,提示信息为:Unspecified error

    可是平常也是这么定义的,没有出错,实在找不到什么错。请求帮忙,谢谢~

  • QTP手写脚本总结

    2009-02-26 17:32:56

     

    经过一周的学习,对于QTP手写脚本有了些认识。总结下~

    手写脚本,可以抛去很多麻烦,可以提高脚本的利用率,也便于维护;而且可以避免录制了对象后,在运行时无法识别等

    问题。好处是蛮多,只是不太好写。

    最开始要学手写脚本,一方面是为了提高脚本利用率便于维护,另一方面是因为这是领导的要求,提升自己嘛。呵呵~

    在思考怎么写脚本的时候,总是有一个问题在困扰着我:手写QTP脚本,需要对象库文件吗?需要去维护对象吗?

    后来由于这个问题一直没解决,也没有动手写,不晓得从哪写起。

    有人说,当然需要对象库,没有对象库,就像对空气执行操作;

    似乎也对。自己的心凉了一点。维护对象不是一件容易的事,至少我觉得是蛮麻烦的。

    后来,有一个资深的同事告诉我,手写脚本不用维护对象。

    之后还贴了代码给我演示,经过几番周折,我终于明白了。手写脚本,可以完全抛开对象库。

    呵呵,不过明白了这点更难了。因为抛开对象库,有很多页面上的控件啊什么的根本无法区分了。

    嘿嘿,所以我的QTP手写脚本又得搁下了,因为我水平的有限。

    请大家发表自己的见解哟~

  • LR学习要达到的水平?

    2009-02-26 17:32:56

    LR学习要达到什么样的水平呢?

    在学习的过程中,难免考虑这样的问题~

  • LR学习

    2009-02-23 15:42:29

    LR的帮助文档除了分析那一块的,都看完了。基本能跑了,就是不晓得怎么分析。似乎对于脚本这一块更模糊了。不晓得从哪着手,是否需要从C语言着手呢?要是想学好LR,需要具备什么呢?

    不想像QTP那样学到一半,又搁下了,想好好学,请路过的朋友们给个意见吧~

  • 前辈贴的不需要tsr文件的QTP手写脚本

    2009-02-23 15:42:29

    Call login(“http://10.10.14.101:30020/NASApp/iTreasury-settlement/IndexTest.jsp?istroy=isoftstone)

    Function login(URL)

                       '关闭所有的IE窗口,避免出现问题

                       SystemUtil.CloseProcessByName "iexplore.exe"

            

                       '打开IE,进入站点

                       SystemUtil.Run "iexplore.exe"

                       Set browsDesc = description.create()

                       Set pageDesc = description.create()

                       Set curPage = Browser(browsDesc).Page(pageDesc)

                       curPage.Sync

                       Browser(browsDesc).Navigate URL

                       curPage.Sync

     
                       '输入用户名,登陆系统
        

    curPage.WebEdit("name:=loginno").Set "用户名"

                    curPage.WebEdit("name:=password").Set "密码"

     

           curPage.WebEdit("name:=loginno").Set DataTable("用户名",Sheet_Name)

          curPage.WebEdit("name:=password").Set DataTable("密码",Sheet_Name)


                       curPage.WebButton("name:=登 陆").Click
    end function

    以上脚本是前辈帮忙的,可是我还是不是很懂。不过,相信,不用tsr文件,一样可以手写QTP脚本了

  • QTP脚本可以直接写不录制吗?

    2009-02-17 17:24:27

     

    请问:

    可以直接写QTP脚本来运行,而不是先录制后修改脚本吗?

    请大家指教哟~~~

  • new start

    2009-02-16 12:58:11

     

      由于项目上的需要,要暂时把QTP的学习先放放了,要开始loadrunner的学习了。一片迷茫中~~~

      有了上一个测试工具学习的经验,这次的学习历程,我将慢慢记录下来~~~

      顶自己一下,呵呵~

  • 感到迷茫了

    2009-02-04 10:02:34

    这几天,感觉很迷茫。

    QTP学习告一段落,任务完成了,可是感觉提高还不明显;想学着写脚本,可是不知道从哪开始着手了。

    周边的都是开发人员,有时他们交流时,都不明白大家在说什么,所以又想恶补下开发的知识。还是不知道从哪学起。

    相当迷茫之中。。。

  • 学习QTP

    2009-01-16 15:46:26

     

    从接到任务开始学习QTP到现在,快一个月了。在这一个月里,从对QTP的一无所知到现在能录制脚本,能修改基本的脚本。可以说是,有了一点进步了吧。

    在学习的过程中,遇到问题总是直接在论坛上找答案。不过,还是有些问题没有解决。像录制时有的页面无法录制进去,而用objects spy一样无法准确识别等等问题。

    现在,对QTP的学习告一段落,任务完成了80%了。还有些,不想再用以往的方式来解决了。

    目前,对于QTP仍然有很多有疑惑的地方。想重新开始巩固下。不晓得从哪里开始着手。

    呵呵~~~希望有人给点意见哈~

Open Toolbar