生成随机数字字母组合参数_Rookie_hh的博客-程序员秘密

技术标签: eclipse+Selenium+TestNG自动化测试  

出处:

http://blog.csdn.net/a578133380/article/details/50379718

今天碰到这样一个案例,就是对个人信息修改做自动化测试,我这里以修改昵称为例,这里昵称的限制为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!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Rookie_hh/article/details/78854947

智能推荐

MyBatis源码解析_XP-Code的博客-程序员秘密

一、Mybatis架构:1、接口层接口层主要定义的是与数据库进行交互的方式。在Mybatis中,交互分为两种方式。(1) Mybatis提供的API使用Mybatis提供的API进行操作,通过获取SqlSession对象,然后根据Statement Id 和参数来操作数据库。String statement = "com.viewscenes.netsupervisor.dao.UserMapper.getUserList";List&lt;User&gt; result .

bzoj 3944 sum 杜教筛_EMber _的博客-程序员秘密

题意,求1-n的欧拉函数和莫比乌斯函数之和。 裸的杜教筛,比较简单,直接做就好。但是存储的时候用了两个模拟链表,虽然空间没炸,但是很明显空间较大的时候会很大程度上影响时间,所以我理所当然的T了。 不得已用了一发Po姐的方法,用map,就会好一点,但是时间玄学,交了5遍过了3遍。。 真是玄学。。#include<cstdio>#include<cstdlib>#include<algorit

02.敏捷项目管理——价值胜过约束笔记_敏捷项目管理读书笔记价值胜过约束_艾-小小雨的博客-程序员秘密

&amp;#13; 00.敏捷价值观之一——交付价值胜过满足约束,这让人们重新思考评估项目绩效的方式和方法。 01.敏捷项目领导则更关注交付价值,然后会不断地提出这样的问题:“这些不同的项目范围是否真的有价值?”传统团队吧精力集中在交付范围和成本等。 02.结果包括产品构想、商业目标和性能(高级产品功能),而没有具体需求。 03.价值创造在项目组内指的是与客户合作、吧客户...

数据结构C---单链表的创建及遍历_angie2011的博客-程序员秘密

# include&lt;stdio.h&gt;# include&lt;malloc.h&gt;# include&lt;stdlib.h&gt;typedef struct Node{ int data; struct Node *pnext;}Node,*PNODE;PNODE creatList(void);void travelList(...

React Native入门(十四)之动画(1)Animated详解_react native interpolate_木大白易的博客-程序员秘密

前言在APP的开发中,流畅合理的动画能大大提高用户体验,Android和iOS原生都有对应的动画系统,同样的在RN中也有用于创建动画的API,就是Animated。Animated库使得开发者可以非常容易地实现各种各样的动画和交互方式,并且具备极高的性能。基本介绍组件类型我们想要文本,图片等可以进行动画,就需要使用Animated进行封装! 所以创建动画组件有以下5种:Animated.View

恢复博客更新_aihe1907的博客-程序员秘密

  工作入职一个月,基本上就是在配置xml,让人昏昏欲睡,个人的技术成长接近于零。  从以前的C++突然转换到java,自身的接受比较困难。Java的编程方式给人感觉像在夏天穿了厚重的毛衣一般,无法得到清爽的感觉啊。  在此期间,先学习了一段python,后面又学习了html的一些规范,钻研了一段时间的flask以及PowerShell,结果就是没有耐心,浅尝辄止。  现阶段...

随便推点

关于解决android studio各种疑难杂症系列---- 第一次打开时屏蔽AS联网验证_jkdev的博客-程序员秘密

第一次打开时屏蔽AS联网验证  图中文件末尾加:disable.android.first.run=true

aes 128位加密/解密_aes 128 key_wang880117的博客-程序员秘密

# -*- coding: utf-8 -*-# coding: utf8import sysfrom Crypto.Cipher import AESfrom Crypto import Randomfrom binascii import b2a_hex, a2b_hexclass prpcrypt(): def __init__(self, key): ...

Routing Tables_achejq的博客-程序员秘密

Routing TablesLinux kernel 2.2 and 2.4 support multiple routing tables [22]. Beyond the two commonly used routing tables (the local and main routing tables), the kernel supports up to 252 ad

android 如何获取当前时间_android怎么得到当前时间_大白sunny的博客-程序员秘密

Java 代码 import   java.text.SimpleDateFormat;           SimpleDateFormat   formatter   =   new   SimpleDateFormat   ("yyyy年MM月dd日   HH:mm:ss     ");      Date   curDate   =   new   Date(System.curr

vue+vant实现图片或者视频的上传_vant 2上传视频_刚好遇见你GG的博客-程序员秘密

&lt;template&gt; &lt;div&gt; &lt;van-uploader v-model="imgList" :before-read="beforeRead" accept="image/*, video/*" /&gt; &lt;/div&gt;&lt;/template&gt;&lt;script&gt;export default { data() { return { imgList: [] }; }, metho

推荐文章

热门文章

相关标签