发布新日志

  • "SQL Server 不存在或访问被拒绝"解决方案

    2007-05-11 15:28:57

    今天没有测试工作,就想用.net编编程。谁知一链接 sql Server时,提示"SQL Server 不存在或访问被拒绝",好不容易把这个问题搞定.

    1.代码里服务器,uid,pwd录入都正确。

    2.进入dos命令,ping 【服务器名称或IP】,若不成功那要查看物理链接,防火墙等.

    3.查看sql服务管理器是否已启用.若没有启用,那就要启用了。

    4.进入sql server Enterprise Manager->点击“数据库服务器名”->工具->sql Server 配置属性->安全性:查看“身份验证”选项是否是"SQL Server和 Windows "和 Windows ".

    5.分别进入sql server服务器网络使用工具和sql server客户端网络使用工具查看tcp/ip协议是否启用,在看两个的端口是否一致

    6.若上面所说的情况都没有问题在进入dos界面,输入telnet 服务器或ip】 【端口】 看是否链接成功。或输入netstat -an,检查端口有没有被监听。如果没有,则通常需要给sql server 2000打上至少sp3的补丁。打开查询分析器,输入 select @@version 执行后可以看到版本号,若版本号在8.0.2039以下的都需要打补丁。

    我一打完补丁就可以用了。

     

     

  • 对mysql数据库的负载测试的脚本

    2007-05-10 18:20:39

    今天上午写了对sql server数据库负载测试的脚本(“用ODBC协议编写对sql Server数据库的负载测试的脚本”),下午索性对脚本修改成针对mysql数据库的脚本,修改地方如下:

    1.安装mysql odbc 3.51 Driver

    2.修改“lrd_open_connection”这个函数中的驱动参数改为mysql驱动,如

    lrd_open_connection(&Con1, LRD_DBTYPE_ODBC, "", "", "","DRIVER=MySQL ODBC 3.51 Driver;UID=;PWD=;SERVER=;DATABASE=", Ctx1, 1, 0);

     

  • 对sql Server数据库的负载测试的脚本

    2007-05-10 17:56:35

    这段时间一直在练习“如何用ODBC协议编写对sql Server数据库的负载测试的脚本”,下面是我这几天编写的脚本,已运行通过,注意脚本中的变量都在“vdf.h”文件中定义

    //使用odbc协议

    Action()
    {
       unsigned long i=0;
       unsigned long * const count = &i; 

    //1   初始化环境
     lrd_init(&InitInfo, DBTypeVersion);

    //2   open context:Ctx1
         // 初始化 LRD_CONTEXT structure
     lrd_open_context(&Ctx1, LRD_DBTYPE_ODBC, 0, 0, 0);

    //3   Allocates a connection structure:con1
     lrd_alloc_connection(&Con1, LRD_DBTYPE_ODBC, Ctx1, 0 /*Unused*/, 0);

    //4  Connects  to the database.链接数据库。
        lrd_open_connection(&Con1, LRD_DBTYPE_ODBC, "", "", "","DRIVER=SQL Server;SERVER=;UID=;PWD=;DATABASE=", Ctx1, 1, 0);

    //5   open cursor
         //the function(lrd_open_cursor) opens a cursor by setting up an LRD_CURSOR structure.
        //You can use a single cursor to execute successive SQL statements
        lrd_open_cursor(&Csr1, Con1, 0);

    //7  插入一条记录并返回该条记录的关键值
        lrd_cancel(0, Csr1, 0 /*Unused*/, 0);
        lrd_stmt(Csr1,"INSERT INTO book1 (b) VALUES ('abc') Select IDENT_CURRENT('book1') \r\n", -1, 1 /*Direct exec*/, 0 /*None*/, 0);

        //一定要使用下面的函数重设置LRD_CURSOR结构,否则在执行lrd_fetch时会提示“[ODBC SQL Server Driver]无效的游标状态”,
     lrd_result_set(Csr1, 0, 0, 0);  
        //邦定列
        lrd_bind_cols(Csr1, BCInfo_D39, 0);//其中BCInfo_D39在vdf.h中定义
        //保存某行某列到变量中,在这个脚本中没有什么作用,只是为了体现这个函数的作用
     lrd_save_col(Csr1,1,1,0,"Saved_number_D34");
       
        //获取所有查询出来的值
        lrd_fetch(Csr1, -8, 1, count, PrintRow3, 0);//其中PrintRow3在print.inl中定义,其中count为本次获得的记录的总行数
        //保存当前行的某一个字段的值到变量中(最后一行)
        lrd_save_value(&a_D36, 0, 0, "emp_id"); 

    //8  根据lrd_save_value所取得的最后一行的a_D36字段最为查询条件,既所插入的值所返回的关键值

        //释放Csr後
        lrd_cancel(0, Csr1, 0 /*Unused*/, 0);
        lrd_stmt(Csr1,"select * from book1 where a = {emp_id} \r\n", -1, 1 /*Direct exec*/, 0 /*None*/, 0);
        lrd_bind_cols(Csr1, BCInfo_D39, 0);
        lrd_fetch(Csr1, -8, 1, count, PrintRow3, 0);   
      
    //9   close cusor、connectio、context
        lrd_cancel(0, Csr1, 0 /*Unused*/, 0);
        lrd_result_set(Csr1, 0, 0, 0);
        lrd_db_option(Csr1, OT_ODBC_CURSOR_CLOSE, 0, 0);
        lrd_db_option(Csr1, OT_ODBC_CURSOR_UNBOUNDCOLS, 0, 0);
           
        lrd_close_cursor(&Csr1, 0);
        lrd_close_connection(&Con1, 0, 0);
        lrd_free_connection(&Con1, 0 /*Unused*/, 0);
        lrd_close_context(&Ctx1, 0, 0);
    }

  • 获取lrd_fetch所执行的行数

    2007-05-10 12:25:41

    unsigned long i=0;
    unsigned long * const count = &i;
    lrd_fetch(Csr1, -8, 1, count, PrintRow2, 0);//其中count就获得了lrd_fetch所fetched的行数
    lr_message("count= %d",*count);

  • [转]广州第十次软件测试交流会之心得分享篇

    2007-05-10 11:06:49

    原文的连接:http://www.cnblogs.com/pent/archive/2007/04/04/699801.html


      上周末参加了广州关于职业发展的测试交流会,很有收获。会上有微软的项目经理谈自己的工作发展经历,给了很多建议,同时更有HR的嘉宾精彩的点评。还有结合一个案例谈到测试工程师的职业发展方向,让我们和嘉宾针对一些现实中的问题进行对话,实在精彩。很可惜由于临时有事提前开溜了,下面将一些心得体会跟大家分享(很多话是引述嘉宾的话)。

    1、不断的学习和反思
    这点很重要,也是目前很多同行容易忽略的问题。我在面试时就深有体会。
    比如说面试时如果有人问你对原来公司工作流程介绍、该流程有何优缺点、该流程发展的来龙去脉、谈谈你的改进方法等,我们是否能清楚的回答上来,这体现了我们平时工作中是否真正的理解该流程,是否做过深入的思考。这其实也是平时面试中很普遍的问题,如果连这些问题都没有回答好,那说明工作不够深入思考不充分,或是缺乏探索和思考的精神。但如果我们清楚知道其优缺点并且主动的去探讨、改进,只是由于公司的某些原因不能真正的实施起来,那问题不在我们,但起码我们去思考过努力过对得起自己,同时也知道我们的改进方法是否可以行的通,我们也有收获。
    说到总结方面,每周的工作报告或项目总结、经验教训等,都是很好的方式。
    “及时让个人经验结构化、系统化,并传播到整个团队当中。”

    2、低头做事抬头观望
    低头做事抬头观望并非让你一边工作一边东张西望。低头做事,指的是要认真的工作,拒绝浮躁,踏踏实实的把工作做好,积累实际工作中的经验。我记得HR嘉宾提到,如果没有在某一方面有深入的了解,即使我们以后当上了测试经理或更高的决策层,但由于缺乏专业的知识会使得作出的决策把握不准确或偏离正确的方向。我想这和某些政府领导在升官之前都要去基层工作有相同的原因吧。
    抬头观望,是说要了解国内外行业的发展动态,建立对测试行业的整体认识,了解目前国内外测试界发生了什么变化等。比如现在有什么新的测试技术、有什么热门的话题、参加各种测试交流会等等,由此建立对整个测试行业的综合认识,拓宽知识面。

    3、机会只给有准备的人
    这句话可能大家都很熟悉,但这句话的另一层含义是:当机会来临时,你已经来不及准备,并由此错失良机。因此,平时的知识积累总结很重要。比如英语的读写说的能力就需要长时间的准备。

    4、建立圈子
    建立工作、学习、生活的社交圈子,多进行交流活动,获得好的名声,将给你带来更多的机会。这一点上我就很欠缺,由于性格方面的原因,做了这么多年的测试工作,除了少数的几位同事,但在社交的圈子上还是几乎空白,以后要多注意了。

    还有一些面试方面的技巧,如面试前的精心准备、谈判与沟通技巧、对甲方要有充分认识(同事朋友、IT速查)、公司的用人标准影响你是否被录用等。

    个人还有一些关于职业发展方向的看法及疑问,请看广州第十次软件测试交流会之职业发展探讨篇(http://www.cnblogs.com/pent/archive/2007/04/05/700944.html)。

  • 选取webList中某一项

    2007-03-12 15:31:14

    groupCodeLenth= Browser("test").Page("test").Frame("mainFrame").WebList("mainFrame").Object.length
    Randomize
    groupCodeNum=int(groupCodeLenth*Rnd)
    msgBox"groupCodeNum= "&groupCodeNum
    if(groupCodeNum>=0) then
    Browser("test").Page("test").Frame("mainFrame").WebList("sgrouptitlecode").Select  "#" & groupCodeNum
    end if
  • ChildObjects和webTable的使用

    2007-03-12 12:37:39

    dim  maxCodeRow,maxCode,temp,webTableIndex
    Dim obj
    maxCode=0
    Set ōDesc = Descrīption.Create()
    oDesc("micclass").Value = "WebTable"

    '获得Browser("test").Page("test").Frame("mainFrame")下所有webTable
    Set Lists =Browser("test").Page("test").Frame("mainFrame").ChildObjects(oDesc)

    '获得webTable的总数
    NumberOfLists = Lists.Count()

    '对text ="XXX"的webTable进行操作
    For listIndex = 0 To NumberOfLists - 1
     Set ōbj=Lists(listIndex)
     text=obj.GetCellData(1,1)
     if( text ="XXX") then
       num=obj.RowCount'获得这个webTable的行数
       For  webTableIndex=2 to num'找出自己想要操作的行号,在这里取得编码为最大的行号
        temp=obj.GetCellData(webTableIndex,1)
        if( temp > maxCode  ) then
        maxCode=temp
        maxCodeRow=webTableIndex
        end if
       Next
       obj.childItem(maxCodeRow,9,"Link",0).Click'点击该行的“删除”连接
       Browser("test").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
       exit for
     end if
    Next

  • (转载)QTP中虚拟对象设置

    2007-03-05 16:42:13

  • 登陆脚本设计

    2006-12-11 14:33:29

    这几天正在学习qtp,下面是我写的一个登陆脚本,若有什么不足之处,请大家指出

    Dim str,MyArray ,Msg

    Browser("test").Page("test").Frame("topFrame").WebEdit("name").Set DataTable("Name", dtGlobalSheet)
    Browser("test").Page("test").Frame("topFrame").WebEdit("name").Set DataTable("pwd", dtGlobalSheet)
    Browser("test").Page("test").Frame("topFrame").Link("登录").Click

    if(Browser("test").Dialog("Microsoft Internet Explorer").Exist) then
       str = Browser("test").Dialog("Microsoft Internet Explorer").GetVisibleText
      '假设系统提示信息为“请输入帐号!”,则“GetVisibleText ”这个函数返回的值是:
      'Microsoft  Internet  Explorer
      '请输入帐号!
      '确定
       MyArray = Split(str,  vbcrlf , -1, 1)
       'MyArray(0) =Microsoft  Internet  Explorer
       'MyArray(1) =请输入帐号!
       'MyArray(2) =确定
      str = MyArray(1)
      datatable.Value("result",dtGlobalSheet)=str
       Browser("test").Dialog("Microsoft Internet Explorer").WinButton("确定").Click
    Else
       Browser("test").Page("test").Frame("topFrame_2").Link("退出").Click
    end if

数据统计

  • 访问量: 7055
  • 日志数: 9
  • 建立时间: 2006-12-05
  • 更新时间: 2007-05-11

RSS订阅

Open Toolbar