51Testing软件测试论坛

标题: 会编写自动化测试脚本指的是什么? [打印本页]

作者: hongleicome    时间: 2006-8-11 14:46
标题: 会编写自动化测试脚本指的是什么?
经常在论坛看到说要学会自己编写测试脚本,但是不太清楚,什么样的脚本才叫自己编写的。是不是录制好的脚本,然后自己再添加一些函数等就叫“自行开发测试脚本”?呵呵,我是真的不太清楚,请知道的人告知。
还有想问一下,真正够资格被叫做测试工程师的应该具体具备什么样的能力呢?(具体点的)

[ 本帖最后由 hongleicome 于 2006-8-11 14:48 编辑 ]
作者: Joris    时间: 2006-8-11 17:09
跟我的迷惑完全一样,高手赶快解答一下吧
作者: xiaomao198210    时间: 2006-8-11 17:53
标题: haha
脚本的录制只能说是编写编写的一个部分!
测试工程师的定义严格来说的话要求还是比较高的!
起码会在一个项目中负责开展一个功能模块需求分析,测试计划,测试策略的制定,以及case的编写到完成,同时还要有一定的问题解决能力!以及测试报告的编写。其次,还要具有应用测试工具的能力,至少两门流行的测试工具!!
有事情可以交流:QQ:47054721  加我的时候请说明你是做测试的就OK!
作者: Zee    时间: 2006-8-11 23:51
顶一下楼上。
作者: yangkinki    时间: 2006-8-12 10:55
技术方面上面有人提过了,我觉得做好测试工作,对测试人员的素质也有一定的要求,例如沟通能力,语言表达能力,耐心,细心,逻辑思维能力,总结分析等等都是很重要的
作者: auqdppyv    时间: 2006-8-12 19:15
自动化脚本是写的,录的很少,不然不能很好的驾驭整个系统的需要
我就没有录过脚本,几乎所有脚本都是写的
附上一小节脚本:
一个一列表中找到想要的那一条记录

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 编辑 ]
作者: hongleicome    时间: 2006-8-14 12:27
原来要求“会自行开发测试脚本”的要求,真的是要求完全的自己编写,而不是对已经录制好的脚本的增加修改处理啊?那我还差的远需要继续学习……向6楼学习
作者: xiangwei3280122    时间: 2008-8-13 09:25
学习一下!
能不能上传一个自已写的脚本看下
谢谢!
作者: bzcyer    时间: 2008-8-13 11:30
用LR录脚本,然后修修改改,加点事务,参数化下,或者加点检查点之类,算不?
作者: cleverman    时间: 2008-8-13 14:30
http://peking2toronto.spaces.live.com/blog/cns!A975CAF18FBB985B!416.entry
作者: cleverman    时间: 2008-8-13 14:51
http://peking2toronto.spaces.live.com/Blog/cns!A975CAF18FBB985B!411.entry?wa=wsignin1.0
作者: 测试有前途    时间: 2008-8-14 13:22
简单阐述下我个人的理解
自动化测试脚本都需要自动化测试工具来运行。。。
所以对不同公司的自动化测试工具,这里的会编写自动化测试脚本的意思也不太一样:
1)从无到有,写一堆脚本
2)录制一堆脚本,仅作局部修改
作者: 小丁    时间: 2008-8-15 10:27
标题: 不知道这个算不算会写脚本
[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();

        }
作者: bluemoon1999    时间: 2008-8-15 16:09
如果用LR做测试,全部手写 会不会很麻烦..系统录制的确快捷,简单,代替了部分手工作业.

我就是录制之后,自己做下修改.
不知道算不算.
作者: jiangpr_ok    时间: 2011-1-12 10:24
我也不知道什么事脚本,做白盒测试脚本是什么
作者: 582357212    时间: 2011-1-20 16:53
本帖最后由 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=“一个啥”,欢迎能给个解惑。
作者: bintop    时间: 2011-2-10 10:52
努力学习中...
作者: ryugun    时间: 2011-2-10 11:29
学习了 继续关注~
作者: gyjtest    时间: 2011-2-10 14:04
还在学习手工修改QTP中。。。




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2