SlideShare a Scribd company logo
CUTTING
IN LINE
FOR
TAYLOR
SWIFT TIX
BY: HAYDEN
PAYNE
ABOUT ME
• My name is Hayden Payne
• Bachelor of Science in CIS from DeVry University
• Consultant (test engineer) at Centric Consulting –
2 years
WHERE IT ALL BEGAN
• Dedicated “Swiftie” since 2008
• Attended 5 Taylor Swift concerts
• Quick to buy new albums the moment they are released
• Every song, every lyric = memorized
REPUTATION STADIUM TOUR
• First Taylor Swift stadium tour ever
• First tour in 3 years
• I had to be there!
PAST TAYLOR TICKET SALES
• Taylor Swift tickets sell out in minutes
• Many tickets sold immediately to scalpers and bots
• Many true Swifties have been left ticketless
• Taylor wanted this to change!
TAYLOR’S SOLUTION
• Deter scalpers and bots
• Only give true fans first access to tickets
• Fan verification is required to access ticket sales
THE “TAYLOR SWIFT TIX” VERIFIED FAN
PROGRAM
• “Taylor Swift Tix” portal via Ticketmaster
• Fans had 3 months to participate in several boost activities to
compete for their spot in the virtual ticket line
• Fans were given unique presale codes to buy tickets at their
slotted times
EARNING BOOSTS IN THE PORTAL
High Boosts Medium Boosts Low Boosts
Purchase albums Watch Taylor’s music videos
Follow Taylor on social
media
Purchase merchandise Watch Taylor’s commercials
Make posts with
#TaylorSwiftTix
WHY DID I NEED TO DO
SOMETHING DIFFERENT?
OPTION 1: PURCHASE MERCHANDISE AND
ALBUMS
• Earn boosts for up to 13
album purchases
• Purchase merchandise
• $45 tshirts
• $60 rings
• $65 - $125 hoodies
OPTION 2: POST ALL ABOUT TAYLOR
• Make a post with
#TaylorSwiftTix every 24
hours
• Facebook, Twitter, and Tumblr
OPTION 3: WATCH VIDEOS
• 6 videos ranging from 30 sec. - 8 min.
• Earn boosts for 10 views per day, per video
• Daily Time Spent: 3 hours, 1 minute, 20
seconds
THE BEST OPTION?
AUTOMATION!
WATCH ALL VIDEOS 10X EACH WITH THE CLICK OF A BUTTON
TOOLS USED FOR AUTOMATION
• Cucumber framework
• WATIR
• Ruby
• Internet tutorials
CUCUMBER
• Testing framework that can read code written in plain English
text (Gherkin syntax)
• Components:
• Feature file – your tests, written in English, go here
• Step definition file – your code goes here
THE FEATURE FILE
• Consists of tests written in plain English text with Gherkin
syntax
• Each test is a “scenario” in the .feature file
• Example:
GIVEN, WHEN, THEN STEPS
• Given: puts the browser in a known state before you interact
with it
• Given I go to https://tickets.taylorswift.com
• When: an action that the user is performing
• When I click on the "Look What You Made Me Do" video
• Then: the outcome you are testing/expecting to happen
• Then the video plays successfully 10 times
THE STEP DEFINITION FILE
• Each step’s code goes in the Step Definition file (.rb)
• Step = Given, When, Then lines in the feature file
• Step logic is written in Ruby
• Steps use WATIR to interact with the web browser
• WATIR = Web Application Testing In Ruby
• Open source Ruby library for test automation
• Drives web browsers such as Chrome, Firefox, and Internet
Explorer
WATIR USAGE EXAMPLES
Create a new instance of Chrome:
@browser = Watir::Browser.new :chrome
Navigate to the ticket portal:
@browser.goto('https://tickets.taylorswift.com’)
Check the terms & conditions checkbox:
@browser.checkbox(value: 'tc_approval').set(true)
Click on the “Sign In with Ticketmaster” button:
@browser.button(id: 'tm-signup').click
Type my email into the textbox:
@browser.text_field(id: 'login-input').set ‘haydensemail@gmail.com’
COMPLICATIONS
• Unable to directly access login text boxes
• Video playback
• Portal login failed after so many frequent logins
• Ticketmaster sensed there was a bot
LOGIN TEXTBOXES INACCESSIBLE
WHY COULDN’T I ACCESS THE LOGIN
FIELDS?
• The login pop-up was a link to Ticketmaster’s site within
Taylor’s portal
• Ticketmaster’s login box was nested in an HTML element called
an iframe
And(/^I type "([^"]*)" in the email field$/) do |email|
@email = email
@browser.iframe(id: 'loginFrame').text_field(id: 'login-input').set @email
end
The solution that actually
worked:
And(/^I type "([^"]*)" in the email field$/) do |email|
@email = email
@browser.text_field(id: 'login-input').set @email
end
The solution I expected to
work:
VIDEO PLAYBACK
Then(/^I click "(.*)" and play it (d+) times$/) do |video, number_of_times|
i = 0
loop do
i += 1
@browser.div(class: 'card__title___Z4KpT', text: video).wait_until_present.click
@browser.div(class: %w(watch__frameWrapper___C0yO9 common__media___2ZNk9)).wait_until_present.click
sleep 45 if video.include?("glimpse")
sleep 275 unless video.include?("AT&T") || video.include?("glimpse")
sleep 125 if video.include?("AT&T")
sleep 160 if video.include?("Mountain")
@browser.button(class: %w(linkButton modal__close___1Hdd8)).click
break if i == number_of_times.to_i
end
puts "#{video} has been watched #{i} times."
end
MY SOLUTION
TICKETMASTER DETECTED A BOT
• Login failing inconsistently
• No way to predict error
When(/^I am successfully signed in$/) do
begin
@browser.div(class: 'topNav__navInner___3sF_O').wait_until_present
rescue
@browser.refresh unless @browser.url == 'https://tickets.taylorswift.com/entry'
steps %Q{And I check the box to accept the terms and conditions
And I click sign in with ticketmaster
And I type "#{@email}" in the email field
And I type my super secret password "#{@my_password}" into the password field
And I click sign in} unless @browser.url ==
'https://tickets.taylorswift.com/entry'
end
expect(@browser.div(class: 'topNav__navInner___3sF_O').wait_until_present.exists?)
end
MY SOLUTION
BONUS COMPLICATION
• Needed a way to walk others through the code without
revealing my Ticketmaster password
MY SOLUTION
def password_decode(password)
count = password.chars.count
i = 0
password_array = []
loop do
password_character = password.chars.values_at(i).join
password_array << password_character
i += 4
break if i == count
end
password_array.join.reverse
end
THE TAKEAWAY
• Automation = easy to learn
• No expertise required to get started!
• Use automation to fit your needs and make life easier
IN CASE YOU WERE WONDERING…
QUESTIONS?

