mirror of
https://github.com/lwthiker/curl-impersonate.git
synced 2025-08-08 04:42:26 +00:00

Add impersonation support for Chrome 99 and Edge 99 which were just released.
Their TLS signature is identical to the previous versions (98).
The only difference is in the user agents.
curl patch from
ca13947f00
The tests verify that curl-impersonate
has the same network signature as that of the supported browsers. They do not test curl's functionality itself.
Running the tests
The tests assume that you've built both curl-impersonate-chrome
and curl-impersonate-ff
docker images before (see Installation).
To run the tests, build with:
docker build -t curl-impersonate-tests tests/
then run with:
docker run --rm curl-impersonate-tests
This simply runs pytest
in the container. You can pass additional flags to pytest
such as --log-cli-level DEBUG
.
How the tests work
For each supported browser, the following tests are performed:
- A packet capture is started while
curl-impersonate
is run with the relevant wrapper script. The Client Hello message is extracted from the capture and compared against the known signature of the browser. curl-impersonate
is run, connecting to a localnghttpd
server (a simple HTTP/2 server). The HTTP/2 pseudo-headers and headers are extracted from the output log ofnghttpd
and compared to the known headers of the browser.
What's missing
The following tests are still missing:
- Test that
curl-impersonate
sends the same HTTP/2 SETTINGS as the browser.