원클릭으로
test-automation
Master test automation with Selenium, Cypress, Playwright, framework design, and maintainable automated tests.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Master test automation with Selenium, Cypress, Playwright, framework design, and maintainable automated tests.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Master business documentation including BRD, FRD, specifications, and technical documentation for clear communication and requirements management.
Master process modeling with BPMN, flowcharts, swimlane diagrams, and process optimization techniques for business process improvement.
Master requirements gathering techniques including interviews, workshops, observation, and documentation for effective requirement elicitation.
Master use case development with actors, scenarios, preconditions, postconditions, and detailed specifications for comprehensive requirements.
Master data visualization with chart selection, dashboard design, Tableau, Power BI, and effective data storytelling.
Master Excel for data analysis with pivot tables, formulas, Power Query, and advanced Excel techniques.
| name | test-automation |
| description | Master test automation with Selenium, Cypress, Playwright, framework design, and maintainable automated tests. |
Build robust automated test suites using modern frameworks like Selenium, Cypress, and Playwright for efficient regression testing.
// cypress/e2e/login.cy.js
describe('User Login', () => {
beforeEach(() => {
cy.visit('/login')
})
it('should login successfully with valid credentials', () => {
cy.get('[data-testid="email"]').type('user@example.com')
cy.get('[data-testid="password"]').type('SecurePass123!')
cy.get('[data-testid="login-btn"]').click()
cy.url().should('include', '/dashboard')
cy.get('[data-testid="welcome-msg"]')
.should('contain', 'Welcome')
})
it('should show error with invalid credentials', () => {
cy.get('[data-testid="email"]').type('invalid@example.com')
cy.get('[data-testid="password"]').type('wrong')
cy.get('[data-testid="login-btn"]').click()
cy.get('[data-testid="error-msg"]')
.should('be.visible')
.and('contain', 'Invalid credentials')
})
})
// pages/LoginPage.js
class LoginPage {
get emailInput() { return cy.get('[data-testid="email"]') }
get passwordInput() { return cy.get('[data-testid="password"]') }
get loginButton() { return cy.get('[data-testid="login-btn"]') }
get errorMessage() { return cy.get('[data-testid="error-msg"]') }
login(email, password) {
this.emailInput.type(email)
this.passwordInput.type(password)
this.loginButton.click()
}
verifyLoginError(message) {
this.errorMessage.should('contain', message)
}
}
export default new LoginPage()
// Test using Page Object
import LoginPage from '../pages/LoginPage'
it('login test', () => {
cy.visit('/login')
LoginPage.login('user@example.com', 'password')
})
@Test
public void testGetUser() {
given()
.baseUri("https://api.example.com")
.header("Authorization", "Bearer " + token)
.pathParam("id", "123")
.when()
.get("/users/{id}")
.then()
.statusCode(200)
.body("id", equalTo("123"))
.body("name", notNullValue())
.body("email", containsString("@"));
}