10 年毕业,到现在马上工作满 7 年,一直在测试行业发展,做功能测试、自动化测试、性能测试、安全测试,使用的产品都是商业软件(比如 UFT/QTP、LR、QC 等),极少涉及开源的产品。
自动化测:会 VBS 驱动 EXCEL+QTP 性能测试:也做过很多性能测试项目,我可以做到调研阶段 (业务模型和测试模型的设计)、准备阶段(脚本、监控、数据准备等)、执行阶段(场景设计、日志收集和简单分析、堆栈转存、JVM 等)、报告阶段 安全测试:我只会简单的使用工具进行扫描(接口扫描、页面扫描、网络抓包、静态代码检查),然后写一个报告 。
感觉做过很多东西,其实我自己知道都不深入,比如性能测试到底怎去来优化代码,比如怎么去渗透测试,比如自动测试如何做并发来提高效率等等等,而且新技术不断更新(移动、大数据、云、devops 等)自己倍感压力。
人只有保持饥饿敢,否则就原地踏步,被其他人替代,需要强迫自己学习新的东西,于是就尝试搞搞 java 开发(虽然新技术很多,但是我经历的项目大部分都是 java 做的)。平时项目也紧张,很多功能没有完善,这里贴出来希望听下大家宝贵的意见(应该具备哪些功能等),持续完善!!!
框架实现的功能
1、接口管理
2、用户管理
3、用例转换为可执行文件
4、测试执行
5、测试报告
使用的主要技术
Java
jsp
restassured
testng
mysql
js
bootstraptable
Echarts
功能界面截图
步骤一:接口的导入和维护
步骤二:接口用例维护
步骤三:测试用例转脚本和执行
步骤四:报告
没有看到 json schema validation 的验证
虽然你没开源,你这边采取的手段是否是基于测试用例数据,再使用类似 vm 模板引擎自动生成 test 类文件?
—— 来自 TesterHome 官方 安卓客户端
这是怎么一步一步做出来的,有没有书介绍这部分,求推荐一下
厉害👍,我就一直懒得学习前端,请问使用 java 读取模板生成可执行文件是怎么做的?不是生成 test 类文件么
—— 来自 TesterHome 官方 安卓客户端
后台使用 java 执行 testng
TestNG testng = new TestNG();
List suites = Lists.newArrayList();
suites.add("C:/test/javaProject/testFramework/testng.xml");//path to xml..
testng.setTestSuites(suites);
testng.run();
楼主考虑开源吗
1、怎么做 restful 自动化?网上 research 一篇,找到比较好的框架开始搭建(搭建 java 环境,熟悉 testng 和 restassured 等)
2、实现自动化之后就想怎么做封装,让普通用户也可以使用?(就要考虑测试数据存储(mysql),页面展示 jsp+js+bootstrap+echarts 等)
3、有思路之后,就开始一步一步实现,遇到问题就 debug 和 research,官网 + 热门的论坛 +stackfolw 基本就能解决错误问题
我觉得重点是数据初始化、清理、依赖接口、检查点字段嵌套重复、多个检查点。展示、管理这些比较好做
其实刚开始我也没有想到能够实现这个功能。我在网上看到一篇文章 “大概内容就是讲如何生成 class 文件并编译”。
用例转换成脚本也是这个思路,首先后台定义一些不同测试用例的模板,前台设计测试用例,然后把关键的测试用例数据作为参数传输给对应模板,最后用 io 把模板和参数生成 class 文件,再自动编译就可以了。执行的时候就有 java 去 run testng。
你好 考虑开源吗
牛逼,大牛
cowen:感谢回复。还想请教一下,你发的图片中的 mytest.java 里面代码就是你说的利用 Io 实现的吗?如果是,能把主要的代码分享一下吗?谢谢!另外你上次回复中提到的生成 class 文件再自动编译,我理解应该是生成 java 文件,然后去自动编译吧?
是生成 java 在编译,前面说错了。生成.java 文件和编译参考代码:
public void createJavaFile(String classname,String testcase)
{
String rt = "";
String tcpackage=null;
String tcimport=null;
String tcClass=null;
tcpackage="package AutoTest;" + ""+ rt;
tcimport="";
tcClass="public class "+ classname+""+rt+"{"+rt
+testcase+rt+"}";
String fileName ="your java path";
File f = new File(fileName);
FileWriter fw;
try {
fw = new FileWriter(f);
if(fw!=null)
{
fw.write(tcpackage+tcimport+tcClass);
fw.flush();
fw.close();
}
} catch (Exception e) {
System.out.println("测试"+e.toString());
}
// compile .java
try {
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileMgr = compiler.getStandardFileManager(null,null, null);
Iterable units = fileMgr.getJavaFileObjects(fileName);
CompilationTask t = compiler.getTask(null, fileMgr, null, null, null,units);
t.call();
fileMgr.close();
} catch (IOException e) {
System.out.println("编译"+e.toString());
}
}
测试运行那块没思路,我没做过测试,不知道能不能帮忙提个点,谢谢了
测试用例的配置数据保存起来,后台有各种模板,然后把用例数据传入模板,使用 java 生成可执行文件
你好,能写个 demo 出来吗?
这个支持前后 2 个请求的关联吗
记得更新打赏二维码
这个项目一个人做了多久啊!
可以加下微信吗?请教一些问题
请教关于 restful 接口自动化的问题
求源码路径
请教一下.我的理解是,你一点前台页面的自动化执行的按钮后,后台就开始去执行 testng.run()方法了。能告诉一下你的这个前后端之间是如何调用的吗?谢谢!
是否会开源呢?
考虑开源吗?
请教前端,你是怎么打出来的..
还有执行用例的这里其实就是 RestAssured 的 then.assertThat(,)
您好,我想问一下,这些前端的功能页面也都是你自己写的吗?
有一些接口的入参你是处理的?比如入参是 map/list