How do I programatically submit a webform via drupal_form_submit?
I used PhpStorm and xdebug to step through the form.inc code and finally found the correct structure for my $form_state.  The structure I posted was close, just needed to add the 'op' =&gt; t('Submit').  See my final working code below.

To answer my questions:


Yes, drupal_form_submit is what I should be using.
See code below for the magical $form_state structure.


&lt;?php
$form_id = 'webform_client_form_55805';
$form_state = array(
  'values' =&gt; array(
    'submitted' =&gt; array(
      'first_name' =&gt; 'David',
    ),
    'op' =&gt; t('Submit'),
  ),
);
$node = node_load(55805);
$submission = (object) array();

drupal_form_submit($form_id, $form_state, $node, $submission);
$form_errors = form_get_errors();
?&gt;