GrowingIO测试

1:web网站使用了GrowingIO平台进行埋点,如何进行自动化测试这些埋点,目前是靠谷歌浏览器的插件进行人工检查;要求需要一个详细的方,可以使用python+selenium或者其他类型的自动化测试方法
2:需要写相关代码时介绍下代码用处,断言,例如当你模拟在页面滑动和点击的时候,如何判定成功请求了一个曝光和点击行为
3:chat回答暂时不做考虑,因为chat上的代码示例不完整,许多引用的名称未说明用意和来处

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 以下回答来自chatgpt:

    解决方案:

    1. 安装selenium和pyvirtualdisplay:
    !pip install selenium
    !pip install pyvirtualdisplay
    
    1. 从GrowingIO的官网获取您的项目代码片段。

    2. 编写Python脚本,初始化WebDriver并访问您的网站:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    from pyvirtualdisplay import Display
    
    display = Display(visible=0, size=(1200, 800))
    display.start()
    
    chrome_options = Options()
    chrome_options.add_argument("--no-sandbox")
    chrome_options.add_argument("--disable-dev-shm-usage")
    chrome_options.add_argument("--disable-gpu")
    chrome_options.add_argument("--dns-prefetch-disable")
    chrome_options.add_argument("--ignore-certificate-errors")
    chrome_options.add_argument("--headless")
    
    driver = webdriver.Chrome(options=chrome_options)
    driver.get("https://www.example.com")
    
    1. 使用JavaScript执行页面上的滚动和单击操作:
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
    driver.find_element_by_xpath("//a[contains(text(),'Contact')]").click()
    
    1. 在Chrome DevTools控制台中使用“network”过滤器,查找来自GrowingIO的请求,将“view”(曝光)和“click”(点击)行为信息记录下来。例如:
    FieldValue
    Schemehttps
    Hostapi.growingio.com
    Path/v3/projects/xxx/events
    MethodPOST
    Status200
    Request body{ "eid": "xxx", "et": "view", "ver": "2.1", "d": { "page": { "s": 1080, "t": "Example Page Title" }, "time": 1569290853564, "loc": "https://www.example.com/contact", "ref": "https://www.example.com", "bloc": { "s": 1056, "t": "Example Page Body Title", "idx": 0 } }, "l": "en-US", "p": "web", "pl": "Chrome", "b": "Chrome", "bv": "77.0.3865.75", "ak": "xxx", "ds": 1536x864, "sid": "xxx", "uid": "xxx" }
    Response body{ "code": "OK", "data": "2020-07-16 21:00:14.927727" }
    1. 编写Python代码,使用Selenium检测是否存在相应的请求。例如:
    import requests
    
    def check_event_request(event_type):
        events = driver.execute_script("return window.__growing_middleware_events")
        event_json = None
        for event in events:
            if "et" in event and event["et"] == event_type:
                event_json = event
                break
        assert event_json is not None, f"No {event_type} event found in __growing_middleware_events"
    
        response = requests.post("https://api.growingio.com/v3/projects/xxx/events", json=event_json)
        assert response.status_code == 200, f"Failed to send {event_type} event to GrowingIO API"
    
    1. 最后,在Python脚本中调用check_event_request()方法,检查是否成功发送了相应的事件:
    check_event_request("view")
    check_event_request("click")
    

    注意,您需要将“xxx”替换为您的GrowingIO项目ID。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
要进行自动化测试GrowingIO的埋点,可以使用Python和Selenium来实现。下面是一个简单的示例代码:

1、 安装必要的依赖项

在开始之前,需要安装Python和Selenium。可以使用pip来安装Selenium:

pip install selenium

另外,需要下载Chrome浏览器和对应版本的ChromeDriver。

2、 编写测试脚本

可以编写一个Python脚本来自动化测试GrowingIO的埋点。下面是一个示例代码:

from selenium import webdriver

# 创建ChromeDriver实例
driver = webdriver.Chrome('/path/to/chromedriver')

# 访问需要测试的网页
driver.get('https://example.com')

# 等待页面加载完成
driver.implicitly_wait(10)

# 查找需要测试的页面元素
element = driver.find_element_by_xpath('//button[@data-growing-title="Click Me"]')

# 点击页面元素
element.click()

# 等待埋点数据上传完成
driver.implicitly_wait(10)

# 查询埋点数据
result = driver.execute_script('return _gio')

# 打印埋点数据
print(result)

# 关闭浏览器
driver.quit()

在上述代码中,我们首先创建了一个ChromeDriver实例,并访问需要测试的网页。然后,我们使用driver.find_element_by_xpath方法查找需要测试的页面元素,并使用element.click方法模拟用户的点击操作。接下来,我们等待埋点数据上传完成,然后使用driver.execute_script方法查询埋点数据,并将结果打印出来。最后,我们关闭浏览器。

需要注意的是,上述代码中的xpath表达式需要根据实际情况进行修改,以便找到需要测试的页面元素。另外,需要将代码中的/path/to/chromedriver替换为ChromeDriver的实际路径。

3、 执行测试脚本

最后,执行测试脚本即可自动化测试GrowingIO的埋点。在执行脚本之前,需要确保Chrome浏览器和ChromeDriver已经正确安装和配置。

执行测试脚本的命令为:

python test.py

在执行完毕后,可以查看输出结果,以确认埋点数据是否正确上传。

需要注意的是,自动化测试只能验证埋点数据是否正确上传,不能保证埋点数据的准确性和完整性。在进行自动化测试之前,需要先了解业务需求和埋点规范,以便正确地验证埋点数据。


如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

以下答案由GPT-3.5大模型与博主波罗歌共同编写:

  1. 针对GrowingIO平台进行埋点的自动化测试,可以使用Selenium和Python编写脚本,以下是示例代码:

```python
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

设置Chrome driver路径

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless') # 隐藏浏览器窗口
driver = webdriver.Chrome(executable_path='chromedriver_path', options=chrome_options)

打开网站

driver.get('https://e/