美文网首页Appium自动化测试Linux
测试工程师笔试题之编程题——2018-06-13

测试工程师笔试题之编程题——2018-06-13

作者: 三笑奈若何 | 来源:发表于2018-06-13 02:25 被阅读60次

最近面试某某公司测试工程师的时候遇到的一个编程笔试题,如下

请生成 test1@126.com 123456 到 test5000@126.com 123456 的5000个邮箱账号,换行展示并保存在test.txt文件中,可编程实现,也可使用其它方法,即:
test1@126.com 123456
test2@126.com 123456
......
test5000@126.com 123456

编程方面,我基本用的是Java和shell,那我这里就用java和shell两种方式实现
解法一:Java
思路:这个题用Java来写,可以说比较简单,题目的变动就只有1-5000这几个数字,另外就是实现换行和输出到test.txt文件中,就需要用到大概三点,变量、异常捕捉、输出流。变量主要实现1-5000,输出流实现输出字符到test.txt文件中,异常捕捉在这里作用就是捕捉输出流IO异常,变量、异常捕捉、IO都是自动化测试中经常需要用到的内容,代码如下

import java.io.*;

public class Email {
    public static void main(String args[])
    {
//        获取当前工作空间路径
        String dir = System.getProperty("user.dir");

//        设置test.txt文件路径
        String path = dir + "\\test.txt";
//        System.out.print(path);
        File file = new File(path);
        if (!file.exists()) {

//            try、catch实现异常捕捉
            try {
//                如果文件不存在,创建文件
                file.createNewFile();
//                FileOutputStream fileOutputStream = new FileOutputStream(file , true);
//                Writer writer = new OutputStreamWriter( fileOutputStream);
                FileWriter fileWriter = new FileWriter(path,true);

//                变量i实现1-5000
                for ( int i = 1 ; i <= 5000 ; i++ )
                {
//                    writer.write("test" + i + "@126.com 123456\n");

//                    把字符输出到test.txt文件末尾
                    fileWriter.append("test" + i + "@126.com 123456\n");
                }
//                writer.close();
//                fileOutputStream.close();

//                每次写文件结束,都要关闭输出流
                fileWriter.close();

            }
            catch (IOException e) {
                e.printStackTrace();
            }

        }

    }
}

解法二:shell
思路:换成是shell script实现就更简单了,代码缩减了一大半,主要就是用一个变量、表达式、while循环、和重定向输出到test.txt文件即可,代码如下

#!/bin/bash
#create 5000 email acounts from 'test1@126.com 123456' to 'test5000@126.com 123456'
i=1
while [ "$i" -le 5000 ]
do
echo "test$i@126.com 123456" >> test.txt
i=`expr $i + 1`
done
用shell实现短得不能再短了,我答题的时候,也是用的shell实现,shell对于一些简单的操作是很强大的,可谓杀人越货,必备良药啊 滑稽表情.png

相关文章

网友评论

  • 36c2176072a4:哪需要那么麻烦,一行代码就可以搞定了:
    seq -f ‘test%g@126.com’ 1 5000 >email.txt

本文标题:测试工程师笔试题之编程题——2018-06-13

本文链接:https://www.haomeiwen.com/subject/bzedeftx.html