mozproxy
— Provides an HTTP proxy¶
Mozproxy let you launch an HTTP proxy when we need to run tests against third-part websites in a reliable and reproducible way.
Mozproxy provides an interface to a proxy software, and the currently supported backend is mitmproxy for Desktop and Android.
Mozproxy is used by Raptor to run performance test without having to interact with the real web site.
Mozproxy provide a function that returns a playback class. The usage pattern is
from mozproxy import get_playback
config = {'playback_tool': 'mitmproxy'}
pb = get_playback(config)
pb.start()
try:
# do your test
finally:
pb.stop()
config is a dict with the following options:
playback_tool: name of the backend. can be “mitmproxy”, “mitmproxy-android”
playback_version: playback tool version
playback_files: playback recording path/manifest/URL
binary: path of the browser binary
obj_path: build dir
platform: platform name (provided by mozinfo.os)
run_local: if True, the test is running locally.
app: tested app. Can be “firefox”, “geckoview”, “refbrow”, “fenix” or “firefox”
host: hostname for the policies.json file
local_profile_dir: profile dir
Supported environment variables:
MOZPROXY_DIR: directory used by mozproxy for all data files, set by mozproxy
MOZ_UPLOAD_DIR: upload directory path
GECKO_HEAD_REPOSITORY: used to find the certutils binary path from the CI
GECKO_HEAD_REV: used to find the certutils binary path from the CI
HOSTUTILS_MANIFEST_PATH: used to find the certutils binary path from the CI