Auto-Ignore & Equivalent Fields¶
ASM analyzes every field in your test case, but not every field needs configuration. Submit buttons, timestamps, and other static values work fine with recorded values. Configuring them wastes memory and clutters the Fields View.
Auto-ignore rules tell ASM to skip specific fields, saving memory and keeping configuration clean. Equivalent field names help ASM correlate fields when response and request use different names for the same thing (common in JSON/XML APIs).
This guide covers what ASM ignores by default, when to add custom ignore rules, and how to map equivalent field names across frameworks.
What ASM Ignores by Default¶
Built-In Auto-Ignore Behavior¶
ASM's rules-based engine automatically ignores certain field patterns without manual configuration:
Common auto-ignored patterns:
- ✅ Submit button values:
btnSubmit=Submit,action=continue - ✅ Static labels: Form field values that never change
- ✅ Client-side only fields: JavaScript-managed values not sent to server
- ✅ Known static patterns: Framework-specific constants
How it works: ASM's 300+ detection rules include ignore patterns that recognize common static field types. When a field matches an ignore pattern, ASM skips it. It doesn't appear in Fields View and doesn't consume memory during load tests.
Check what was ignored: After ASM runs, you won't see ignored fields in Fields View. If a field should have been ignored but wasn't, add it manually (see below).
Why Auto-Ignore Matters¶
Performance: More Virtual Users Per Engine¶
Every configured field consumes memory during load tests. Configure 1000 static fields unnecessarily and you're wasting memory that could support more virtual users.
Memory calculation:
1 configured field = ~100 bytes per virtual user
1000 unnecessary fields = 100 KB per VU
10,000 VUs = 1 GB wasted memory
Fewer VUs fit on each load engine, which means higher cloud costs. The fix is simple: only configure fields that actually need correlation. Ignoring static fields means more virtual users per dollar.
Cleaner Configuration: Easier Troubleshooting¶
Large test cases (100+ pages, 1000+ fields) become hard to navigate when Fields View is cluttered with static values.
Without auto-ignore:
- Fields View shows 2000 fields (500 dynamic, 1500 static)
- Finding the field causing replay failures requires scrolling through clutter
- Hard to see which fields ASM actually configured
With auto-ignore:
- Fields View shows 500 fields (only dynamic ones)
- Easy to spot misconfigured fields (grey vs white background)
- Faster troubleshooting
Show Ignored Fields
When to Use Custom Auto-Ignore Rules¶
Scenario 1: Application-Specific Static Fields¶
Problem: Your application has static fields ASM doesn't recognize.
Example: E-commerce site always posts currency=USD (never changes).
Without ignore rule: ASM configures currency field, extracts USD from every response, wastes memory.
With ignore rule: Add currency to ignore list → ASM skips it → uses recorded USD value → saves memory.
Scenario 2: Repeat Patterns Across Many Test Cases¶
Problem: You record 50 test cases, all have btnSubmit=Submit that doesn't need configuration.
Without ignore rule: Manually remove btnSubmit from Fields View in all 50 test cases (tedious).
With ignore rule: Add btnSubmit to global ignore list → ASM skips it in all test cases automatically.
Scenario 3: Timestamps You Control¶
Problem: Application posts timestamp=1234567890 from client-side JavaScript (not server-generated).
Typical behavior: ASM tries to correlate timestamp (finds it in responses, configures extraction).
Reality: Timestamp is client-generated, doesn't come from server, ASM correlation breaks.
Solution: Ignore timestamp → ASM skips correlation → client-side JavaScript generates fresh value during replay.
Scenario 4: Known Static Values¶
Problem: Form has hidden field version=2.0 that never changes.
Without ignore rule: ASM configures version, clutters Fields View.
With ignore rule: Add version to ignore list (by name or value) → ASM skips.
Configuring Auto-Ignore Rules¶
Accessing Ignore Preferences¶
- Window → Preferences (or Load Tester → Preferences on macOS)
- Web Performance → Configuration Wizards → Ignored Fields
- Two ignore lists appear:
- Ignored Names: Ignore fields by name (e.g.,
btnSubmit) - Ignored Values: Ignore fields by value (e.g.,
Submit)
Ignore by Name¶
Use when: You know the field name that should always be ignored.
Example: Ignore all submit buttons named btnSubmit
How to configure:
- Click "Add" next to Ignored Names list
- Enter field name exactly:
btnSubmit - Click OK
Result: ASM skips any field named btnSubmit in all test cases.
Common field names to ignore:
btnSubmit
action
submit
continue
cancel
timestamp
clientTime
_ck (client-side cookie tracking)
__utma (Google Analytics)
Ignore by Value¶
Use when: You know the field value that indicates a static field.
Example: Ignore all fields with value Submit (regardless of name)
How to configure:
- Click "Add" next to Ignored Values list
- Enter field value exactly:
Submit - Click OK
Result: ASM skips any field with value Submit in all test cases.
Common field values to ignore:
Ignore by Name OR Value¶
You can use both lists together:
| Ignored Names | OR | Ignored Values |
|---|---|---|
btnSubmit |
Submit |
Result: ASM ignores fields that match either condition:
- ✅ Field named
btnSubmit(regardless of value) - ✅ Field with value
Submit(regardless of name)
Why OR, not AND: More flexible, catching static fields using different naming conventions.
Testing Ignore Rules¶
After adding ignore rules:
- Right-click test case → Configure → Application State...
- ASM wizard runs with new ignore rules
- Open Fields View; ignored fields should be absent
- Run replay to verify static values still work
If replay fails after ignoring: Field wasn't actually static, remove from ignore list and let ASM configure it.
Best Practices for Auto-Ignore¶
1. Start Conservatively¶
Don't ignore fields you're not sure about. If a field might be dynamic, let ASM configure it.
Safe to ignore:
- ✅ Submit button values you recognize (
Submit,Continue,Next) - ✅ Known static hidden fields (
version,appId) - ✅ Client-side timestamps (generated by JavaScript)
Risky to ignore:
- ❌ Fields with numeric values (could be dynamic IDs)
- ❌ Fields you've never seen before
- ❌ Anything you're uncertain about
Rule: When in doubt, let ASM configure it. You can always add ignore rules later.
2. Test After Adding Ignore Rules¶
Always run replay after adding ignore rules to verify:
- ✅ Ignored fields don't cause replay failures
- ✅ Application accepts recorded static values
- ✅ No unexpected behavior changes
If replay fails: Remove recently added ignore rule, re-run ASM, test again.
3. Use Name-Based Ignores for Consistency¶
Prefer "Ignored Names" over "Ignored Values" when possible.
Why: Field names are usually consistent across test cases. Field values can vary.
Example:
- Good: Ignore by name
btnSubmit→ Catches all submit buttons - Risky: Ignore by value
Submit→ Might ignore legitimate dynamic fields that happen to have value "Submit"
4. Don't Ignore Blank Values¶
Blank Value Trap
If you add a blank entry to the Ignored Values list, ASM will ignore all fields with blank values. This is usually wrong. Many dynamic fields are blank in the recording but get values during replay.
Common mistake:
- Add empty string to Ignored Values (accidentally)
- ASM ignores all blank fields
- Replay fails because dynamic fields with blank recorded values weren't configured
Fix: Check ignore lists for blank entries, remove them.
5. Document Why Fields Are Ignored¶
Keep notes on why you added ignore rules, especially for application-specific patterns.
Example notes (external document or comments):
Ignored "currency" - always USD, never changes
Ignored "btnSubmit" - submit button value
Ignored timestamps - client-side generated, not from server
Why: You (or teammates) might wonder later why certain fields aren't configured.
Equivalent Field Names¶
The Problem: Name Mismatches in JSON/XML¶
Some applications use different field names in responses vs. requests:
Example: JSON API
Server sends (response):
Client posts (request):
Name mismatch:
- Response:
userId(camelCase) - Request:
user_id(snake_case)
Problem: ASM extracts userId from JSON, but test case posts field named user_id. ASM doesn't know they're the same field with different naming conventions, fails to correlate them.
Result: Replay uses hardcoded user_id=12345 instead of fresh extracted value.
The Solution: Equivalent Field Name Mappings¶
Equivalent field names tell ASM that two different names refer to the same field.
Mapping: userId (source name in response) ↔ user_id (destination name in request)
How it works:
- ASM extracts
userId=67890from JSON response - Checks equivalency map:
userIdmaps touser_id - Assigns to field: Uses extracted value
67890foruser_idfield - Replay posts:
user_id=67890(fresh value)
Configuring Equivalent Field Names¶
Accessing Equivalent Field Names Preferences¶
- Window → Preferences
- Web Performance → Configuration Wizards → Application State → Equivalent Field Names
- Preferences page shows equivalency table
Adding an Equivalency Mapping¶
- Select Rule Family (JSON, XML, etc.)
- Click "Add"
- Enter mapping:
- Source Name: Name in response content (e.g.,
userId) - Destination Field Name: Name in Fields View / POST data (e.g.,
user_id) - Click OK
Result: ASM correlates userId from responses to user_id field in requests.
Rule Families¶
Rule family determines which detection rules use the equivalency mapping.
Common rule families:
- JSON: For JSON API responses
- XML: For XML/SOAP responses
- HTML: For HTML form fields (rarely needed)
How to choose: Match the response content type where source name appears.
Example: If userId appears in JSON responses, use JSON rule family.
Exact Match vs. Regular Expression¶
Exact match (default):
- Source Name:
userId - Destination:
user_id - Matches: Only exact
userId→user_id
Regular expression (advanced):
- Source Name:
([a-z]+)Id - Destination:
$1_id - Matches:
userId→user_id,sessionId→session_id,productId→product_id
When to use regex:
- ✅ Many fields follow same naming pattern (camelCase → snake_case)
- ✅ Want one mapping to handle multiple fields
- ✅ Field names vary but pattern is consistent
Regex with capture groups: If regex has capture groups (...), they must match but can appear in any order.
Common Equivalent Field Name Scenarios¶
Scenario 1: camelCase (JSON) → snake_case (Form POST)¶
Problem: API sends camelCase, forms post snake_case.
Example:
- Response:
firstName,lastName,emailAddress - Request:
first_name,last_name,email_address
Solution: Add three exact-match mappings (or one regex).
Exact mappings:
| Source Name | Destination Field Name |
|---|---|
firstName |
first_name |
lastName |
last_name |
emailAddress |
email_address |
Regex mapping (advanced):
| Source Name (regex) | Destination (regex) |
|---|---|
([a-z]+)([A-Z][a-z]+) |
$1_$2 (lowercase) |
Scenario 2: XML Namespaces¶
Problem: XML uses namespaced element names, form fields don't.
Example:
- XML Response:
<ns:userId>12345</ns:userId> - Form POST:
userId=12345
Solution: Map ns:userId → userId
Configuration:
| Source Name | Destination Field Name |
|---|---|
ns:userId |
userId |
Rule Family: XML
Scenario 3: Abbreviated Names in Responses¶
Problem: Server abbreviates field names in responses, full names in forms.
Example:
- Response:
uId,sessToken - Request:
userId,sessionToken
Solution: Map abbreviated to full names.
Configuration:
| Source Name | Destination Field Name |
|---|---|
uId |
userId |
sessToken |
sessionToken |
Scenario 4: Different Casing¶
Problem: Response uses lowercase, form uses mixed case.
Example:
- Response:
userid - Request:
userId
Solution: Map lowercase to mixed case.
Configuration:
| Source Name | Destination Field Name |
|---|---|
userid |
userId |
Note: ASM is case-sensitive. userId ≠ userid without equivalency mapping.
Troubleshooting Auto-Ignore & Equivalencies¶
Problem: Replay Fails After Adding Ignore Rule¶
Symptoms: Added field to ignore list, replay now fails with errors.
Possible cause: Field wasn't actually static, needs correlation.
Solution:
- Remove field from ignore list
- Re-run ASM to configure the field
- Check if field value changes between recording and replay
- If truly static, investigate why replay fails (may be unrelated)
Problem: Equivalency Mapping Not Working¶
Symptoms: Added equivalency mapping, ASM still doesn't correlate field.
Possible causes:
- Wrong rule family: Source name in XML but mapped under JSON family
- Spelling error: Source or destination name misspelled
- ASM not re-run: Equivalencies only apply when ASM wizard runs
- Case mismatch:
userId≠UserID(case-sensitive)
Solutions:
Verify rule family:
- Check response Content-Type:
application/json→ JSON family - Check response Content-Type:
text/xml→ XML family
Double-check spelling:
- View response content, copy/paste exact source name
- Check Fields View for exact destination field name
Re-run ASM:
- Right-click test case → Configure → Application State...
- Equivalency mappings only take effect during ASM run
Check case sensitivity:
- Source name must match EXACTLY (case-sensitive)
- Destination name must match EXACTLY
Problem: Too Many Fields Ignored¶
Symptoms: Fields View empty or very sparse after ASM, replay fails.
Possible cause: Ignore rules too broad, caught dynamic fields.
Example: Added blank value to Ignored Values, now all blank fields ignored.
Solution:
- Review ignore lists for overly broad patterns
- Remove problematic entries
- Re-run ASM
Problem: Regex Equivalency Matches Wrong Fields¶
Symptoms: Regex mapping correlates unintended fields.
Possible cause: Regex pattern too broad.
Example:
- Pattern:
.*Id(any field ending in "Id") - Matches:
userId✅,recordId✅,gridId❌ (not intended)
Solution: Make regex more specific.
Fixed pattern: ^(user|session)Id$ (only userId or sessionId)
Troubleshooting Help
Auto-Ignore vs. Manual Removal¶
When to Use Auto-Ignore¶
Use auto-ignore preferences when:
- ✅ Same field appears in multiple test cases (set it once, applies everywhere)
- ✅ Field pattern is predictable (e.g., all submit buttons named
btnSubmit) - ✅ You want consistent ignore behavior across all test cases
Benefits:
- Set once, applies to all future test cases automatically
- No need to manually remove field from each test case
- Cleaner, more maintainable configuration
When to Manually Remove Fields¶
Manually remove from Fields View when:
- ✅ Field is specific to one test case (not a general pattern)
- ✅ You want fine-grained control (ignore in this test case, configure in others)
- ✅ Temporary ignore (might need to correlate it later)
How to manually remove:
- Open Fields View
- Right-click field → Delete
- Field removed from this test case only (not global)
Difference:
- Auto-ignore: Global rule, applies to all test cases
- Manual removal: Per test case, doesn't affect others
Performance Impact: Measuring the Benefit¶
Before Auto-Ignore¶
Example test case:
- 2000 total fields
- 1500 static (submit buttons, timestamps, version numbers)
- 500 dynamic (session cookies, CSRF tokens, user data)
Memory per VU:
After Auto-Ignore¶
Same test case:
- 500 configured fields (only dynamic ones)
- 1500 fields ignored
Memory per VU:
Result: 75% memory reduction, allowing 4x more VUs on the same hardware.
Real-World Scenario¶
Cloud load test (AWS, 10,000 VUs):
- Without auto-ignore: 2 GB/VU x 10,000 = 20 GB total, requires 4x c5.4xlarge instances (~$2.50/hour)
- With auto-ignore: 500 MB/VU x 10,000 = 5 GB total, requires 1x c5.4xlarge instance (~$0.68/hour)
Over an 8-hour test, that's $14.56 saved per run.
Performance Win
Auto-ignore isn't just cleaner configuration. It's real money saved on cloud load tests.
Next Steps¶
- Run ASM - See what ASM auto-ignores by default
- Extractors & Boundary Extraction - Custom extraction for complex fields
- Advanced Field Assignments - Manual field configuration
- Running a Load Test - See auto-ignore memory savings in action
Related Topics: