You can do some simple tests with nc or Ncat. For example here is test_random_invalid_method:
$ printf 'ABCD / HTTP/1.0\r\n\r\n' | ncat -v example.com 80
The header field manipulation tests are harder because they rely on having a cooperating server that can check the request and see if it has been modified from what the client sends. If you could find a server that tells you what headers it received, you could use that. http://wtfismyip.com/headers almost works, except that it canonicalizes case in the header names. It could work for detecting some kinds of manipulation.
$ printf 'GET /headers HTTP/1.0\r\nACCept-LANGuage: en-US\r\n\r\n' | ncat wtfismyip.com 80
HTTP/1.0 200 OK
Content-Type: text/plain
Date: Tue, 03 Mar 2020 09:09:38 GMT
Content-Length: 23
Accept-Language: en-US
That’s a good question. I don’t know. Maybe those tests are intended for testing a host-based firewall, rather than a middlebox.