haouziwefe 发表于 2013-2-3 14:44:54

SilkTest那些事儿_第一章 ST的HelloWord_写脚本2

录制回放了吧,这个是自动化测试的最基本的招数,但是只会这样是远远不够的,很多情况下我们发现录制下来的东东怎么就不能给力的执行啊怎么改啊?如果我想在执行中增加一些逻辑怎么办?很多很多增强的功能例如数据驱动了,查询数据库了怎么搞啊?总之一句话,不弄弄脚本,就会被脚本折磨。要不你早点控制他,要不让他一直折磨你。好吧好吧,迈出第一步,咱先改改上次录制的脚本,看看我们能做些什么。
 
首先,gui这个东西收拾什么啊,我们给他来个重新命名吧,不然谁看的懂,要知道程序不仅是要让机器能看懂,更重要的是要让人能看的懂,人看不懂的东西,我一般称之为一坨一坨的东西,o(∩_∩)o~。好了,我做了如下修改,把加减和等于的按钮改成了中文说明,注意:st是支持中文命名的,如果你是一个程序员曾经很习惯英文命名,还可以整出一个所谓的匈牙利命名法来,我的建议你最好在gui的命名使用中文,这样你一看就看的懂,最好还能和界面的上文字一样。
 
 
[-] pushbutton 减[+] multitag "-"[ ] "#20"[ ] "$93"[-] pushbutton 加[+] multitag "+"[ ] "#26"[ ] "$92"[-] pushbutton 等于[+] multitag "="[ ] "#27"[ ] "$112" 好吧,下一个是对结果textfield名字改造
 
 
[-] textfield 结果[+] multitag "#1"[ ] "$403" 
然后,gui的名称改了,不用多想脚本中引用这些名称的地方都要进行修改,不然一定会报错的,来吧,英雄,一点一点改把录制的脚本改改
 
[ ] 计算器.setactive ()[ ] 计算器.n1.click ()[ ] 计算器.加.click ()[ ] 计算器.n2.click ()[ ] 计算器.等于.click ()[+] 计算器.verifyproperties ({...})[ ] ""[ ] {}[-] {...}[-] {"结果", {...}}[ ] {"text",               "3. "}  
最后,o(∩_∩)o~,我们发现,yeah可以跑了,但是,我们没有改脚本呀,嗯,不如这个时候我们重写一个脚本吧,来,再写一个testcase
 
 
[+] testcase writebyourself()[ ] //从1加到10[ ] 计算器.setactive ()[ ] 计算器.n1.click ()[ ] 计算器.加.click ()[ ] 计算器.n2.click ()[ ] 计算器.加.click ()[ ] 计算器.n3.click ()[ ] 计算器.加.click ()[ ] 计算器.n4.click ()[ ] 计算器.加.click ()[ ] 计算器.n5.click ()[ ] 计算器.加.click ()[ ] 计算器.n6.click ()[ ] 计算器.加.click ()[ ] 计算器.n7.click ()[ ] 计算器.加.click ()[ ] 计算器.n8.click ()[ ] 计算器.加.click ()[ ] 计算器.n9.click ()[ ] 计算器.加.click ()[ ] 计算器.n1.click ()[ ] 计算器.n0.click ()[ ] 计算器.等于.click ()[-] if(计算器.结果.gettext() == "55. ")[ ] print("好吧,你算对了,算你狠.")[-] else[ ] <span style="font-family: verdana, sans-serif; font-size: 14px; line-height: 21px; white-space: normal;">raise 1,</span>"算错了吧,还得瑟不.计算器算的结果是|{计算器.结果.gettext()}|"  
 我们写了一个从1加到10的测试,这里没有使用录制是用的校验而是我们自己写了一个校验,o(∩_∩)o~,很有意思吧,简单说明一下,在if语句之前我们都是在操作计算器进行1+..+10的操作,这个应该能看懂,之后使用if判断,从计算器的结果中获取值,如果值为55.那么就算正确,否则呢,抛出异常。注意:<span style="white-space: pre;">testcase writebyourself()这里是定义了一个测试案例。</span><span style="white-space: pre;">[-] testcase writebyourself_for()</span>
 
 
来再写一个加10次1的脚本
 
[ ] //从1加到10[ ] int i[ ] 计算器.setactive ()[-] for(i=0;i<10;i++)[ ] 计算器.n1.click ()[ ] 计算器.加.click ()[-] if(计算器.结果.gettext() == "10. ")[ ] print("好吧,你算对了,算你狠.")[-] else[ ] print("算错了吧,还得瑟不.计算器算的结果是|{计算器.结果.gettext()}|" )[ ]  这里注意int i其实是定义一个变量为i,for语句,是循环。现在可以记住这个句式,就是从1-10循环,就是这么写。具体的后面慢慢讲。
 
 
好了我们一共写了三个测试案例了,脚本如下:
 
 
[-] testcase cal ()[-] recording[ ] 计算器.setactive ()[ ] 计算器.n1.click ()[ ] 计算器.加.click ()[ ] 计算器.n2.click ()[ ] 计算器.等于.click ()[-] 计算器.verifyproperties ({...})[ ] ""[ ] {}[-] {...}[-] {"结果", {...}}[ ] {"text",               "3. "}[ ] [+] testcase writebyourself()[ ] //从1加到10[ ] 计算器.setactive ()[ ] 计算器.n1.click ()[ ] 计算器.加.click ()[ ] 计算器.n2.click ()[ ] 计算器.加.click ()[ ] 计算器.n3.click ()[ ] 计算器.加.click ()[ ] 计算器.n4.click ()[ ] 计算器.加.click ()[ ] 计算器.n5.click ()[ ] 计算器.加.click ()[ ] 计算器.n6.click ()[ ] 计算器.加.click ()[ ] 计算器.n7.click ()[ ] 计算器.加.click ()[ ] 计算器.n8.click ()[ ] 计算器.加.click ()[ ] 计算器.n9.click ()[ ] 计算器.加.click ()[ ] 计算器.n1.click ()[ ] 计算器.n0.click ()[ ] 计算器.等于.click ()[-] if(计算器.结果.gettext() == "55. ")[ ] print("好吧,你算对了,算你狠.")[-] else[ ] print("算错了吧,还得瑟不.计算器算的结果是|{计算器.结果.gettext()}|" )[ ] [ ] [-] testcase writebyourself_for()[ ] //从1加到10[ ] int i[ ] 计算器.setactive ()[-] for(i=0;i<10;i++)[ ] 计算器.n1.click ()[ ] 计算器.加.click ()[-] if(计算器.结果.gettext() == "10. ")[ ] print("好吧,你算对了,算你狠.")[-] else[ ] print("算错了吧,还得瑟不.计算器算的结果是|{计算器.结果.gettext()}|" )[ ]   
你一定都是用f9运行的,这样会让所有的测试案例一起运行,o(∩_∩)o~,你可以按那个run testcase的按钮选择你需要的运行的测试案例,进行运行,这样方便的好多。好了,其实我们还有好多问题没有解决,比方说从1-10加法我们是不是可以使用循环来搞定。我们是否可以从外界输入数据。校验还能校验什么,错误了只能报异常吗?等等,后面这些问题会一一解决.下一小节,我会简述一下校验怎么做。
 
页: [1]
查看完整版本: SilkTest那些事儿_第一章 ST的HelloWord_写脚本2