个人理解,如果是一般场景下这种 A 和 B 这 2 个接口确实不应独立来测。
只是这个 sid,特殊在于它有效期一般都比较长,客户端登录后都会存储在本地,遇到待测场景的时候再取出 sid 拼接到参数里面,这种情况的话压测时还是要独立吧
————————————————————————————————
想了下,还是先请求一遍登录接口,把 sid 存在本地,然后压测时再去读 sid
例如我们现在想要知道当前服务器下能承受的接口 A 的最大并发量,
但是接口 A 请求的参数需要带上一个标示不同用户的叫做 sid 的参数,而 sid 是每个用户调用登录接口 B 后服务器返回的一个唯一的一个字符串
我们想要模拟最真实的压测情景的话,是希望待压测的接口 A,在压测过程中每个请求带的参数 sid 都不同
现在就是纠结这样的需求怎么处理好呢
恩~就是我们压测目标的接口的时候,实际上在压测的过程中,被测系统实际上是同时收到 2 个接口的请求
那么对于最后我们得出的,被测系统所能承受的待测接口的最大并发数,数据上是不是会有偏差呢
前辈你好,最近正在看您的 blog 的脚本增强篇,关于里面的提到的关联部分
使用了增强后,实际在压测的时候是不是会同时请求一个接口获取参数和待压测接口,这样的话压测接口是不是误差就比较大了
还是我对关联的理解有问题?
想问下,是怎么实现在原本的 web 界面新增字段,例如截图上的除了原始 body 内容,还展示了解密后和 eventlog
anyproxy 自定义规则只能修改原有的字段。。js 完全不熟,项目里面的 main.js 看了 2 天,楞是找不到请求的参数什么的是从哪传过去的
Doctor,总结最后一句是把 fork 拼错了吧
还有这种操作
看了下,fiddler 也是要用 js 实现解密过程
anyproxy 好在是跨平台的,fiddler 现在只能 windows 下用吧
看了下,解密是得用 js 重写客户端解密的逻辑吧,又得去学下 js 的语法了。。
—— 来自 TesterHome 官方 安卓客户端
没,我发现还是失败了,在选择服务器的时候,就已经开始了遍历,只是刚好我希望他选择服务器恰好在第一个位置就继续运行下去了
。
最近工作有变动就没再继续跟这问题
后端没有对前端传进的参数进行校验,我也被这坑过,一把泪啊
—— 来自 TesterHome 官方 安卓客户端
学习了,解密请求内容还是挺常见的功能,回头我去翻下看看怎么实现解密请求和解密响应内容
另外 web 界面是在哪里修改的,我看文档只有写到自定义规则,新添加的字段怎么才能展示在 web 界面呢?
学习了
刚刚在 apk-utils.js 里面找到了
apkUtilsMethods.install = function callee$0$0(apk) {
var replace = arguments.length <= 1 || arguments[1] === undefined ? true : arguments[1];
var timeout = arguments.length <= 2 || arguments[2] === undefined ? 60000 : arguments[2];
return _regeneratorRuntime.async(function callee$0$0$(context$1$0) {
while (1) switch (context$1$0.prev = context$1$0.next) {
case 0:
if (!replace) {
context$1$0.next = 5;
break;
}
context$1$0.next = 3;
return _regeneratorRuntime.awrap(this.adbExec(['install', '-r', apk], { timeout: timeout }));
case 3:
context$1$0.next = 15;
break;
case 5:
context$1$0.prev = 5;
context$1$0.next = 8;
return _regeneratorRuntime.awrap(this.adbExec(['install', apk], { timeout: timeout }));
case 8:
context$1$0.next = 15;
break;
case 10:
context$1$0.prev = 10;
context$1$0.t0 = context$1$0['catch'](5);
if (!(context$1$0.t0.message.indexOf('INSTALL_FAILED_ALREADY_EXISTS') === -1)) {
context$1$0.next = 14;
break;
}
throw context$1$0.t0;
case 14:
_loggerJs2['default'].debug('Application \'' + apk + '\' already installed. Continuing.');
case 15:
case 'end':
return context$1$0.stop();
}
}, null, this, [[5, 10]]);
};
你好,想问下这是要在 bootstrap 里面改吗?对源码不熟悉,翻了下还是没找到要修改的位置
同 15 年毕业,不过还是楼主能拼啊
>> UIAutomatorWD http server ready
>> Android device started: C4Y7N16328000954
>> inspector start at: http://192.168.7.150:5678
{ Error: Command failed: start http://192.168.7.150:5678
at ChildProcess.exithandler (child_process.js:252:12)
at emitTwo (events.js:125:13)
at ChildProcess.emit (events.js:213:7)
at maybeClose (internal/child_process.js:887:16)
at Socket.stream.socket.on (internal/child_process.js:340:11)
at emitOne (events.js:115:13)
at Socket.emit (events.js:210:7)
at Pipe._handle.close [as _onclose] (net.js:548:12)
killed: false,
code: 1,
signal: null,
cmd: 'start http://192.168.7.150:5678' }
<-- GET /
>> proxy.js:55:14 [master] pid:6176 Proxy: /wd/hub/session/:sessionId/source:GET to http://127.0.0.1:9001/wd/hub/session
/:sessionId/source:GET with body: null
你好,想问下启动的时候有报错,并弹窗提示:http://192.168.7.150:5678 找不到应用程序,但是实际在浏览器能看到控件信息,功能也正常使用,这个报错需要处理吗@xdf
PS:播个插曲,在 Windows 下,我 nodejs 的安装目录一开始在 c://Program Files//nodejs,结果启动的时候执行 adb 命令的时候因为 Program Files 没带双引号导致命令执行出错,后来只能把 nodejs 重装在 C 盘根目录
原来如此,改成用 testcase 配置就成功了,多谢~
想问下 startupActions 被注释掉了,是已经不能用了吗,如果可以继续用的话,想要实现查找某个控件并点击应该怎么写,我试了用 driver.findElement(By.XX).click() 或者 see().tap() 不行了
Ps:我们应用启动页和登录页都是 LoginActivity,并且 debug 包在启动页会有一个弹窗要求选择进入什么环境。现在遇到了一个问题就是在启动页点击选择服务器后进入登录页后,说是所有 element 都被点击了,然后找不到返回键,结果就直接退出应用,不知道有没人有类似情景,这个应该怎么处理呢
受教了,刚毕业 2 年,技术没学的怎么样。最近倒是沉迷游戏了,简直如当头棒喝。。我和贴主的目标基本一致,没打算说成为行业里的有名人,只想赚更多的钱,想买东西的时候不会顾虑,看了贴主的经历,有点慌了
—— 来自 TesterHome 官方 安卓客户端
没做断言?点击后不判断下状态吗
—— 来自 TesterHome 官方 安卓客户端
感觉又是 android 7.0 的兼容问题
—— 来自 TesterHome 官方 安卓客户端
给钱多就愿意,不然还不如回去看书
—— 来自 TesterHome 官方 安卓客户端
之前收藏了帖子,放假刚好找到学习下
—— 来自 TesterHome 官方 安卓客户端
可以捕获到 toast,代码没看出问题,直觉还是配置的问题
—— 来自 TesterHome 官方 安卓客户端