• package com.ExcelDataTool;
    
    import jxl.Cell;
    import jxl.Sheet;
    import jxl.Workbook;
    import jxl.read.biff.BiffException;
    
    import java.io.File;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.HashMap;
    
    /**
     * @author 李振7
     * Created Time: 2017/11/9 下午4:38
     * 根据filePath,fileName,caseName,获取excel中的数据,保存为HashMap<String, String>[]
     */
    public class ExcelData {
        public Workbook workbook;
        public Sheet sheet;
        public Cell cell;
        int rows;
        int columns;
        public String filePath; //文件路径
        public String fileName;  //文件名,不包含文件后缀.xls
        public String caseName; //sheet名
        public ArrayList<String> arrkey = new ArrayList<String>();
        String sourceFile;
    
        /**
         * @param fileName   excel文件名
         * @param caseName   sheet名
         */
        public ExcelData(String filePath, String fileName, String caseName) {
            super();
            this.fileName = fileName;
            this.caseName = caseName;
            this.filePath = filePath;
        }
    
        /**
         * 获得excel表中的数据
         */
        public Object[][] getExcelData() throws BiffException, IOException {
    
            workbook = Workbook.getWorkbook(new File(this.setPath(filePath,fileName)));
            sheet = workbook.getSheet(caseName);
            rows = sheet.getRows();  //获取该sheet行数
            columns = sheet.getColumns();  //获取该sheet列数
            // 为了返回值是Object[][],定义一个多行单列的二维数组
            HashMap<String, String>[][] arrmap = new HashMap[rows - 1][1];
            // 对数组中所有元素hashmap进行初始化
            if (rows > 1) {
                for (int i = 0; i < rows - 1; i++) {
                    arrmap[i][0] = new HashMap<>();
                }
            } else {
                System.out.println("excel中没有数据");
            }
    
            // 获得首行的列名,作为hashmap的key值
            for (int c = 0; c < columns; c++) {
                String cellvalue = sheet.getCell(c, 0).getContents();
                arrkey.add(cellvalue);
            }
            // 遍历所有的单元格的值添加到hashmap中
            for (int r = 1; r < rows; r++) {
                for (int c = 0; c < columns; c++) {
                    String cellvalue = sheet.getCell(c, r).getContents();
                    arrmap[r - 1][0].put(arrkey.get(c), cellvalue);
                }
            }
            return arrmap;
        }
    
        /**
         * 获得excel文件的路径
         * @return
         * @throws IOException
         * /Users/leeco/Desktop/letv/workspace/tools/src/resources/testData.xlsx
         */
        public String setPath(String path, String fileName) throws IOException {
            File directory = new File(".");
            sourceFile = directory.getCanonicalPath() + path + fileName + ".xls";
            return sourceFile;
        }
    
    }
    
    import com.ExcelDataTool.ExcelData;
    import com.dubbo.inter.info.IPromiseForOrderServiceTest;
    import com.lemall.srd.order.promise.domain.common.PromiseVersion;
    import jxl.read.biff.BiffException;
    import org.apache.jmeter.config.Arguments;
    import org.apache.jmeter.protocol.java.sampler.JavaSamplerContext;
    import org.apache.jmeter.samplers.SampleResult;
    import org.apache.jmeter.samplers.StandardSampleSender;
    import org.testng.annotations.DataProvider;
    import org.testng.annotations.Test;
    
    import java.io.IOException;
    import java.util.HashMap;
    
    /**
     * @author 李振7
     * Created Time: 2017/10/20 上午11:10
     */
    
    public class TestngTest {
        public String filePath = "/src/resources/";  //文件路径
        public String fileName = "com.lemall.srd.order.promise.api"; //文件名,不包含文件后缀.xls
        public String caseName = "IPromiseForOrderService"; //sheet名
    
        @DataProvider
        public Object[][] Numbers() throws BiffException, IOException {
            ExcelData e=new ExcelData("/src/ExcelData/","com.lemall.srd.order.promise.api", "IPromiseForOrderService");
            return e.getExcelData();
    
        }
        @Test(dataProvider = "Numbers", dataProviderClass = TestngTest.class)
        public void test(HashMap<String, String> data){
            System.out.println(data.toString());
            String orderNo = data.get("orderNo");
            String operater = data.get("operater");
            String channel = data.get("channel");
            String operateId = data.get("operateId");
            String version = data.get("version");
            String Status = data.get("Status");
            String Message = data.get("Message");
            String Result = data.get("Result");
        }
    
    //    @Test()
    //    public void testDubboInterface() {
    //        JavaSamplerContext arg0 = new JavaSamplerContext(new Arguments());
    //
    //        IPromiseForOrderServiceTest TestForIPromiseForOrderService = new IPromiseForOrderServiceTest();
    //        TestForIPromiseForOrderService.DubboInterfaceInfoInitialization();
    //        TestForIPromiseForOrderService.setupTest(arg0);
    //        SampleResult sr = TestForIPromiseForOrderService.runTest(arg0);
    //    }
    //
    //    @Test
    //    public void demo() {
    //        System.out.println("asdgdas23456789----------------=======================");
    //    }
    
    
    }
    
    
  • 谢谢,我先继续调试看看

  • 做销售吧

  • 谢谢提醒,已补上

  • 这个岗位我帮原百度朋友转发的,改成了他的邮箱,

  • 帮百度朋友转发的,邮箱当时忘记要了,我加上

  • 三四万的,应该是测试专家级别了吧,要对代码达到研究的程度,能识别编码缺陷的

  • 之前去腾讯看了一下,感觉没什么变化啊

  • 反正现在感觉自己虽然还努力在学习,但是老是有一种脱节的感觉,真心不知道外面的需求了

  • 思寒,可以把那些大公司跟你要的测试人员的要求贴出来吗?我现在也很迷惑,究竟大家想要什么样的测试人员

  • 其实我关注的是,趋势是在使用什么样的工具和方式,在降低测试的市场需求以及测试成本。
    (测试感觉目前在走运维的路,目前在增加自动化的程度,当测试自动化发展到一定程度后,可能也会跟运维一样,招聘专业的开发和产品来开发自己的运维自动化平台,降低运维的人力成本。
    个人觉得,测试也在走这条路,而且赶上了人工智能的技术爆发,可能这个速度会加快)

  • 思寒,提个功能需求,帖子的附言添加后,不能修改或删除吗?

  • 蹭思寒的热点

  • 谢谢,第一篇精华帖

  • 这里用 public class IPromiseForOrderServiceTest extends AbstractJavaSamplerClient,主要是为了后期考虑,测试 dubbo 接口的性能的话,就可以直接导出 jar 包,利用 jmeter 测试了

  • 大学生测试大赛都已经有了

  • 其实看未来的技术发展速度了,比如十年前的基因检测需要上亿资金才能做,现在只需要几千块钱就可以做了
    如果 AI 发展的够快,可能五年后,人工智能解决方案已经比较普及了,就像五年前的智能手机一样

  • #9 楼 @ippppp 比例我并没有充分调研,只是根据自己经历过的几个公司,来写的
    本篇只是一个话题篇,数据并不准确

    —— 来自 TesterHome 官方 安卓客户端

  • 😀

  • 有时间,多看看外面的世界,看看 IBM 的 bug 预测模型,民生银行试用过,准确率 95% 以上

  • 有人要去吗?去的话,组团呗

  • 缺陷增长模型 at 2017年10月19日

    嗯嗯,感觉自己太无知了,平台和环境很重要,能看到很多好东西啊

  • 缺陷增长模型 at 2017年10月19日

    精英团队一般用什么啊?

  • jmeter3.1 出错:即使处理完冲突 jar 后,仍然有问题
    jmeter3.3 出错:错误未知
    jmeter3.2 正常运行:把 lib-dependency 中与 lib 中冲突的 jar 包去掉就没问题

    开源软件还是不够稳定了,有些问题确实解决起来无从下手,需要使用指定的版本才行

  • 楼主,请教个问题,我进行完第 8 步(修改 jmeter 的 search_paths)之后,报错如下:
    jmeter.JMeter: An error occurred: java.lang.VerifyError: Cannot inherit from final class