
1. Add eslint plugin spellcheck to check word spell 2. Fix word spell Change-Id: I73d39cf797ef5bdf993b0154816134a1e93f2ed4
104 lines
4.4 KiB
Markdown
104 lines
4.4 KiB
Markdown
English | [简体中文](../../zh/test/3-0-how-to-edit-e2e-case.md)
|
||
|
||
For specific introduction and usage of Cypress, please refer to[Official document](https://docs.cypress.io/guides/overview/why-cypress)
|
||
|
||
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
|
||
|
||
```javascript
|
||
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 the `login` and `loginAdmin` functions, that is, directly access the page where the resource is located after logging in
|
||
|
||
```javascript
|
||
beforeEach(() => {
|
||
cy.login(listUrl);
|
||
});
|
||
```
|
||
|
||
3. 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
|
||
|
||
```javascript
|
||
cy.createNetwork({ name: networkName });
|
||
```
|
||
|
||
- 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
|
||
|
||
```javascript
|
||
cy.createRouter({ name: routerName, network: networkName });
|
||
```
|
||
|
||
- Create floating ip`cy.createFip`,Used to test associate floating ip
|
||
|
||
```javascript
|
||
cy.createFip();
|
||
```
|
||
|
||
- Create volume `cy.createVolume`(Used to test attach volume)
|
||
|
||
```javascript
|
||
cy.createVolume(volumeName);
|
||
```
|
||
|
||
4. Write cases for creating resources
|
||
5. Write use cases for accessing resource details
|
||
6. 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 the `delete` operation is written, so that you can test whether the editing is effective
|
||
7. 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
|
||
|
||
```javascript
|
||
cy.deleteAll('fip');
|
||
```
|
||
|
||
- Delete Router`routerName`
|
||
|
||
```javascript
|
||
cy.deleteRouter(routerName, networkName);
|
||
```
|
||
|
||
- Delete Network`networkName`
|
||
|
||
```javascript
|
||
cy.deleteAll('network', networkName);
|
||
```
|
||
|
||
- Delete Volume`volumeName`
|
||
|
||
```javascript
|
||
cy.deleteAll('volume', volumeName);
|
||
```
|
||
|
||
- Delete all available volume
|
||
|
||
```javascript
|
||
cy.deleteAllAvailableVolume();
|
||
```
|
||
|
||
The `4`, `5`, and `6` in the above steps are mainly used
|
||
|
||
- The function operation form in `test/e2e/support/form-commands.js`, please refer to the detailed introduction[3-1-E2E-form-operation](3-1-E2E-form-operation.md)
|
||
- The functions in `test/e2e/support/table-commands.js`, click on the buttons in the operation table, search, and enter for details. please refer to the detailed introduction[3-2-E2E-table-operation](3-2-E2E-table-operation.md)
|
||
- The functions in `test/e2e/support/detail-commands.js`, the operation returns the list page, the detection details, and the switching details Tab. please refer to the detailed introduction[3-3-E2E-detail-operation](3-3-E2E-detail-operation.md)
|
||
|
||
Create and delete associated resources mainly use the functions in `test/e2e/support/resource-commands.js`,. please refer to the detailed introduction[33-4-E2E-resource-operation](3-4-E2E-resource-operation.md) |