More Related Content

Similar to Cutting in Line for Tickets by Hayden Payne

Webapp security testing
Webapp security testingWebapp security testing
Webapp security testingTomas Doran
 
Webapp security testing
Webapp security testingWebapp security testing
Webapp security testingTomas Doran
 
第5回SCDN - Things that become possible with HTML5
第5回SCDN - Things that become possible with HTML5第5回SCDN - Things that become possible with HTML5
第5回SCDN - Things that become possible with HTML5scdn
 
Maximize Your Production Effort (English)
Maximize Your Production Effort (English)Maximize Your Production Effort (English)
Maximize Your Production Effort (English)
slantsixgames
 
WAF ASM / Advance WAF - Brute force lior rotkovitch f5 sirt v5 clean
WAF ASM / Advance WAF - Brute force   lior rotkovitch  f5 sirt v5 cleanWAF ASM / Advance WAF - Brute force   lior rotkovitch  f5 sirt v5 clean
WAF ASM / Advance WAF - Brute force lior rotkovitch f5 sirt v5 clean
Lior Rotkovitch
 
Real World Selenium Testing
Real World Selenium TestingReal World Selenium Testing
Real World Selenium Testing
Mary Jo Sminkey
 
Getting Captioning Started on Campus: Lessons Learned
Getting Captioning Started on Campus: Lessons LearnedGetting Captioning Started on Campus: Lessons Learned
Getting Captioning Started on Campus: Lessons Learned
Dean Brusnighan
 
Digital storytelling (especially liveblogging)
Digital storytelling (especially liveblogging)Digital storytelling (especially liveblogging)
Digital storytelling (especially liveblogging)Steve Buttry
 
