# Sample Project - Web Test

A project should include 3 core files:&#x20;

**oxygen.conf.js**, which includes the project configuration, this file contains the tools for the project such as which modules to use, creating suites to run multiple scripts, reporting type, etc.

**oxygen.env.js**, which includes the environments, different URLs, usernames, connection string for each environment, which can be later used by selecting the environment inside oxygen settings.

**oxygen.po.js**, which includes all the page objects, locators, functions, etc.

<div align="left"><img src="https://3998735799-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lwyvw09Dn_2O4RFZKxE%2F-MYjRCWKF2ub-RFEmGW5%2F-MYjjE8aFGKo2de_GeAj%2Fimage.png?alt=media&#x26;token=0367541c-eab1-4153-814e-edf1307f0134" alt=""></div>

### Simple web test example from scratch

Let's start by creating a folder and inside it creating the **oxygen.env.js** and defining our environments

```javascript
module.exports = {

    TEST: { 
        url: 'https://test.wikipedia.org',
        db_con_string: 'Driver={SQL Server};Server=DESKTOP\\SQLEXPRESS;Database=test;'
        username: 'test.user',
        password: 'test123'
    },

    PROD: {
        url: 'https://wikipedia.org',
        db_con_string: 'Driver={SQL Server};Server=DESKTOP\\SQLEXPRESS;Database=prod;',
        username: 'username',
        password: 'password'
    },

}
```

Now let's create the **oxygen.po.js** file

```javascript
module.exports = {
    
    searchPage: {
        searchInput: 'id=searchInput',
        searchButton: '//button[@type="submit"]'
    },
    
    search: (item) => {
        web.type(po.searchPage.searchInput, item)
        web.click(po.searchPage.searchButton)
    }
    
}
```

Finally let's create the **oxygen.conf.js** file

```javascript
module.exports = {
    
    suites: [{
        name: 'End to End tests',
        cases: [
            { path: './Scripts/01. ' },
            { path: './Scripts/02. ' },
            { path: './Scripts/03. ' },
        ]
    }],

    modules: ['web', 'log', 'assert'],

    reporting: {
        reporters: ['html', 'json']
    },

}
```

And now let's create a folder with our test scripts, our first test will be searching for Selenium in Wikipedia

{% hint style="info" %}
Don't forget to choose an environment
{% endhint %}

![](https://3998735799-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-Lwyvw09Dn_2O4RFZKxE%2F-MYnfkU0rb7cwOv698fL%2F-MYnnVGJSzLML34xLedd%2Fimage.png?alt=media\&token=c28203da-791a-4ad1-9227-09783d17fe9f)

```javascript
web.transaction('01. Initialize')
web.init()

web.transaction('02. Open Wikipedia Main Page')
web.open(env.url)

web.transaction('03. Seach For Selenium')
po.search('Selenium')

web.transaction('04. Assert Results')
web.assertTextPresent('Selenium')
```

The following repository is provided as a sample project.&#x20;

<https://github.com/oxygenhq/oxygen-examples-angie>
