Skip to content

Commit a4a3887

Browse files
refactor
1 parent 8a39e8a commit a4a3887

14 files changed

+55
-29
lines changed

.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
SLACK_TOKEN = XXXXXXX/XXXXXXXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXX
1+
SLACK_TOKEN=XXXXXXX/XXXXXXXXXXXXXX/XXXXXXXXXXXXXXXXXXXXXXXXXXXX

app.log

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
07/11/2020 11:28:29 PM - INFO: Configuring desired capabilities
2-
07/11/2020 11:28:29 PM - INFO: Initiating Appium driver
1+
07/16/2020 12:09:02 PM - INFO: Configuring desired capabilities
2+
07/16/2020 12:09:02 PM - INFO: Initiating Appium driver

conftest.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,19 @@
33
@pytest.hookimpl
44
def pytest_addoption(parser):
55
parser.addoption('--app', action='store', default="ios", help="Choose App: ios or android")
6+
parser.addoption('--device', action='store', default="emulator", help="Choose Device: simulator / emulator / real "
7+
"device")
68

79

810
@pytest.fixture(scope="session")
911
def app(request):
1012
return request.config.getoption("--app")
1113

1214

15+
@pytest.fixture(scope="session")
16+
def device(request):
17+
return request.config.getoption("--device")
18+
1319
# @pytest.fixture(scope='session', autouse=True)
1420
# def session_setup_teardown():
1521
# yield

pytest.ini

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,5 @@
11
[pytest]
2-
json_report = report/json/report.json
2+
json_report = report/json/report.json
3+
markers =
4+
login: mark as login tests
5+
home: mark as home tests

requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
Appium-Python-Client~=1.0.1
1+
Appium-Python-Client~=1.0.2
22
selenium~=3.141.0
33
pytest~=5.4.3
44
allure-pytest
@@ -8,7 +8,7 @@ pytest-xdist
88
pytest-rerunfailures
99
pytest-sugar
1010
pytest-json
11-
pymysql~=0.9.3
11+
pymysql~=0.10.0
1212
sshtunnel~=0.1.5
1313
requests~=2.24.0
1414
invoke~=1.4.1

runner/android/smoke_run.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
invoke test --env='staging' --lang='en' --slack='on' --app='android'
1+
invoke test --env='staging' --lang='en' --app='android' --device='emulator'
22
invoke slack --env='staging' --lang='en' --slack='on' --app='android'

runner/ios/smoke_run.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
invoke test --env='staging' --lang='en' --slack='on' --app='ios'
1+
invoke test --env='staging' --lang='en' --app='ios' --device='simulator'
22
invoke slack --env='staging' --lang='en' --slack='on' --app='ios'

src/helpers/app.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -180,6 +180,9 @@ def close(self):
180180
def reset(self):
181181
self.driver.reset()
182182

183+
def launch_app(self):
184+
self.driver.launch_app()
185+
183186

184187
class CustomCall:
185188

