自己顶一下
谢谢 ,按照你的方法把 applications 放到 instrumentation 前面,跑起来了。
但是有个新问题 :往 coverage.ec 这个文件里面写数据的时候报错了,java.lang.ClassNotFoundException: org.jacoco.agent.rt.RT,这个类找不到,所以最后报告没数据
没有,在https://testerhome.com/topics/8554这个帖子里面询问了贴主,还没有人解答
代码和你的是一样的,但是在安装应用的时候发现那个 Instrumentation 没有安装到 app 中去,使用命令 adb shell pm list instrumentation 没有发现我的包名,所以使用命令 adb shell am instrument 包名/包名.test.JacocoInstrumentation 就会直接报上面那个错误
可否加个微信聊,方便快捷
@lose 这次改动代码结构是清晰了很多,也增加了日志记录 ,但是在用例组织这块,设计思路感觉倒退了,之前只需写 yaml 用例,无需写代码就可以执行测试,现在每条用例都得在 PageObject 写一个操作方法 py,在 test 里面写一个执行 py,这反而增加了维护难度。
@seveniruby 嗯,赞同你观点,不过因为你已经有了比较好的功能测试基础 ,有了成熟的测试思想和体系,所以你再来使用这些技术,那就是游刃有余事半功倍。他现在才一年测试,以他现在的履历,简历都过不了 BAT HR 那关,何谈面试 。基础不牢,过于迷恋自动化 ,所以要提醒提醒他搞自动化的同时不要丢掉功能测试。
为你的钻劲点个赞,但给你个建议,别把功能测试丢掉,通过功能测试建立自己的测试思想和体系,本论坛坛主思寒大神,据说也做了两年的功能测试 。你搞的那些测试技术好比是造机器人,机器人是不会有思想的 ,是听你指挥的,如果你自己的思想体系不清晰,机器人就是瞎搞了。
哈哈 ,支持楼主,不过话说老了,还工作个毛 ,趁年轻赶紧买套房,把钱挣足,老了就游山玩水
@nil 按照你的教程,老是报下面的错误,如何解决,求指导,谢谢
INSTRUMENTATION_STATUS: id=ActivityManagerService
INSTRUMENTATION_STATUS: Error=Unable to find instrumentation info for: ComponentInfo{com.bluepay.example/com.bluepay.example.test.JacocoInstrumentation}
INSTRUMENTATION_STATUS_CODE: -1
android.util.AndroidException: INSTRUMENTATION_FAILED: com.bluepay.example/com.bluepay.example.test.JacocoInstrumentation
at com.android.commands.am.Am.runInstrument(Am.java:953)
at com.android.commands.am.Am.onRun(Am.java:318)
at com.android.internal.os.BaseCommand.run(BaseCommand.java:47)
at com.android.commands.am.Am.main(Am.java:99)
at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:249)
先把滑动的方法研究清楚 ,然后在指定区域滑动屏幕就好了。
@lucifer 楼主,你看文章不仔细啊。答案就在那位大神的文章里面 。
@wuxixuxiaodong ,杀鸡焉用牛刀。建议楼主好好读读 debugtalk 发在论坛的贴,就明白了。http://debugtalk.com/post/head-first-locust-advanced-script/,里面有详细教程
原因:
adb.js 中 1035 行 this.shell("ps '" + name + "'", function (err, stdout) {
对应执行的指令是 ps 'uiautomator', Android7 不支持这个指令格式,所以执行结果是 bad pid 'uiautomator'
目前 Appium 未对此进行处理,所以需要修改此指令的执行方式
原因:
1. adb.js 中 1035 行 this.shell("ps '" + name + "'", function (err, stdout) {
对应执行的指令是 ps 'uiautomator', Android7 不支持这个指令格式,所以执行结果是 bad pid 'uiautomator'
目前 Appium 未对此进行处理,所以需要修改此指令的执行方式
即将
this.shell("ps '" + name + "'", function (err, stdout) {
if (err) return cb(err);
替换成
this.shell_grep("ps", name, function (err, stdout) {
if (err) {
logger.debug("No matching processes found");
return cb(null, []);
}
并增加上面用到的 shell_grep 函数:
ADB.prototype.shell_grep = function (cmd, grep, cb) {
if (cmd.indexOf('"') === -1) {
cmd = '"' + cmd + '"';
}
var execCmd = 'shell ' + cmd + '| grep ' + grep;
this.exec(execCmd, cb);
};
这个只能按首字母排序 。而不是自定义顺序
@xeon 楼主,请教个问题,我的接口要求传入的 json 串按顺序,否则接口不认。python 读取字典是随机的,那么 json 串里面的参数也是随机排列的,有没有什么好的方法 。
支持加精
#1 楼 @wuxixuxiaodong 方便加个 qq 交流下不
点个赞 。顺便请教下,webview 能操作截图不,我原生的可以截图,webview 报错:selenium.common.exceptions.WebDriverException: Message: unknown error: cannot activate web view
@zhangjunjie ,我和你一样:测试公众号是没问题的,但是小程序定位不到控件。据说腾讯自家的测试工具 xtest 可以测试小程序 ,可以研究下
@ort886 chromedriver 的什么问题,如何解决的?
@xiaoxuxu 微信上切换到 webview 页面,在 google 浏览器中输入 chrome://inspect/#devices,会看到自己的 webview 页面地址,点击 inspect 就在网页打开了,然后就和 web 定位控件一样,找到你想要的控件,右键 copy xpath 就 ok 了。也可以自己把那个链接复制,在浏览器打开然后点击 google 开发者工具,和前面一样操作