Under the Wire PowerShell workshop - BSides Augusta 2018
Under the Wire PowerShell workshop - BSides Augusta 2018Under the Wire PowerShell workshop - BSides Augusta 2018
Under the Wire PowerShell workshop - BSides Augusta 2018
Fernando Tomlinson, CISSP, MBA
 
Twitter for Trainers
Twitter for TrainersTwitter for Trainers
Twitter for Trainers
Kella Price
 
Hacking And Hosting Hot Potatoes
Hacking And Hosting Hot PotatoesHacking And Hosting Hot Potatoes
Hacking And Hosting Hot Potatoes
Derek Moore
 
My experience as Eclipse Contributor - ECE 2015
My experience as Eclipse Contributor - ECE 2015My experience as Eclipse Contributor - ECE 2015
My experience as Eclipse Contributor - ECE 2015
Patrik Suzzi
 
Using ICT in VCE Accounting: a Showcase
Using ICT in VCE Accounting: a ShowcaseUsing ICT in VCE Accounting: a Showcase
Using ICT in VCE Accounting: a Showcase
murcha
 
Run around Chrome Inspector
Run around Chrome Inspector Run around Chrome Inspector
Run around Chrome Inspector
Tiang Cheng
 
How to Sell a Halloween Contest
How to Sell a Halloween Contest How to Sell a Halloween Contest
How to Sell a Halloween Contest
Upland Second Street
 
From Blog to Multi Media with Anne Fabre of Anne's kitchen #FBC14
From Blog to Multi Media with Anne Fabre of Anne's kitchen #FBC14From Blog to Multi Media with Anne Fabre of Anne's kitchen #FBC14
From Blog to Multi Media with Anne Fabre of Anne's kitchen #FBC14
Food Blogger Connect
 
Windows Movie Maker
Windows Movie MakerWindows Movie Maker
Windows Movie Makeru2818660
 
Windows Movie Maker
Windows Movie MakerWindows Movie Maker
Windows Movie Maker
u2818660
 
Automated testing in javascript
Automated testing in javascriptAutomated testing in javascript
Automated testing in javascript
Michael Yagudaev
 

Similar to Cutting in Line for Tickets by Hayden Payne (20)

Webapp security testing
Webapp security testingWebapp security testing
Webapp security testing
 
Webapp security testing
Webapp security testingWebapp security testing
Webapp security testing
 
第5回SCDN - Things that become possible with HTML5
第5回SCDN - Things that become possible with HTML5第5回SCDN - Things that become possible with HTML5
第5回SCDN - Things that become possible with HTML5
 
Maximize Your Production Effort (English)
Maximize Your Production Effort (English)Maximize Your Production Effort (English)
Maximize Your Production Effort (English)
 
WAF ASM / Advance WAF - Brute force lior rotkovitch f5 sirt v5 clean
WAF ASM / Advance WAF - Brute force   lior rotkovitch  f5 sirt v5 cleanWAF ASM / Advance WAF - Brute force   lior rotkovitch  f5 sirt v5 clean
WAF ASM / Advance WAF - Brute force lior rotkovitch f5 sirt v5 clean
 
Real World Selenium Testing
Real World Selenium TestingReal World Selenium Testing
Real World Selenium Testing
 
Getting Captioning Started on Campus: Lessons Learned
Getting Captioning Started on Campus: Lessons LearnedGetting Captioning Started on Campus: Lessons Learned
Getting Captioning Started on Campus: Lessons Learned
 
Digital storytelling (especially liveblogging)
Digital storytelling (especially liveblogging)Digital storytelling (especially liveblogging)
Digital storytelling (especially liveblogging)
 
Under the Wire PowerShell workshop - BSides Augusta 2018
Under the Wire PowerShell workshop - BSides Augusta 2018Under the Wire PowerShell workshop - BSides Augusta 2018
Under the Wire PowerShell workshop - BSides Augusta 2018
 
Twitter for Trainers
Twitter for TrainersTwitter for Trainers
Twitter for Trainers
 
Hacking And Hosting Hot Potatoes
Hacking And Hosting Hot PotatoesHacking And Hosting Hot Potatoes
Hacking And Hosting Hot Potatoes
 
My experience as Eclipse Contributor - ECE 2015
My experience as Eclipse Contributor - ECE 2015My experience as Eclipse Contributor - ECE 2015
My experience as Eclipse Contributor - ECE 2015
 
