前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分享一个埋点自动化框架wqrfproxy

分享一个埋点自动化框架wqrfproxy

作者头像
我去热饭
发布2022-05-19 13:07:46
4730
发布2022-05-19 13:07:46
举报
文章被收录于专栏:测试开发干货

最近搞了一套埋点自动化框架,虽然第一版不太完美,但是更新还是很效率的。

应用场景:

嵌入到任何移动端ui自动化脚本/框架中,可断言手机在执行脚本时发出的请求,包括url和url中的参数和请求体中的参数。

使用方法:

1. 下载

pip install wqrfproxy

2. 下载依赖包

pip install mitmproxy

3. 使用

(1)脚本中先引入 from wqrfproxy import *

(2)调用启动服务方法 start_wqrfproxy(port,cert)

port为端口号,不写就默认8000,cert为本地客户端地址绝对路径,不写就不加。

(3)书写ui自动化脚本/或时间等待你手动操作手机

(4)写断言,因断言会触发异常,所以可以用try来捕获

try : assert_proxy(url,content)

except Exception as e:print(e)

其中url 为要锁定的url,必须是http/https开头,且若url带参数,只能填写?前面不带参数的部分哦~

其中content 为要断言的字符串,目前本框架只支持在url的参数和请求体中查询这个字符串是否存在,不存在会触发异常~

(5)调用关闭服务方法 stop_wqrfproxy()

(6)手机挂上代理 ,本机ip:8000

(7)执行脚本,注意看控制台输出的中英文提示

(8)执行后会自动打开一个抓包记录显示的页面,可无视关掉,或进行检查请求

(9)断言成功会打印中英文成功文案,失败会触发异常并输出中英文错误文案(找不到url或找到url但找不到预期字符串)

4. 环境:

目前仅支持python3 和 mac/linux 环境。windows和python2支持请关注后续更新

5. 普通线性脚本demo

代码语言:javascript
复制
# -*- coding:utf-8 -*-
import time
from wqrfproxy import *
start_wqrfproxy() #启动服务
time.sleep(30) #这行可以替换成实际的ui自动化脚本了
try:
    #断言该url的请求参数中是否含有'埋点关键字'
    assert_proxy('http://xx.xxx.com/xx','埋点关键字') 
except Exception as e:
    print(e) #打印出现的错误
stop_wqrfproxy() #最好关闭服务

6.在unittest中使用demo

代码语言:javascript
复制
# -*- coding:utf-8 -*-
import unittest
from wqrfproxy import *
 
 
class Test(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
        start_wqrfproxy() #书写启动服务函数
    @classmethod
    def tearDown(self):
        stop_wqrfproxy() #书写关闭服务函数
        
    def test_1(self):
        driver.find_element_by_id('').click() #实际ui自动化脚本
 
        #断言url的url参数和请求体中是否含有userId这个埋点关键字
        assert_proxy('http://***.***.com/***/***','userId')

第一版,目前不支持windows还,不过过两天就支持了。最好用python3哦~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发干货 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 嵌入到任何移动端ui自动化脚本/框架中,可断言手机在执行脚本时发出的请求,包括url和url中的参数和请求体中的参数。
  • 使用方法:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档