docs: def start_proxy(self, port=None):
          """Start the mitmproxy
          """
  
          self.runner.info_log("Starting proxy...")
  
          # Get a random port that is available
          if not port:
              sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
              sock.bind(('0.0.0.0', 0))
              sock.listen(5)
              self.proxy_port = sock.getsockname()[1]
              sock.close()
  
          network_data_path = os.path.join(
              self.runner.runner_dir,
              'network_capture'
          )
          create_dir_if_doesnt_exist(network_data_path)
  
          self.proxy_output_path = os.path.join(
              network_data_path,
              string_to_filename('%s.data' % self.test_name)
          )
  
          path_to_mitmproxy = BROME_CONFIG['mitmproxy']['path']
  
          if not path_to_mitmproxy:
              raise Exception("""
                  You need to set the mitmproxy:path config to be able
                  to the use the proxy with this browser
              """)
  
          filter_ = BROME_CONFIG['mitmproxy']['filter']
          command = [
              path_to_mitmproxy,
              "-p",
              "%s" % self.proxy_port,
              "-w",
              self.proxy_output_path
          ]
  
          if filter_:
              command.append(filter_)
  
          process = self.execute_command(command)
  
          self.proxy_pid = process.pid
  
          self.runner.info_log("Proxy pid: %s" % self.proxy_pid)