src/helpers/appiumdriver.py

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ def setUp(self):
2525
This method instantiates the appium driver
2626
"""
2727
global desired_caps
28-
Driver.cli
2928

3029
logging.info("Configuring desired capabilities")
3130
if os.getenv('PYTEST_XDIST_WORKER'):
@@ -51,30 +50,34 @@ def setUp(self):
5150

5251
else:
5352
if self.app == 'ios':
54-
desired_caps = {
55-
'deviceName': 'iPhone 6S',
56-
'platformName': 'iOS',
57-
'udid': 'xxxxxxxxxxxxxx',
58-
'platformVersion': '13.3',
59-
'automationName': 'XCUITest',
60-
'app': '/Users/prashanth/Projects/apps/iOS-RealDevice-NativeDemoApp-0.2.1.ipa'
61-
}
53+
desired_caps = self.ios()
6254

6355
elif self.app == 'android':
64-
desired_caps = {
65-
'platformName': 'Android',
66-
'platformVersion': '',
67-
'deviceName': 'PF',
68-
'app': '/Users/prashanth/Projects/apps/app-staging-debug.apk',
69-
'noReset': True
70-
}
56+
desired_caps = self.android()
7157

7258
logging.info("Initiating Appium driver")
7359
self.driver = webdriver.Remote("http://0.0.0.0:4723/wd/hub", desired_caps)
7460

7561
# set waits
7662
self.driver.implicitly_wait(5) # waits 5 seconds
7763

64+
def android(self):
65+
if self.device == 'emulator':
66+
return dict(platformName='Android', platformVersion='', deviceName='PF',
67+
app='/Users/prashanth/Projects/apps/Android-NativeDemoApp-0.2.1.apk', noReset=True)
68+
elif self.device == 'real device':
69+
return dict(platformName='Android', platformVersion='', deviceName='PF',
70+
app='/Users/prashanth/Projects/apps/Android-NativeDemoApp-0.2.1.apk', noReset=True)
71+
72+
def ios(self):
73+
if self.device == 'simulator':
74+
return dict(platformName='iOS', platformVersion='13.3', deviceName='iPhone 11',
75+
app='/Users/prashanth/Projects/apps/iOS-RealDevice-NativeDemoApp-0.2.1.app', automationName='XCUITest')
76+
elif self.device == 'real device':
77+
return dict(platformName='iOS', platformVersion='14.0', deviceName='iPhone X',
78+
udid='xxxxxxxxxxxxxxxxxxxxxxxxxxxx', useNewWDA=True,
79+
app='/Users/prashanth/Projects/apps/iOS-RealDevice-NativeDemoApp-0.2.1.ipa', automationName='XCUITest')
80+
7881
def tearDown(self):
7982
Driver.screenshot_on_failure(self)
8083
self.driver.quit()
@@ -91,8 +94,9 @@ def screenshot_on_failure(self):
9194
self.driver.save_screenshot(f"screenshots/{test_name}_{now}.png")
9295

9396
@pytest.fixture(autouse=True)
94-
def cli(self, app):
97+
def cli(self, app, device):
9598
self.app = app
99+
self.device = device
96100

97101
def wda_port(self):
98102
if os.getenv('PYTEST_XDIST_WORKER') == 'gw1':

src/spec/android/home_test.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import pytest
12
from src.helpers.appiumdriver import Driver
23
from src.screens.android.home_screen import HomeScreen
34
from src.helpers.app import App
@@ -7,14 +8,16 @@ class TestHome(Driver):
78

89
def __init__(self, driver):
910
super().__init__(driver)
10-
11+
12+
@pytest.mark.home
1113
def test_home_1(self):
1214
App.element(self, HomeScreen.homeMenu)
1315
App.element(self, HomeScreen.loginMenu)
1416
App.element(self, HomeScreen.formsMenu)
1517
App.element(self, HomeScreen.swipeMenu)
1618
# App.assert_text(self, HomeLocators.loginMenu, 'Leads')
1719

20+
@pytest.mark.home
1821
def test_home_2(self):
1922
App.element(self, HomeScreen.homeMenu)
2023
App.element(self, HomeScreen.loginMenu)

src/spec/android/login_test.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import pytest
12
from src.helpers.appiumdriver import Driver
23
from src.screens.android.home_screen import HomeScreen
34
from src.screens.android.login_screen import LoginScreen
@@ -9,6 +10,7 @@ class TestLogin(Driver):
910
def __init__(self, driver):
1011
super().__init__(driver)
1112

13+
@pytest.mark.login
1214
def test_login(self):
1315
App.click(self, HomeScreen.loginMenu)
1416
App.send_keys(self, LoginScreen.inputField, "[email protected]")

src/spec/ios/home_test.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import pytest
12
from src.helpers.appiumdriver import Driver
23
from src.screens.ios.home_screen import HomeScreen
34
from src.helpers.app import App
@@ -7,13 +8,15 @@ class TestHome(Driver):
78

89
def __init__(self, driver):
910
super().__init__(driver)
10-
11+
12+
@pytest.mark.home
1113
def test_home_1(self):
1214
App.is_displayed(self, HomeScreen.homeMenu, True)
1315
App.is_displayed(self, HomeScreen.loginMenu, True)
1416
App.is_displayed(self, HomeScreen.formsMenu, True)
1517
App.is_displayed(self, HomeScreen.swipeMenu, True)
1618

19+
@pytest.mark.home
1720
def test_home_2(self):
1821
App.is_displayed(self, HomeScreen.homeMenu, True)
1922
App.is_displayed(self, HomeScreen.loginMenu, True)

src/spec/ios/login_test.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import pytest
12
from src.helpers.appiumdriver import Driver
23
from src.screens.ios.home_screen import HomeScreen
34
from src.screens.ios.login_screen import LoginScreen
@@ -9,6 +10,7 @@ class TestLogin(Driver):
910
def __init__(self, driver):
1011
super().__init__(driver)
1112

13+
@pytest.mark.login
1214
def test_login(self):
1315
App.click(self, HomeScreen.loginMenu)
1416
App.send_keys(self, LoginScreen.inputField, "[email protected]")

tasks.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@
44

55

66
@task
7-
def test(c, env='staging', lang='en', slack='on', app='android'):
7+
def test(c, env='staging', lang='en', app='android', device='emulator'):
88
"""
99
update local storage
1010
Enable and modify this to add local storage
1111
"""
1212
# os.system("adb push $(pwd)/data/<your_app_prefs_file>.xml /data/data/<packageName>/shared_prefs")
13-
c.run(f'python3 -m pytest src/spec/{app}/login_test.py --app={app}')
13+
c.run(f'python3 -m pytest src/spec/{app}/login_test.py --app={app} --device={device}')
1414

1515
@task
1616
def slack(c, env='staging', country='AE', slack='on', app='android'):

0 commit comments

Comments
 (0)