How about this?
// Main Context Object
With(
// Assistant Context
With(
{
// Using Your Examples
collection1: [{ 'Employee Name': "John Smith", 'Employee ID': 10101, 'Test ID': 101, 'Test Result': 1 }],
collection2: [{ 'Employee Name': "John Smith", 'Employee ID': 10101, 'Test ID': 102, 'Test Result': .75 }],
collection3: [{ 'Employee Name': "John Smith", 'Employee ID': 10101, 'Test ID': 103, 'Test Result': .90 }]
},
{
// Copy Collections to Main Context
collection1: collection1,
collection2: collection2,
collection3: collection3,
// Unique List of Employee IDs
allEmployeeIDs: Distinct(Ungroup(Table({t:collection1}, {t:collection2}, {t:collection3}), t), 'Employee ID')
}
),
// Create Collection
ClearCollect(
colCombined,
ForAll(
allEmployeeIDs As ThisEmployee,
With(
// Load Each Collection Record
{
col1: LookUp(collection1, 'Employee ID' = ThisEmployee.Value),
col2: LookUp(collection2, 'Employee ID' = ThisEmployee.Value),
col3: LookUp(collection3, 'Employee ID' = ThisEmployee.Value)
},
{
// Coalesce Names In Case Employees Aren't In All Collections
'Employee Name': Coalesce(col1.'Employee Name', col2.'Employee Name', col3.'Employee Name'),
'Employee ID': ThisEmployee.Value,
'Test ID (Collection 1)': col1.'Test ID',
'Test Result (Collection 1)': col1.'Test Result',
'Test ID (Collection 2)': col2.'Test ID',
'Test Result (Collection 2)': col2.'Test Result',
'Test ID (Collection 3)': col3.'Test ID',
'Test Result (Collection 3)': col3.'Test Result'
}
)
)
)
)
This produces this collection:

I made a slight modification to show that the Coalesce() works..
// Main Context Object
With(
// Assistant Context
With(
{
// Using Your Examples
collection1: [{ 'Employee Name': "John Smith", 'Employee ID': 10101, 'Test ID': 101, 'Test Result': 1 }],
collection2: [
{ 'Employee Name': "John Smith", 'Employee ID': 10101, 'Test ID': 102, 'Test Result': .75 },
{ 'Employee Name': "Jennifer Aniston", 'Employee ID': 11011, 'Test ID': 202, 'Test Result': 1 }
],
collection3: [
{ 'Employee Name': "John Smith", 'Employee ID': 10101, 'Test ID': 103, 'Test Result': .90 },
{ 'Employee Name': "Jennifer Aniston", 'Employee ID': 11011, 'Test ID': 203, 'Test Result': 1 }
]
},
{
// Copy Collections to Main Context
collection1: collection1,
collection2: collection2,
collection3: collection3,
// Unique List of Employee IDs
allEmployeeIDs: Distinct(Ungroup(Table({t:collection1}, {t:collection2}, {t:collection3}), t), 'Employee ID')
}
),
// Create Collection
ClearCollect(
colCombined,
ForAll(
allEmployeeIDs As ThisEmployee,
With(
// Load Each Collection Record
{
col1: LookUp(collection1, 'Employee ID' = ThisEmployee.Value),
col2: LookUp(collection2, 'Employee ID' = ThisEmployee.Value),
col3: LookUp(collection3, 'Employee ID' = ThisEmployee.Value)
},
{
// Coalesce Names In Case Employees Aren't In All Collections
'Employee Name': Coalesce(col1.'Employee Name', col2.'Employee Name', col3.'Employee Name'),
'Employee ID': ThisEmployee.Value,
'Test ID (Collection 1)': col1.'Test ID',
'Test Result (Collection 1)': col1.'Test Result',
'Test ID (Collection 2)': col2.'Test ID',
'Test Result (Collection 2)': col2.'Test Result',
'Test ID (Collection 3)': col3.'Test ID',
'Test Result (Collection 3)': col3.'Test Result'
}
)
)
)
)
That produces this:
