Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

proposal: UI autotest #614

Closed
22 tasks
idbeta opened this issue Oct 28, 2020 · 6 comments
Closed
22 tasks

proposal: UI autotest #614

idbeta opened this issue Oct 28, 2020 · 6 comments
Assignees
Labels
discuss proposal wait for update 1. Solution 2. Due date 3. Assignees if needed

Comments

@idbeta
Copy link
Contributor

idbeta commented Oct 28, 2020

Background

Automated testing is very important to ensure quality. For apisix-dashboard, we need to add UI automated testing to CI.

Plan

  1. We plan to use the e2e test solution recommended by antd, which is base on Jest and Puppeteer.
  2. We split the corresponding test cases according to different pages.
  3. We will add an independent action integrated UI automated test in CI.

Test cases

  1. Login & Logout
  • login: correct and incorrect password/username
  • logout
  1. Metrics
  • page jump:
  1. Route
  • create: long description and name include common symbols
  • edit:
  • delete:
  • search: full match, partial match, no match
  • big data environment test: route operation under more than 200 routes
  1. SSL
  • enter correct certificate and private key:
  • enter unmatched certificate and private key:
  • upload correct certificate and private key:
  • upload unmatched certificate and private key:

5.Upstream

  • create: long description and name include common symbols
  • edit:
  • delete:
  • search: full match, partial match, no match
  • big data environment test: upstream operation under more than 200 upstreams
  1. Consumer
  • create: not enable authentication plugin, create the same name consumer
  • edit:
  • delete:
  1. Setting
  • page jump:
  • set grafana address:

related issue #44
@juzhiyuan @LiteSun

@LiteSun
Copy link
Member

LiteSun commented Oct 29, 2020

Any suggestions for this e2e test solution?
@liuxiran @bzp2010

@juzhiyuan
Copy link
Member

Just hold on, give us no longer than 3 days to check this issue.

@juzhiyuan
Copy link
Member

juzhiyuan commented Oct 29, 2020

  1. Route
    a. Please adjust those cases' order, it should be: create, get, put, search, delete, get
    b. how to generate 200+ records? through Puppeteer or admin API?

  2. SSL
    a. update case
    b. delete case

  3. Consumer
    a. it should have all cases like Upstream or Route(CRUD)

  4. Setting
    a. Just set an URL then refresh and check if they are the same.

  5. Other
    a. Don't need check plugin currently, because the JSONSchema will check if the data is correct, and it's too complicated to check UI currently.

@moonming
Copy link
Member

This proposal looks good to me.
If it is added to github actions, I suggest that each type of test use a separate action, so that it can be processed in parallel

@idbeta
Copy link
Contributor Author

idbeta commented Nov 3, 2020

  • b. how to generate 200+ records? through Puppeteer or admin API?

I think it should generate by backend API, but we could lower its priority.
The primary goal should be to ensure that the workflow of the dashboard is correct under the general situation.

@juzhiyuan juzhiyuan added the wait for update 1. Solution 2. Due date 3. Assignees if needed label Nov 24, 2020
@juzhiyuan juzhiyuan removed this from the 2.2 milestone Nov 24, 2020
@juzhiyuan
Copy link
Member

I will close this tracking issue, for there have a lot of detailed issues to track.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discuss proposal wait for update 1. Solution 2. Due date 3. Assignees if needed
Projects
None yet
Development

No branches or pull requests

4 participants