Using ICT in VCE Accounting: a Showcase
Using ICT in VCE Accounting: a ShowcaseUsing ICT in VCE Accounting: a Showcase
Using ICT in VCE Accounting: a Showcase
 
Run around Chrome Inspector
Run around Chrome Inspector Run around Chrome Inspector
Run around Chrome Inspector
 
How to Sell a Halloween Contest
How to Sell a Halloween Contest How to Sell a Halloween Contest
How to Sell a Halloween Contest
 
From Blog to Multi Media with Anne Fabre of Anne's kitchen #FBC14
From Blog to Multi Media with Anne Fabre of Anne's kitchen #FBC14From Blog to Multi Media with Anne Fabre of Anne's kitchen #FBC14
From Blog to Multi Media with Anne Fabre of Anne's kitchen #FBC14
 
Windows Movie Maker
Windows Movie MakerWindows Movie Maker
Windows Movie Maker
 
Windows Movie Maker
Windows Movie MakerWindows Movie Maker
Windows Movie Maker
 
Automated testing in javascript
Automated testing in javascriptAutomated testing in javascript
Automated testing in javascript
 
Twitter4R OAuth
Twitter4R OAuthTwitter4R OAuth
Twitter4R OAuth
 

More from QA or the Highway

KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
QA or the Highway
 
Ravi Lakkavalli - World Quality Report.pptx
Ravi Lakkavalli - World Quality Report.pptxRavi Lakkavalli - World Quality Report.pptx
Ravi Lakkavalli - World Quality Report.pptx
QA or the Highway
 
Caleb Crandall - Testing Between the Buckets.pptx
Caleb Crandall - Testing Between the Buckets.pptxCaleb Crandall - Testing Between the Buckets.pptx
Caleb Crandall - Testing Between the Buckets.pptx
QA or the Highway
 
Thomas Haver - Mobile Testing.pdf
Thomas Haver - Mobile Testing.pdfThomas Haver - Mobile Testing.pdf
Thomas Haver - Mobile Testing.pdf
QA or the Highway
 
Thomas Haver - Example Mapping.pdf
Thomas Haver - Example Mapping.pdfThomas Haver - Example Mapping.pdf
Thomas Haver - Example Mapping.pdf
QA or the Highway
 
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdfJoe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
QA or the Highway
 
Sarah Geisinger - Continious Testing Metrics That Matter.pdf
Sarah Geisinger - Continious Testing Metrics That Matter.pdfSarah Geisinger - Continious Testing Metrics That Matter.pdf
Sarah Geisinger - Continious Testing Metrics That Matter.pdf
QA or the Highway
 
Jeff Sing - Quarterly Service Delivery Reviews.pdf
Jeff Sing - Quarterly Service Delivery Reviews.pdfJeff Sing - Quarterly Service Delivery Reviews.pdf
Jeff Sing - Quarterly Service Delivery Reviews.pdf
QA or the Highway
 
Leandro Melendez - Chihuahua Load Tests.pdf
Leandro Melendez - Chihuahua Load Tests.pdfLeandro Melendez - Chihuahua Load Tests.pdf
Leandro Melendez - Chihuahua Load Tests.pdf
QA or the Highway
 
Rick Clymer - Incident Management.pdf
Rick Clymer - Incident Management.pdfRick Clymer - Incident Management.pdf
Rick Clymer - Incident Management.pdf
QA or the Highway
 
Robert Fornal - ChatGPT as a Testing Tool.pptx
Robert Fornal - ChatGPT as a Testing Tool.pptxRobert Fornal - ChatGPT as a Testing Tool.pptx
Robert Fornal - ChatGPT as a Testing Tool.pptx
QA or the Highway
 
Federico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdfFederico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdf
QA or the Highway
 
Andrew Knight - Managing the Test Data Nightmare.pptx
Andrew Knight - Managing the Test Data Nightmare.pptxAndrew Knight - Managing the Test Data Nightmare.pptx
Andrew Knight - Managing the Test Data Nightmare.pptx
QA or the Highway
 
Melissa Tondi - Automation We_re Doing it Wrong.pdf
Melissa Tondi - Automation We_re Doing it Wrong.pdfMelissa Tondi - Automation We_re Doing it Wrong.pdf
Melissa Tondi - Automation We_re Doing it Wrong.pdf
QA or the Highway
 
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdfJeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
QA or the Highway
 
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptxDesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
QA or the Highway
 
