#5 楼 @cpfeng0124 应该不是,不过设计思路都差不多。
#4 楼 @shijin880921 还是以实际应用为主,用到哪块具体分析
收到,谢谢 Testerhome
#8 楼 @lihuazhang 可是可以,但成本较大,这种比较适合依赖资源较少的系统;(1)学习代码成本,这种流量回放可以作为自动化回归测试的一种补充,验证系统是否有错,而这种方式你不知道预期结果,需要通过 warn.log 和 error.log 查看代码中异常栈,这要求测试人员熟悉开发的代码;(2)资源成本,要求被测系统和线上系统是隔离的(底层资源隔离等),回放被测系统不能影响到线上系统,你必须搭建与线上一致的测试资源。其实在我们的日常上线中,预览测试通过时,运维会放量预览机,线上的请求打到预览机,这时有上线的开发会观察预览机的 warn.log 和 error,做的都很类似。
提问,应该把报错信息完整的贴出来;根据你粘的命令和 “javac 编译.java 文件的时候,报找不到符号”; 可能的原因是你没指定依赖的 jar 包,代码里 import 时,没有该 class, 代码里又使用了该 class 中的方法等,就报 包 *** 不存在 和 找不到符号。
正确的方式:
javac -classpath /path1/a.jar:/path2/b.jar:/path3/c.jar -d class src/com/yourpath/http/*.java src/com/yourpath/base/*.java src/com/yourpath/common/*.java
-classpath 指定你项目代码中依赖的第三方 jar 包, 如果是 maven 工程,就是 Maven Dependencies 下的 jar 包,指定到 jar 包的绝对路径就行。
怎么去保证用户数据的安全性?
这种内部测试,是能获取到部分敏感信息的,但是系统安全性高的话,不能仅靠部分信息就能继续操作的,比如手机验证码验证等,还是靠职业操守。
Gor 支持 SSL
Can i use Gor to intercept SSL traffic?
Basic idea is that SSL was made to protect itself from traffic interception. There 2 options: 1. Move SSL handling to proxy like Nginx or Amazon ELB. And allow Gor to listen on upstreams. 2. Use --input-http so you can duplicate request payload directly from your app to Gor, but it will require your app modifications.
More can be find here: https://github.com/buger/gor/issues/85
对于加密数据有 2 种方式:1. Move SSL handling to proxy, 2. Use --input-http;
引流只是验证新系统整体的正确性,不影响线上系统,是互相隔离的。
如果只针对某个点做性能测试,可以 LR,nGrinder,JMeter 做单个点压测。
#1 楼 @lihuazhang
1.是否会影响 10.13.1.139 的性能?
会对 10.13.1.139 机器性能有影响,gor 推荐使用单独的机器作为 Replay server:
# Run on servers where you want to catch traffic. You can run it on each web machine.
sudo gor --input-raw :80 --output-tcp replay.local:28020
# Replay server (replay.local).
gor --input-tcp replay.local:28020 --output-http http://staging.com
如果你的机器性能较高(cpu 资源配置高等)可以使用 gor 单实例 replay(上述 2-2-1),通常这种选取都是集群中单台机器,不影响整个服务。
2.线上案例?
案例不方便透露,思路可以分享下:
1).实时流量 replay,这种方式可以作为新系统上线前,用线上数据持续测试该系统,降低回滚几率,一般上线流程都是 1.测试环境功能测试->2.预览环境功能测试(线上机器摘取 * 台,线上无读写)->3.线上环境功能测试, 功能测试场景是否能完全覆盖全,是否能在测试环境下用线上真实数据发现系统的缺陷,通过 warn.log, error.log 观察异常堆栈,定位代码问题。
2).load test, 通常压测都是测试人员自己构造场景脚本,而这个场景是否能覆盖全线上所有的场景,用线上真实数据压测更有说服力,当然这种压测收集数据需要成本,不像某些工具(LR, nGrinder)本身集成了收集数据。
1.你误用了 Suite,Suite 是聚合相关的类,不是用来顺序执行不同类;2.你这种可以直接定义一个 Class, @BeforeClass里增,@Test里改(断言),@AfterClass里删; 3.不知你为何要写成 3 个类 (A,B,C)。如果你是不同类封装了不同功能,你可以直接在一个测试类@Test中分别调用 A.method1() 增, B.method2() 改, C.method3() 删, 根据业务断言
去看淘宝的接口测试白皮书,会给你解惑的。
#13 楼 @huadashao520 不影响功能,只是一些工具方法,有些方法不方便公开。
#1 楼 @lihuazhang 已改
#7 楼 @springs412 第一个问题:手工,每次跑完相关模块后(Ant 执行),需手工修改不同模块的日志名,根据扫结果日志进行重试;Ant 本身有支持失败重试,看过它的源码,它是生成一个单独的 JUnit3 测试文件,也是类似将失败用例聚合起来,但是 JUnit3 已经过时,故自己实现了失败用例重试。第二个问题,理论是可以的,可以根据你的结果失败用例的固有特征,修改正则表达式即可。
#5 楼 @springs412 不要只看,自己跟着敲一遍代码就理解了。
不是练习呀,实际用的,我们没有使用 TestNG 框架 (支持多线程和失败重试),我们选择 JUnit 就是想对它二次开发,按照自己的需求拓展,是不想用 TestNG 现成的,就是想提高自己的编码能力,自己给自己编码需求。
#1 楼 @qianyiliushang 是的,只是自己想练练 coding,不想用现成的。
25-40k,待遇不错👍
赞,不错