会编写自动化测试脚本指的是什么?
经常在论坛看到说要学会自己编写测试脚本,但是不太清楚,什么样的脚本才叫自己编写的。是不是录制好的脚本,然后自己再添加一些函数等就叫“自行开发测试脚本”?呵呵,我是真的不太清楚,请知道的人告知。还有想问一下,真正够资格被叫做测试工程师的应该具体具备什么样的能力呢?(具体点的)
[ 本帖最后由 hongleicome 于 2006-8-11 14:48 编辑 ] 跟我的迷惑完全一样,高手赶快解答一下吧
haha
脚本的录制只能说是编写编写的一个部分!测试工程师的定义严格来说的话要求还是比较高的!
起码会在一个项目中负责开展一个功能模块需求分析,测试计划,测试策略的制定,以及case的编写到完成,同时还要有一定的问题解决能力!以及测试报告的编写。其次,还要具有应用测试工具的能力,至少两门流行的测试工具!!
有事情可以交流:QQ:47054721加我的时候请说明你是做测试的就OK! 顶一下楼上。 技术方面上面有人提过了,我觉得做好测试工作,对测试人员的素质也有一定的要求,例如沟通能力,语言表达能力,耐心,细心,逻辑思维能力,总结分析等等都是很重要的 自动化脚本是写的,录的很少,不然不能很好的驾驭整个系统的需要
我就没有录过脚本,几乎所有脚本都是写的
附上一小节脚本:
一个一列表中找到想要的那一条记录
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 编辑 ] 原来要求“会自行开发测试脚本”的要求,真的是要求完全的自己编写,而不是对已经录制好的脚本的增加修改处理啊?那我还差的远需要继续学习……向6楼学习 学习一下!
能不能上传一个自已写的脚本看下
谢谢! 用LR录脚本,然后修修改改,加点事务,参数化下,或者加点检查点之类,算不? http://peking2toronto.spaces.live.com/blog/cns!A975CAF18FBB985B!416.entry http://peking2toronto.spaces.live.com/Blog/cns!A975CAF18FBB985B!411.entry?wa=wsignin1.0 简单阐述下我个人的理解
自动化测试脚本都需要自动化测试工具来运行。。。
所以对不同公司的自动化测试工具,这里的会编写自动化测试脚本的意思也不太一样:
1)从无到有,写一堆脚本
2)录制一堆脚本,仅作局部修改
不知道这个算不算会写脚本
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.NewRow();
tblMainDataRow["MovID"] = inMovieID;
tblMainDataRow["MovTitle"] = inMovieTitle;
tblMainDataRow["MovRunTime"] = inMovieRunTime;
tmp.Tables.Rows.Add(tblMainDataRow);
DataView dv = new DataView();
dv = tmp.Tables.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.NewRow();
tblPricesDataRow["MovID"] = inMovieID;
tblPricesDataRow["MovPrice"] = inMoviePrice;
expected.Tables.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, actual.Tables) && TestData.TestDataTable(expected.Tables, actual.Tables);
Assert.AreEqual(true, test, "");
sc.Close();
} 如果用LR做测试,全部手写 会不会很麻烦..系统录制的确快捷,简单,代替了部分手工作业.
我就是录制之后,自己做下修改.
不知道算不算. 我也不知道什么事脚本,做白盒测试脚本是什么 本帖最后由 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=“一个啥”,欢迎能给个解惑。 努力学习中... 学习了 继续关注~ 还在学习手工修改QTP中。。。
页:
[1]