selenium webdriver 杂记-生成随机数字字母组合参数

今天碰到这样一个案例,就是对个人信息修改做自动化测试,我这里以修改昵称为例,这里昵称的限制为5位字母数字组合的字符串,为了每次执行脚本能对昵称设置不同的名称,我选择随机生成5位的字符串,这样就可以保证每次执行脚本修改昵称名字互不冲突的目的,网上搜了下相关资料并做了下总结。
准备:大家需要熟悉java中的Random类,以及Math类中的常用方法使用,另外需要对ascii码表有一定认识,当然以下代码直接COPY下就能使用。
以下是实现生成随机字母组合的三种方法,其中第二、三种方法类似,只是选择了不同的API来实现(Random与Math)
package com.shareku.ray;
import java.util.Random;
public class GenerateAlphanum {
/**
* 方法一
*生成指定长度的字母数字组合字符串 
*/
public static String getAlphanumString(int length) {
Random random = new Random();
StringBuffer buf = new StringBuffer();
String charStr = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
int charLength = charStr.length();
for (int i = 0; i < length; i++) {
int index = random.nextInt(charLength);
buf.append(charStr.charAt(index));
}
return buf.toString();
}
/**
* 方法二
*生成指定长度的字母数字组合字符串 
*/
public static String getAlphanumString_(int length) {
StringBuffer buf = new StringBuffer();
Random random = new Random();
for (int i = 0; i < length; i++) {
String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num"; // 输出字母还是数字
if ("char".equalsIgnoreCase(charOrNum)) {
// 字符串
int choice = random.nextInt(2) % 2 == 0 ? 65 : 97; // 取得大写字母还是小写字母
buf.append((char) (choice + random.nextInt(26)));
} else if ("num".equalsIgnoreCase(charOrNum)) {
// 数字
buf.append(String.valueOf(random.nextInt(10)));
}
}
return buf.toString();
}
/**
* 方法三
*生成指定长度的字母数字组合字符串 
*/
public static String _getAlphanumString(int length) {
StringBuffer buf = new StringBuffer();
for (int i = 0; i < length; i++) {
// 输出字母还是数字
String charOrNum = Math.round(Math.random()) % 2 == 0 ? "char"
: "num";
if ("char".equalsIgnoreCase(charOrNum)) {
// 字符串
int choice = Math.round(Math.random()) % 2 == 0 ? 65 : 97; // 取得大写字母还是小写字母
buf.append((char) (choice + Math.round(Math.random() * 25)));
} else if ("num".equalsIgnoreCase(charOrNum)) {
// 数字
buf.append(String.valueOf(Math.round(Math.random() * 9)));
}
}
return buf.toString();
}
}

另外,附加一段生成指定范围的随机整数代码,也很实用哦!
public int getSpecifyNum(int min, int max) {
Random random = new Random();
return random.nextInt(max) % (max - min + 1) + min;
}
example:生成3-8之间的随机整数,直接调用 getSpecifyNum(3,8) 即返回大于等于3且小于等于8的整数。
OK,Stop here!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值