• 三剑客之造数 at 2023年02月24日

    想问一下楼主埋点是怎么实现的

  • 获取受到影响接口地址 at 2022年08月23日

    简单看了下楼主的实现,楼主使用的是 java-callgraph2,这个工具是使用字节码分析的调用链,因此要求拉代码后再编译成 jar 包。
    我之前用 ASM 写了一个跟楼主类似的工具,但是只处理 invokeXXX 指令遇到多态和覆写时无法获取真实的被调用者 (java-callgraph2 貌似处理的不全),而且使用起来不仅要源码还要字节码确实蛋疼,后来索性直接写了个 idea 的插件,依托 idea 提供的 api 全在源码层面分析了😂

  • TopK 问题可以考虑用堆解决

  • 感觉 Selenium 无法直接伪类元素,但是可以通过调用 JavaScript 获取其属性,具体如下:

    JavascriptExecutor jse = (JavascriptExecutor) driver;
    // 这里先定位到label元素
    WebElement e = driver.findElement(By.cssSelector("label.el-form-item__label"));
    // 这里js前一定要加return,否则结果会是null
    // 如果伪类元素不存在,下面的语句会返回"none"
    String content = (String) jse.executeScript("return window.getComputedStyle(arguments[0], '::before').content", e);
    
  • select B.* from B join A on B.tno = A.tno where A.tname like '王%';
    select A.tname, count(0) from B join A on B.tno = A.tno group by A.tno;
    

    这样子?

  • 仅楼主可见
  • 精准测试的实现方案 at 2019年09月16日

    期待

  • 精准测试的实现方案 at 2019年09月16日

    其实我说的就是这种方式,测试人员每次执行手工用例时都需要额外的去标记用例开始和结束,总感觉这种方式不是很好,第一是给测试人员引入了额外的操作可能会影响测试效率,第二是关联依赖于人为操作,可能因为误操作引入错误。😂

  • 精准测试的实现方案 at 2019年09月16日

    采用降噪服务,关联用例和拦截到的执行代码

    请问这里如何关联执行代码和手工测试用例,每执行一条案例需要测试人员手工去操作吗?如果这样的话给测试人员带来的额外成本会很高

  • 👍 赞一个

  • 👍 👍 👍

  • 报错是因为 args 找不到,这个是在 run_script 方法中定义的全局变量,直接把 runner.py 当主类启动.

  • 报错是因为 args 找不到,这个是在 run_script 方法中定义的全局变量,直接把 runner.py 当主类启动

  • 不支持

  • 需要封装成runCase方法

    # -*- coding: utf-8 -*-
    author = "qiuyunxia"
    
    from airtest.core.api import *
    from poco.drivers.android.uiautomation import AndroidUiautomationPoco
    
    def runCase(self, vars):
        auto_setup(file)
    
        poco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False)
    
        dev=connect_device("android:///988bdc454835315257")
    
        dev.stop_app("com.unity3d.ads.example.creative")
        dev_list =device()
        print(dev_list.list_app())
        dev.start_app("com.unity3d.ads.example.creative")
        poco("com.unity3d.ads.example.creative:id/unityads_example_initialize_button").click()
    
        snapshot()
        poco("com.unity3d.ads.example.creative:id/unityads_example_interstitial_button").click()
        sleep(4.0)
        snapshot()
        snapshot()
    
        wait(Template(r"tpl1547966723580.png", record_pos=(0.005, 0.828), resolution=(1080, 2220)))
        touch(Template(r"tpl1547966742057.png", record_pos=(0.005, 0.847), resolution=(1080, 2220)))
    
        sleep(1.0)
        snapshot()
    
  • runner.py 会自动查找跟它在同一目录下且名字以 “用例集” 结尾的文件夹,然后将找到的文件夹里的 py 文件加入都测试用例集中,你那找不到用例查一下是不是因为编码问题导致的

  • 大神不敢当,当时写代码是确实是往这方面考虑的,但是最近比较忙可能抽不出时间来完善,如果你有好的想法或实现欢迎 PR😀

  • Windows 的我没试过,但是案例来说应该是支持的,我只是修改了添加案例的逻辑,其他地方并没有做修改

  • 需要手动调下结构,其实不调也能运行,需要把好多 air 的脚本和图片都放到一个目录里,这样很容易造成图片不知道是哪个脚本的,太乱;如果想要直接运行 air 脚本可以把 runner.py 里遍历文件的逻辑改下就行了

  • 文件夹结构是手动创建的,当时考虑脚本维护性就没按照官方那个 air 文件夹的结构

  • 简单说就是基于图像识别的自动化框架,官网

  • 我刚拿 poco 试了一下是没问题,但是我用的是 Python 3.6.5,不知道你那报错是不是因为你用 Python 2.7 的原因

  • 我看你文件夹里确实没有那个文件啊,而且命令行里输出的图片是 tpl 开头的,你的日志文件夹里的图片都没有 tpl 前缀并且是 jpg 格式的。这一块在我写的 report.py 里我并没有做修改而是直接调用的原来的逻辑,我也不知道图片名称为啥出现这种差异😥

  • 那个_analyse 方法我没改,直接调用的 airtest 框架原来的,要不你自己改下 airtest/aircv/aircv.py(就是异常堆栈里的最后一个文件),把那个 filename 变量输出出来看看到底是什么值