51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 8389|回复: 18
打印 上一主题 下一主题

[求助] 会编写自动化测试脚本指的是什么?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2006-8-11 14:46:26 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
经常在论坛看到说要学会自己编写测试脚本,但是不太清楚,什么样的脚本才叫自己编写的。是不是录制好的脚本,然后自己再添加一些函数等就叫“自行开发测试脚本”?呵呵,我是真的不太清楚,请知道的人告知。
还有想问一下,真正够资格被叫做测试工程师的应该具体具备什么样的能力呢?(具体点的)

[ 本帖最后由 hongleicome 于 2006-8-11 14:48 编辑 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

19#
发表于 2011-2-10 14:04:09 | 只看该作者
还在学习手工修改QTP中。。。
回复 支持 反对

使用道具 举报

该用户从未签到

18#
发表于 2011-2-10 11:29:34 | 只看该作者
学习了 继续关注~
回复 支持 反对

使用道具 举报

该用户从未签到

17#
发表于 2011-2-10 10:52:56 | 只看该作者
努力学习中...
回复 支持 反对

使用道具 举报

该用户从未签到

16#
发表于 2011-1-20 16:53:54 | 只看该作者
本帖最后由 582357212 于 2011-1-20 16:55 编辑

呵呵  应用经验不多,仅从我写过的LR和QTP方面说,第一个LR写觉得不会比录后该更烦,不熟悉业务和LR函数的话写起来可能较慢,好处在于可以减少录制的50%以上冗余代码,并且以后修改起来容易,缺点就是要熟悉要测试产品中的逻辑结构。并且容易人为带入错误,需要不断调试。QTP,脚本变化较大,录制受限太多,我一般用录制功能也就是QTP自带的一些操作对象方法忘了,录制一行相关代码看下,只用到对象库,脚本中代码70%是VBS的方法,30%这样是QTP方法。呵呵 不同公司做法不同,欢迎拍砖,另外6#的function我看了一下,很好奇function竟然不要返回值,这么用要这样用吧 Sub SingleCustomer {} end sub.这样才不用返回SingleCustomer,不然按照6#的做法function里面应该返回SingleCustomer吧,例如SingleCustomer=“一个啥”,欢迎能给个解惑。
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2011-1-12 10:24:51 | 只看该作者
我也不知道什么事脚本,做白盒测试脚本是什么
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2008-8-15 16:09:43 | 只看该作者
如果用LR做测试,全部手写 会不会很麻烦..系统录制的确快捷,简单,代替了部分手工作业.

我就是录制之后,自己做下修改.
不知道算不算.
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2008-8-15 10:27:33 | 只看该作者

不知道这个算不算会写脚本

[TestMethod]
        public void TestAccessDirectly()
        {
            //assign the value to input parameters
            string inMovieID = "g06";
            string inMovieTitle = "F is for Function";
            int inMovieRunTime = 96;
            decimal inMoviePrice = 66.6600M;


            //connect sql server
            SqlConnection sc = new SqlConnection(connString);
            sc.Open();

            // get both tables into a DataSet as a expected outcome
            
            DataSet tmp = new DataSet();
            SqlDataAdapter sda = new SqlDataAdapter("select * from tblMain", sc);
            sda.Fill(tmp, "tblMain");

            //insert the input parameters into DataSet
            DataRow tblMainDataRow = tmp.Tables[0].NewRow();
            tblMainDataRow["MovID"] = inMovieID;
            tblMainDataRow["MovTitle"] = inMovieTitle;
            tblMainDataRow["MovRunTime"] = inMovieRunTime;
            tmp.Tables[0].Rows.Add(tblMainDataRow);
            DataView dv = new DataView();
            dv = tmp.Tables[0].DefaultView;
            dv.Sort = "MovID ASC";

            
            DataSet expected = new DataSet();
            expected.Tables.Add(dv.ToTable());

            sda = new SqlDataAdapter("select * from tblPrices", sc);
            sda.Fill(expected, "tblPrices");

            DataRow tblPricesDataRow = expected.Tables[1].NewRow();
            tblPricesDataRow["MovID"] = inMovieID;
            tblPricesDataRow["MovPrice"] = inMoviePrice;
            expected.Tables[1].Rows.Add(tblPricesDataRow);



            // execute the procedure usp_AddMovie
            SqlCommand cmd = new SqlCommand("usp_AddMovie", sc);
            cmd.CommandType = CommandType.StoredProcedure;

            SqlParameter p1 = cmd.Parameters.Add("@movID", SqlDbType.Char, 3);
            p1.Direction = ParameterDirection.Input;
            p1.Value = inMovieID;
            SqlParameter p2 = cmd.Parameters.Add("@movTitle", SqlDbType.VarChar, 35);
            p2.Direction = ParameterDirection.Input;
            p2.Value = inMovieTitle;
            SqlParameter p3 = cmd.Parameters.Add("@movRunTime", SqlDbType.Int);
            p3.Direction = ParameterDirection.Input;
            p3.Value = inMovieRunTime;
            SqlParameter p4 = cmd.Parameters.Add("@movPrice", SqlDbType.Money);
            p4.Direction = ParameterDirection.Input;
            p4.Value = inMoviePrice;


            cmd.ExecuteScalar();

            // get both tables into a DataSet as a actual outcome
            DataSet actual = expected.Clone();
            sda = new SqlDataAdapter("select * from tblMain", sc);
            sda.Fill(actual, "tblMain");
            sda = new SqlDataAdapter("select * from tblPrices", sc);
            sda.Fill(actual, "tblPrices");
            bool test = TestData.TestDataTable(expected.Tables[0], actual.Tables[0]) && TestData.TestDataTable(expected.Tables[1], actual.Tables[1]);

            Assert.AreEqual(true, test, "");
            sc.Close();

        }
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2008-8-14 13:22:31 | 只看该作者
简单阐述下我个人的理解
自动化测试脚本都需要自动化测试工具来运行。。。
所以对不同公司的自动化测试工具,这里的会编写自动化测试脚本的意思也不太一样:
1)从无到有,写一堆脚本
2)录制一堆脚本,仅作局部修改
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2008-8-13 14:51:06 | 只看该作者
http://peking2toronto.spaces.live.com/Blog/cns!A975CAF18FBB985B!411.entry?wa=wsignin1.0
回复 支持 反对

