想问一下楼主埋点是怎么实现的
简单看了下楼主的实现,楼主使用的是 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;
这样子?
期待
其实我说的就是这种方式,测试人员每次执行手工用例时都需要额外的去标记用例开始和结束,总感觉这种方式不是很好,第一是给测试人员引入了额外的操作可能会影响测试效率,第二是关联依赖于人为操作,可能因为误操作引入错误。
采用降噪服务,关联用例和拦截到的执行代码
请问这里如何关联执行代码和手工测试用例,每执行一条案例需要测试人员手工去操作吗?如果这样的话给测试人员带来的额外成本会很高
赞一个
报错是因为 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 变量输出出来看看到底是什么值