Damian Synadinos - Word Smatter.pdf
Damian Synadinos - Word Smatter.pdfDamian Synadinos - Word Smatter.pdf
Damian Synadinos - Word Smatter.pdf
QA or the Highway
 
Lee Barnes - What Successful Test Automation is.pdf
Lee Barnes - What Successful Test Automation is.pdfLee Barnes - What Successful Test Automation is.pdf
Lee Barnes - What Successful Test Automation is.pdf
QA or the Highway
 
Jordan Powell - API Testing with Cypress.pptx
Jordan Powell - API Testing with Cypress.pptxJordan Powell - API Testing with Cypress.pptx
Jordan Powell - API Testing with Cypress.pptx
QA or the Highway
 
Carlos Kidman - Exploring AI Applications in Testing.pptx
Carlos Kidman - Exploring AI Applications in Testing.pptxCarlos Kidman - Exploring AI Applications in Testing.pptx
Carlos Kidman - Exploring AI Applications in Testing.pptx
QA or the Highway
 

More from QA or the Highway (20)

KrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdfKrishnaToolComparisionPPT.pdf
KrishnaToolComparisionPPT.pdf
 
Ravi Lakkavalli - World Quality Report.pptx
Ravi Lakkavalli - World Quality Report.pptxRavi Lakkavalli - World Quality Report.pptx
Ravi Lakkavalli - World Quality Report.pptx
 
Caleb Crandall - Testing Between the Buckets.pptx
Caleb Crandall - Testing Between the Buckets.pptxCaleb Crandall - Testing Between the Buckets.pptx
Caleb Crandall - Testing Between the Buckets.pptx
 
Thomas Haver - Mobile Testing.pdf
Thomas Haver - Mobile Testing.pdfThomas Haver - Mobile Testing.pdf
Thomas Haver - Mobile Testing.pdf
 
Thomas Haver - Example Mapping.pdf
Thomas Haver - Example Mapping.pdfThomas Haver - Example Mapping.pdf
Thomas Haver - Example Mapping.pdf
 
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdfJoe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
Joe Colantonio - Actionable Automation Awesomeness in Testing Farm.pdf
 
Sarah Geisinger - Continious Testing Metrics That Matter.pdf
Sarah Geisinger - Continious Testing Metrics That Matter.pdfSarah Geisinger - Continious Testing Metrics That Matter.pdf
Sarah Geisinger - Continious Testing Metrics That Matter.pdf
 
Jeff Sing - Quarterly Service Delivery Reviews.pdf
Jeff Sing - Quarterly Service Delivery Reviews.pdfJeff Sing - Quarterly Service Delivery Reviews.pdf
Jeff Sing - Quarterly Service Delivery Reviews.pdf
 
Leandro Melendez - Chihuahua Load Tests.pdf
Leandro Melendez - Chihuahua Load Tests.pdfLeandro Melendez - Chihuahua Load Tests.pdf
Leandro Melendez - Chihuahua Load Tests.pdf
 
Rick Clymer - Incident Management.pdf
Rick Clymer - Incident Management.pdfRick Clymer - Incident Management.pdf
Rick Clymer - Incident Management.pdf
 
Robert Fornal - ChatGPT as a Testing Tool.pptx
Robert Fornal - ChatGPT as a Testing Tool.pptxRobert Fornal - ChatGPT as a Testing Tool.pptx
Robert Fornal - ChatGPT as a Testing Tool.pptx
 
Federico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdfFederico Toledo - Extra-functional testing.pdf
Federico Toledo - Extra-functional testing.pdf
 
Andrew Knight - Managing the Test Data Nightmare.pptx
Andrew Knight - Managing the Test Data Nightmare.pptxAndrew Knight - Managing the Test Data Nightmare.pptx
Andrew Knight - Managing the Test Data Nightmare.pptx
 
Melissa Tondi - Automation We_re Doing it Wrong.pdf
Melissa Tondi - Automation We_re Doing it Wrong.pdfMelissa Tondi - Automation We_re Doing it Wrong.pdf
Melissa Tondi - Automation We_re Doing it Wrong.pdf
 
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdfJeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
Jeff Van Fleet and John Townsend - Transition from Testing to Leadership.pdf
 
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptxDesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
DesiradhaRam Gadde - Testers _ Testing in ChatGPT-AI world.pptx
 
