求份简历,发我邮箱:619692290@qq.com,也可以直接跟我沟通,微信:alexinwx,主要是就是我在招人,有什么都可以跟我直接沟通,主要过来做全端的音视频性能测试平台。坐标深圳腾讯。
看到了 jb 哥
好浮躁啊,测试行业就是因为楼主这种人太多,技术才会这么烂
升级 appium-python 客户端,或者直接改这个包的源码,把所有 w3c 这个 if 判断去掉就行了
准的,因为是实现了的 Application.ActivityLifecycleCallbacks 的回调,只要你在 onActivityCreated 阶段做一次 B Activity 的启动时间统计,然后在 start 阶段拿到 view 的 focus 作为结束点相减就行了,文章的非 launch activity 启动统计有说明。
是啊,还在写。。很多功能还没写完。
不可能很快的,appium 都是通过 http 来实现 webdriver 协议,那你每一次调用 api 都是一次 http 请求,如果想稳定性以及效率高点,uiautomator 会比较好,前提是如果能满足你的需求。
随便都能找得到把
没做过 IOS 这块。。。
docker 本身只是一个管理进程,与真实物理机差别就是多了一个 docker 进程而已,除非有具体的测试报告,否则不太信 jmeter 的 docker 容器会比物理机差很多
你这样每次新开容器还要去内部改数据库配置挺麻烦的,如果不保存到镜像,容器没了又得启动镜像再改一次。还不如将配置文件挂载到宿主机,或者是在 Dockerfile 的 Entrypoint 或者 CMD 入口点修改 mysql 的配置文件。
工具开发听上去还是比测试开发顺耳
主要还是懒,因为一整套流程一步步说下来挺麻烦的。不过真的考虑用这种方式做的话,其实都很好理解。说到底,这个工具其实就是提供了一个traceview
的反混淆工具以及traceview
的parser
。另外我补充一下以下两点:
traceview
的inclusive/exclusive cpu time
可以拿到线程跟方法的cpu
时间,以及调用次数,这样可以避免上下文切换,阻塞,GC 等因素干扰,真正的目的也是为了使用自动化的方法分析耗时的方法demo
有给出,文章最下面那个报表就是配置完成后,sheet_analysis.py 运行的结果,考虑到通用性问题,其实已经给出了解混淆手段以及 traceview 的解析堆栈,剩下的自己去拓展利用会比较好。其实就是图像识别。。。另外准确度应该没法达到 100% 吧?
用 Choreographer 来测试这个倒不是腾讯的问题,丢帧数据确实基本上是不输出的,但不太清楚怎么回事。。不过尽管如此,腾讯在流畅度测试的计算上还是有点问题的。。
不用这么麻烦,试试 UiWatcher 监听器,自带观察者模式,注册一个 watcher 即可
public class InCallTest extends UiAutomatorTestCase {
private static final long TIME_OUT = 10 * 60 * 1000;
private long currentTime;
private boolean flag = true;
long eslcape = 0;
public void test_Call() throws InterruptedException,
UiObjectNotFoundException {
UiWatcher inComingWatcher = new MyWatcher();
getUiDevice().registerWatcher("来电", inComingWatcher);
getUiDevice().pressBack();
UiObject dialButton = new UiObject(
new UiSelector()
.resourceId("com.android.sprdlauncher1:id/workspace"));
System.out.println("waiting for incoming");
currentTime = System.currentTimeMillis();
while (flag && eslcape < TIME_OUT) {
dialButton.clickAndWaitForNewWindow();
eslcape = System.currentTimeMillis() - currentTime;
}
assertFalse("没有收到来电", flag);
}
class MyWatcher implements UiWatcher {
@Override
public boolean checkForCondition() {
UiObject inCall = new UiObject(
new UiSelector()
.resourceId("com.android.dialer:id/IncomingCallRejectButton"));
while (eslcape < TIME_OUT) {
if (inCall.exists()) {
System.out.println("you have a call");
try {
inCall.clickAndWaitForNewWindow();
flag = false;
return true;
} catch (UiObjectNotFoundException e) {
e.printStackTrace();
}
}
eslcape = System.currentTimeMillis() - currentTime;
}
return false;
}
}
}
usb offline 自动重置方案可以参考我这篇文章:http://www.cnblogs.com/alexkn/p/6742536.html
在 linux 的 Linux/include/uapi/linux/usbdevice_fs.h 中,重置_IO('U', 20) 可以重置 usb 设备。
具体代码可以参考我的文章:http://www.cnblogs.com/alexkn/p/6742536.html
暂无计划
因为runCMD(String cmdString)
在内部都是用su -c $cmdString
去执行的
哦哦,我的错,当时主要疑惑的是第二条命令是怎么执行的。
刚查了下,Runtime.getRuntime()
原来执行多条命令时后续只要拿到process
的DataOutputStream
对象,继续writeBytes
就可以保证是在同一个上下文中执行多条命令了。
没有那么多,怕刷屏所以把所有的性能测试项的测试方法全放在一篇文章里了https://testerhome.com/topics/9094
可能最多再加一篇 GT 架构这样的文章。
GT Tools 支持 AndroidJUnit 的测试脚本用于性能指标的采集和数据监控,但是也需要你自己去调用对应的 API。
另一种集成方式就是自己简单封装一层,用广播模式调用 GT:http://gt.qq.com/docs/a/UseGtWithBroadcast.txt ,然后去驱动自己的用例,我在这里有一个整体介绍:https://testerhome.com/topics/9092