欢迎使用CSDN-markdown编辑器

封面配图

文章摘要

模拟测试数据

正文

如果你正在测试一个线上产品,你会想确保你的密切模拟生产环境条件下的测试。在生产中,你将有用户的军队在你的应用程序乒乒乓乓,并用数据填充数据库,这是你的代码压力。更糟的是,你输入的数据将偏向你自己的使用模式,将不符合实际使用,可能会留下严重的错误未被发现。某些应用程序框架,如作为Ruby on Rails的,有很大的数据库。但并不是每个人都是程序员,有时间去学习一个新的框架,或者是随意采用一个新的平台。

当我们进行测试的时候,可能会有需要进行批量的验证账号和密码的可用性。如果手动的维护编写json格式的数据是很麻烦的,所以推荐生成json数据来方便我们进行api接口的测试。

参数名参数类型必须
userIdString
passwordString

首先我们先使用Java模拟一个数据并生成一个接口需要的json数据(开始啦~~)

/**
 * User基础类
 */
public class User{
    private String userId;
    private String password;

    public User(){

    }

    public User(String userId, String password){
        this.userId = userId;
        this.password = password;
    }

    /**省略get和set方法**/
}

/**
 * 模拟数据测试类
 */
public class TestUser{
    @Test
    public void test(){
        User user1 = new User("TestUser01", "eyJtZW1iZXJMaXN0I");
        /*
         * 这里我们已经模拟好了1个用户数据了。
         * 如果我们需要将他们变为json格式的数据则需要借用工具来实现
         * 例如常见的jackson,fastjson,和gson
         * 这里使用fastjson作为示范,请看官们自备fastjson的jar包
         * http://repo1.maven.org/maven2/com/alibaba/fastjson/
         */

        String jsonStr = JSON.toJSONString(user1);

        System.out.println(jsonStr);
    }
}

控制台会输出:
{“userId”:”TestUser01”,”password”:”eyJtZW1iZXJMaXN0I”}

看,这样我们就拥有了简单的单个数据的json格式啦

这些用户名和密码都是事先指定好的,可以写在程序里面,也可以批量的写在txt文档中,如果有多个用户,可以一行写一个用户名和密码。一般用户名和密码之间用一个空格分隔就行了,因为用户名和密码一般情况下都是不允许使用空格的,分割符可以根据情况更换,但是需要注意,分割符不允许能在两个字段出现的。

现在我们来实现从文本中批量的读取数据,并生成我们需要的json格式:
有一个text文本:
user.txt

TestUser01 eyJtZW1iZXJMaXN0I
TestUser02 Q4US8wIiwibGFpeXV
TestUser03 ajVnRXVxWlZyQUNWS
TestUser04 oi6Zi/6IO257OV5Lu
TestUser05 In0seyJhZGRyZXNzI
TestUser06 wiaWNvblVybCI6IiI

文本里面记录了多个用户信息,这里是6个哦

public static List<User> readUserText() {
    File file = new File("text.txt");
    List<User> data = new LinkedList<>();
    try (BufferedReader br = new BufferedReader(
            new InputStreamReader(new FileInputStream(file), "utf-8"))) {
        String readLine = null;
        while (null != (readLine = br.readLine())) {
            String[] userData = readLine.split(" ");
            data.add(new User(userData[0], userData[1]));
        }
    } catch (IOException e) {
        e.printStackTrace();
    }
    return data;
}

然后我们一行一行的读取,把每行拆分,并封装成用户数据,最后放到List数组中。
最后我们把模拟的数组数据转换成数组型的json数据

@Test
public void test2(){
    List<User> data = readUserText();
    String jsonStr = JSON.toJSONString(data);
    System.out.println(jsonStr);
}

控制台会输出

[{"password":"eyJtZW1iZXJMaXN0I","userId":"TestUser01"},{"password":"Q4US8wIiwibGFpeXV","userId":"TestUser02"},{"password":"ajVnRXVxWlZyQUNWS","userId":"TestUser03"},{"password":"oi6Zi/6IO257OV5Lu","userId":"TestUser04"},{"password":"In0seyJhZGRyZXNzI","userId":"TestUser05"},{"password":"wiaWNvblVybCI6IiI","userId":"TestUser06"}]

现在我们看到的json数据是属于压缩的格式,所以可读性并不高,我们需要格式化一下这些json数据,也就是俗称的美化~ ~

[
    {
        "password":"eyJtZW1iZXJMaXN0I",
        "userId":"TestUser01"
    },
    {
        "password":"Q4US8wIiwibGFpeXV",
        "userId":"TestUser02"
    },
    {
        "password":"ajVnRXVxWlZyQUNWS",
        "userId":"TestUser03"
    },
    {
        "password":"oi6Zi/6IO257OV5Lu",
        "userId":"TestUser04"
    },
    {
        "password":"In0seyJhZGRyZXNzI",
        "userId":"TestUser05"
    },
    {
        "password":"wiaWNvblVybCI6IiI",
        "userId":"TestUser06"
    }
]

看,是不是清晰多了~ ~ ~

当你的测试数据库中充满了逼真的数据,你会更多地参与作为一个测试仪。当你表现出新的特征的人,他们会明白他们更快。真实的数据是多种多样的,包含字符,不玩弄你的代码,如省略号,或从其他语言中的Unicode字符。用真实数据测试将使你的应用程序更加健壮,因为你会有可能发现生产前一天发布的错误。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值