RF,SeleniumIDE使用store/while循环执行case,注册新用户

来源:互联网 发布:java 邮件发送多人 编辑:程序博客网 时间:2024/06/13 08:26

标题:RFide,SeleniumIDE使用Store-while-endwhile循环执行case,注册账户

环境:办公测试环境。

背景:测试过程中,需要很多新数据做差异化测试任务,手动注册耗时长且枯燥,循环执行注册脚本有利于身心健康。

方法:通过前置条件,准备好注册必填项(如身份证、银行卡、手机号等信息),然后通过判断+递增的方式循环注册新用户。

步骤:手动注册一次,记录好必填项(如身份证、银行卡、手机号等信息),通过Store-while-endwhile循环执行case,注册账户

关键字:store 10 j,store 1 j,while ${i}<=${j},fireEvent  id=XXX  blur/focus,type改为typekeys,storeEval ${i}+1 i,end while

命令:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head profile="http://selenium-ide.openqa.org/profiles/test-case">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link rel="selenium.base" href="http://www.yidai.co/" />
<title>PC注册新用户</title>
</head>
<body>
<table cellpadding="1" cellspacing="1" border="1">
<thead>
<tr><td rowspan="1" colspan="3">PC注册新用户</td></tr>
</thead><tbody>
<tr>
    <td>store</td>
    <td>10</td>
    <td>j</td>
</tr>
<tr>
    <td>store</td>
    <td>1</td>
    <td>i</td>
</tr>
<tr>
    <td>while</td>
    <td>${i}&lt;=${j}</td>
    <td></td>
</tr>

...//(此句为分隔线,不用复制,代替中间内容省略一万字)

<tr>
    <td>fireEvent</td>
    <td>id=smsCode</td>
    <td>blur</td>
</tr>
<tr>
    <td>pause</td>
    <td>1000</td>
    <td></td>
</tr>
<tr>
    <td>fireEvent</td>
    <td>xpath=.//*[@id='reg_step2']</td>
    <td>focus</td>
</tr>
<tr>
    <td>click</td>
    <td>xpath=.//*[@id='reg_step2']</td>
    <td></td>
</tr>

...//(此句为分隔线,不用复制,代替中间内容省略一万字)

<tr>
    <td>storeBodyText</td>
    <td>comment</td>
    <td></td>
</tr>
<tr>
    <td>echo</td>
    <td>${comment}</td>
    <td></td>
</tr>
<tr>
    <td>storeEval</td>
    <td>${i}+1</td>
    <td>i</td>
</tr>
<tr>
    <td>endWhile</td>
    <td></td>
    <td></td>
</tr>
</tbody></table>
</body>
</html>

...//(此句为分隔线,不用复制,代替中间内容省略一万字)

贴图:


        



备注:
1.问题一,注册页面提交按钮超时,手动执行可以点中,却怎么也无法执行自动连贯点击,导致变成半自动case。
处理办法是使用fireEvent  id=XXX  blur/focus,激活并失去提交按钮之前的文本框焦点后,聚焦定位到需要点击的提交按钮,加入Pause后执行成功。

2.问题二,文本框输入密码后,原设计是输入第六位自动提交密码,通过type无法触发提交状态。
处理办法是将type改为typekeys关键字,即刻成功触发。

3.问题三,由于链接地址重定向导致页面弹出的安全警告,由于获取不到地址,无法定位和点击。

处理办法是改掉源头问题,把重定向提示框屏蔽,将地址栏中的S去掉。

4.问题四,由于注册时,姓名不能写阿拉伯数字,IDE自带关键字不能转换数字为中文大写汉子,需要扩展js文本。

处理办法,如下列附件~

user-extention.js文本源码如下(文件来自小七大神,给小七点赞):

标题:user-extention.jsSelenium.prototype.doStoreRandom = function(variableName,value){var dic = new Array();      //注意它的类型是Array        dic[0] = "零";        dic[1] = "一";        dic[2] = "二";        dic[3] = "三";dic[4] = "四";        dic[5] = "五";        dic[6] = "六";        dic[7] = "七";dic[8] = "八";        dic[9] = "九";var sValue = value.toString()ll = sValue.lengthif(ll == 1){storedVars[variableName] = dic[value];}else if(ll > 1){var tt = ''for(var i=0;i<ll;i++){tt = tt + dic[parseInt(sValue[i])];}storedVars[variableName] = tt;}}


原创粉丝点击