I can't give you advice on using Magmi, but I'll put in a shameless plug for a free module called ApiImport. It's ImportExport-based and it's free.
Imports are all done by providing your data as an array. Importing a single configurable product is as easy as:
<?php
require_once 'app/Mage.php';
Mage::init();
$entities = array(
// Configurable product.
array(
'description' => 'Some description',
'_attribute_set' => 'Default',
'short_description' => 'Some short description',
'_product_websites' => 'base',
'status' => Mage_Catalog_Model_Product_Status::STATUS_ENABLED,
'visibility' => Mage_Catalog_Model_Product_Visibility::VISIBILITY_BOTH,
'tax_class_id' => 0,
'is_in_stock' => 1,
'sku' => 'some_configurable',
'_type' => Mage_Catalog_Model_Product_Type::TYPE_CONFIGURABLE,
'name' => 'Some configurable',
'price' => rand(1, 1000),
'weight' => rand(1, 1000),
// Link the first simple product:
'_super_products_sku' => 'my_red_blue_simple',
'_super_attribute_code' => 'color',
'_super_attribute_option' => 'blue'
),
// Now optionally link some more simple products:
array(
'_super_products_sku' => 'my_red_simple_product',
'_super_attribute_code' => 'color',
'_super_attribute_option' => 'red'
)
);
// Start the import.
Mage::getModel('api_import/import_api')->importEntities(
$entities,
Mage_ImportExport_Model_Export_Entity_Product::getEntityTypeCode()
);
If you want more help on programmatically generating these entities, you could have a look at Test helper in ApiImport. It can generate random products for all product types and customer.
I also recommend you read the Frequently Asked Questions first before asking any questions :)
Good luck.