使用道具 举报

该用户从未签到

10#
发表于 2008-8-13 14:30:02 | 只看该作者
http://peking2toronto.spaces.live.com/blog/cns!A975CAF18FBB985B!416.entry
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2008-8-13 11:30:41 | 只看该作者
用LR录脚本,然后修修改改,加点事务,参数化下,或者加点检查点之类,算不?
回复 支持 反对

使用道具 举报

该用户从未签到

8#
发表于 2008-8-13 09:25:18 | 只看该作者
学习一下!
能不能上传一个自已写的脚本看下
谢谢!
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2006-8-14 12:27:06 | 只看该作者
原来要求“会自行开发测试脚本”的要求,真的是要求完全的自己编写,而不是对已经录制好的脚本的增加修改处理啊?那我还差的远需要继续学习……向6楼学习
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2006-8-12 19:15:45 | 只看该作者
自动化脚本是写的,录的很少,不然不能很好的驾驭整个系统的需要
我就没有录过脚本,几乎所有脚本都是写的
附上一小节脚本:
一个一列表中找到想要的那一条记录

Function SingleCustomer()
        innertext_v="序号客户编号.*"
        Dim i,j,text1,text2
        For j=1 to 100
                rows=Browser("Browser").Page("Page").WebTable("innertext:="&innertext_v).RowCount
                text2=customerNum
                temp = text1
                For i=1 to rows
                                text1= Browser("Browser").Page("Page").WebTable("innertext:="&innertext_v).GetCellData(i,2)
                                if   text1 = text2 Then
                                        Browser("Browser").Page("Page").WebTable("innertext:="&innertext_v).ChildItem(i,3,"Link", 0).Click
                                        Browser("Browser").Page("Page").Sync
                                        ExitAction
                                End If
                Next
       
                If temp<>text1 Then
                        Browser("Browser").Page("Page").Link("html id:=.*scroll_1next").Click
                        Browser("Browser").Page("Page").Sync
                else
                        Reporter.ReportEvent micFail,"客户列表搜索","搜索的目标客户不存在!"
                end if
        Next
End Function

[ 本帖最后由 auqdppyv 于 2006-8-12 19:18 编辑 ]
回复 支持 反对

使用道具 举报

  • TA的每日心情
    难过
    2015-4-23 14:35
  • 签到天数: 3 天

    连续签到: 1 天

    [LV.2]测试排长

    5#
    发表于 2006-8-12 10:55:51 | 只看该作者
    技术方面上面有人提过了,我觉得做好测试工作,对测试人员的素质也有一定的要求,例如沟通能力,语言表达能力,耐心,细心,逻辑思维能力,总结分析等等都是很重要的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    4#
    发表于 2006-8-11 23:51:52 | 只看该作者
    顶一下楼上。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
    发表于 2006-8-11 17:53:37 | 只看该作者

    haha

    脚本的录制只能说是编写编写的一个部分!
    测试工程师的定义严格来说的话要求还是比较高的!
    起码会在一个项目中负责开展一个功能模块需求分析,测试计划,测试策略的制定,以及case的编写到完成,同时还要有一定的问题解决能力!以及测试报告的编写。其次,还要具有应用测试工具的能力,至少两门流行的测试工具!!
    有事情可以交流:QQ:47054721  加我的时候请说明你是做测试的就OK!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2#
    发表于 2006-8-11 17:09:35 | 只看该作者
    跟我的迷惑完全一样,高手赶快解答一下吧
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-9-27 23:44 , Processed in 0.090272 second(s), 26 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表