lilaihao1030 2023-04-24 17:26 采纳率: 0%
浏览 54
已结题

GrowingIO测试

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

img

  • 写回答

3条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-04-26 19:01
    关注
    不知道你这个问题是否已经解决, 如果还没有解决的话:
    • 以下回答来自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。


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

报告相同问题?

问题事件

  • 系统已结题 5月2日
  • 修改了问题 4月24日
  • 创建了问题 4月24日