Delete redundant article sections Change-Id: I2e51aeba37f3789ef2315b4a4d4f541ff81e947d
3.8 KiB
How To Edit E2E Case
For specific introduction and usage of Cypress, please refer to Official document.
Here we mainly give the E2E use cases corresponding to the resources
in the front-end page of Skyline-console, and use function defined in
test/e2e/support
The following is an introduction, taking the instance use case
test/e2e/integration/pages/compute/instance.spec.js
as an
example
Generally, when testing the corresponding functions of a resource, follow the following order
1. Prepare relevant variables in text
- Required parameters when creating a resource, such as: name, password
- Required parameters when editing resources, such as: new name
- When creating an associated resource, the name of the associated resource, such as: network name, router name, volume name
const uuid = Cypress._.random(0, 1e6);
const name = `e2e-instance-${uuid}`;
const newname = `${name}-1`;
const password = 'passW0rd_1';
const volumeName = `e2e-instance-attach-volume-${uuid}`;
const networkName = `e2e-network-for-instance-${uuid}`;
const routerName = `e2e-router-for-instance-${uuid}`;
2. Login before operation
- If you are operating console resources, please use
cy.login
- If you are operating administrator resource, please use
cy.loginAdmin
- Generally, the variable
listUrl
is used in thelogin
andloginAdmin
functions, that is, directly access the page where the resource is located after logging in
beforeEach(() => {
.login(listUrl);
cy; })
3. Create associated resources
Create associated resources, use the resource creation function
provided in resource-commands.js
, take the test instance as
an example
- Create a network for testing to create a instance, attach interface
.createNetwork({ name: networkName }); cy
- Create router
cy.createRouter
to ensure that the floating IP is reachable when testing the associated floating IP- The router created in the following way will open the external
network gateway and bind the subnet of the
networkName
network
- The router created in the following way will open the external
network gateway and bind the subnet of the
.createRouter({ name: routerName, network: networkName }); cy
- Create floating ip
cy.createFip
, Used to test associate floating ip
.createFip(); cy
- Create volume
cy.createVolume
(Used to test attach volume)
.createVolume(volumeName); cy
4. Write cases
Write cases for creating resources
Write use cases for accessing resource details
Write use cases corresponding to all operations of resources separately
Generally, the use case of the
edit
operation is written later, and then the use case of thedelete
operation is written, so that you can test whether the editing is effective
5. delete associated resources
To delete associated resources, use the resource-deleting function
provided in resource-commands.js
, this is to make the
resources in the test account as clean as possible after the test case
is executed
- Delete Floating IP
.deleteAll('fip'); cy
- Delete Router
routerName
.deleteRouter(routerName, networkName); cy
- Delete Network
networkName
.deleteAll('network', networkName); cy
- Delete Volume
volumeName
.deleteAll('volume', volumeName); cy
- Delete all available volume
.deleteAllAvailableVolume(); cy