Damian Synadinos - Word Smatter.pdf
Damian Synadinos - Word Smatter.pdfDamian Synadinos - Word Smatter.pdf
Damian Synadinos - Word Smatter.pdf
 
Lee Barnes - What Successful Test Automation is.pdf
Lee Barnes - What Successful Test Automation is.pdfLee Barnes - What Successful Test Automation is.pdf
Lee Barnes - What Successful Test Automation is.pdf
 
Jordan Powell - API Testing with Cypress.pptx
Jordan Powell - API Testing with Cypress.pptxJordan Powell - API Testing with Cypress.pptx
Jordan Powell - API Testing with Cypress.pptx
 
Carlos Kidman - Exploring AI Applications in Testing.pptx
Carlos Kidman - Exploring AI Applications in Testing.pptxCarlos Kidman - Exploring AI Applications in Testing.pptx
Carlos Kidman - Exploring AI Applications in Testing.pptx
 

Recently uploaded

UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Albert Hoitingh
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
Ralf Eggert
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
Laura Byrne
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
Product School
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
BookNet Canada
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
Peter Spielvogel
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 

Recently uploaded (20)

UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)PHP Frameworks: I want to break free (IPC Berlin 2024)
PHP Frameworks: I want to break free (IPC Berlin 2024)
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
The Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and SalesThe Art of the Pitch: WordPress Relationships and Sales
The Art of the Pitch: WordPress Relationships and Sales
 
How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...How world-class product teams are winning in the AI era by CEO and Founder, P...
How world-class product teams are winning in the AI era by CEO and Founder, P...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...Transcript: Selling digital books in 2024: Insights from industry leaders - T...
Transcript: Selling digital books in 2024: Insights from industry leaders - T...
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdfSAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
SAP Sapphire 2024 - ASUG301 building better apps with SAP Fiori.pdf
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 

Cutting in Line for Tickets by Hayden Payne

  • 2. ABOUT ME • My name is Hayden Payne • Bachelor of Science in CIS from DeVry University • Consultant (test engineer) at Centric Consulting – 2 years
  • 3. WHERE IT ALL BEGAN • Dedicated “Swiftie” since 2008 • Attended 5 Taylor Swift concerts • Quick to buy new albums the moment they are released • Every song, every lyric = memorized
  • 4. REPUTATION STADIUM TOUR • First Taylor Swift stadium tour ever • First tour in 3 years • I had to be there!
  • 5. PAST TAYLOR TICKET SALES • Taylor Swift tickets sell out in minutes • Many tickets sold immediately to scalpers and bots • Many true Swifties have been left ticketless • Taylor wanted this to change!
  • 6. TAYLOR’S SOLUTION • Deter scalpers and bots • Only give true fans first access to tickets • Fan verification is required to access ticket sales
  • 7. THE “TAYLOR SWIFT TIX” VERIFIED FAN PROGRAM • “Taylor Swift Tix” portal via Ticketmaster • Fans had 3 months to participate in several boost activities to compete for their spot in the virtual ticket line • Fans were given unique presale codes to buy tickets at their slotted times
  • 8. EARNING BOOSTS IN THE PORTAL High Boosts Medium Boosts Low Boosts Purchase albums Watch Taylor’s music videos Follow Taylor on social media Purchase merchandise Watch Taylor’s commercials Make posts with #TaylorSwiftTix
  • 9. WHY DID I NEED TO DO SOMETHING DIFFERENT?
  • 10. OPTION 1: PURCHASE MERCHANDISE AND ALBUMS • Earn boosts for up to 13 album purchases • Purchase merchandise • $45 tshirts • $60 rings • $65 - $125 hoodies
  • 11. OPTION 2: POST ALL ABOUT TAYLOR • Make a post with #TaylorSwiftTix every 24 hours • Facebook, Twitter, and Tumblr
  • 12. OPTION 3: WATCH VIDEOS • 6 videos ranging from 30 sec. - 8 min. • Earn boosts for 10 views per day, per video • Daily Time Spent: 3 hours, 1 minute, 20 seconds
  • 14. AUTOMATION! WATCH ALL VIDEOS 10X EACH WITH THE CLICK OF A BUTTON
  • 15.
  • 16. TOOLS USED FOR AUTOMATION • Cucumber framework • WATIR • Ruby • Internet tutorials
  • 17. CUCUMBER • Testing framework that can read code written in plain English text (Gherkin syntax) • Components: • Feature file – your tests, written in English, go here • Step definition file – your code goes here
  • 18. THE FEATURE FILE • Consists of tests written in plain English text with Gherkin syntax • Each test is a “scenario” in the .feature file • Example:
  • 19. GIVEN, WHEN, THEN STEPS • Given: puts the browser in a known state before you interact with it • Given I go to https://tickets.taylorswift.com • When: an action that the user is performing • When I click on the "Look What You Made Me Do" video • Then: the outcome you are testing/expecting to happen • Then the video plays successfully 10 times
  • 20. THE STEP DEFINITION FILE • Each step’s code goes in the Step Definition file (.rb) • Step = Given, When, Then lines in the feature file • Step logic is written in Ruby • Steps use WATIR to interact with the web browser
  • 21. • WATIR = Web Application Testing In Ruby • Open source Ruby library for test automation • Drives web browsers such as Chrome, Firefox, and Internet Explorer
  • 22. WATIR USAGE EXAMPLES Create a new instance of Chrome: @browser = Watir::Browser.new :chrome Navigate to the ticket portal: @browser.goto('https://tickets.taylorswift.com’) Check the terms & conditions checkbox: @browser.checkbox(value: 'tc_approval').set(true) Click on the “Sign In with Ticketmaster” button: @browser.button(id: 'tm-signup').click Type my email into the textbox: @browser.text_field(id: 'login-input').set ‘haydensemail@gmail.com’
  • 23. COMPLICATIONS • Unable to directly access login text boxes • Video playback • Portal login failed after so many frequent logins • Ticketmaster sensed there was a bot
  • 25. WHY COULDN’T I ACCESS THE LOGIN FIELDS? • The login pop-up was a link to Ticketmaster’s site within Taylor’s portal • Ticketmaster’s login box was nested in an HTML element called an iframe
  • 26. And(/^I type "([^"]*)" in the email field$/) do |email| @email = email @browser.iframe(id: 'loginFrame').text_field(id: 'login-input').set @email end The solution that actually worked: And(/^I type "([^"]*)" in the email field$/) do |email| @email = email @browser.text_field(id: 'login-input').set @email end The solution I expected to work:
  • 28. Then(/^I click "(.*)" and play it (d+) times$/) do |video, number_of_times| i = 0 loop do i += 1 @browser.div(class: 'card__title___Z4KpT', text: video).wait_until_present.click @browser.div(class: %w(watch__frameWrapper___C0yO9 common__media___2ZNk9)).wait_until_present.click sleep 45 if video.include?("glimpse") sleep 275 unless video.include?("AT&T") || video.include?("glimpse") sleep 125 if video.include?("AT&T") sleep 160 if video.include?("Mountain") @browser.button(class: %w(linkButton modal__close___1Hdd8)).click break if i == number_of_times.to_i end puts "#{video} has been watched #{i} times." end MY SOLUTION
  • 29. TICKETMASTER DETECTED A BOT • Login failing inconsistently • No way to predict error
  • 30. When(/^I am successfully signed in$/) do begin @browser.div(class: 'topNav__navInner___3sF_O').wait_until_present rescue @browser.refresh unless @browser.url == 'https://tickets.taylorswift.com/entry' steps %Q{And I check the box to accept the terms and conditions And I click sign in with ticketmaster And I type "#{@email}" in the email field And I type my super secret password "#{@my_password}" into the password field And I click sign in} unless @browser.url == 'https://tickets.taylorswift.com/entry' end expect(@browser.div(class: 'topNav__navInner___3sF_O').wait_until_present.exists?) end MY SOLUTION
  • 31. BONUS COMPLICATION • Needed a way to walk others through the code without revealing my Ticketmaster password
  • 32.
  • 33. MY SOLUTION def password_decode(password) count = password.chars.count i = 0 password_array = [] loop do password_character = password.chars.values_at(i).join password_array << password_character i += 4 break if i == count end password_array.join.reverse end
  • 34. THE TAKEAWAY • Automation = easy to learn • No expertise required to get started! • Use automation to fit your needs and make life easier
  • 35. IN CASE YOU WERE WONDERING…