bucky-core 0.9.0 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +16 -4
- data/bucky-core.gemspec +5 -2
- data/example/README.md +2 -0
- data/example/hands-on/.bucky_home +2 -0
- data/example/hands-on/README.md +338 -0
- data/example/hands-on/config/bucky_config.yml +6 -0
- data/example/hands-on/config/e2e_config.yml +15 -0
- data/example/hands-on/config/linkstatus_config.yml +3 -0
- data/example/hands-on/config/test_db_config.yml +8 -0
- data/example/hands-on/services/README.md +1 -0
- data/example/hands-on/services/bucky_hands_on/pc/pageobject/github_search_list.rb +23 -0
- data/example/hands-on/services/bucky_hands_on/pc/pageobject/github_top.rb +23 -0
- data/example/hands-on/services/bucky_hands_on/pc/parts/github_search_list.yml +3 -0
- data/example/hands-on/services/bucky_hands_on/pc/parts/github_top.yml +6 -0
- data/example/hands-on/services/bucky_hands_on/pc/scenarios/e2e/search_and_asseret.yml +39 -0
- data/example/hands-on/services/bucky_hands_on/pc/scenarios/linkstatus/github_top.yml +16 -0
- data/example/hands-on/system/evidences/README.md +1 -0
- data/example/hands-on/system/evidences/screen_shots/README.md +1 -0
- data/example/hands-on/system/logs/README.md +1 -0
- data/lib/bucky/version.rb +1 -1
- data/template/new/config/test_db_config.yml +1 -1
- metadata +26 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5ca9ddc3d75d052fad26d93b6ba792ca2ef7fff3
|
4
|
+
data.tar.gz: 949249b28151ab881209439272cc8071d4ded81e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 20bc1124ddb7d9fb746da674f47fdbf9e2c61f46688f91fe2a827a5338edadebe98c5ba1500486e90f5a9b0ece6b02d545018809fb772fd63b399e71d1891652
|
7
|
+
data.tar.gz: 6846b76b5fd4539f7d31668fbfab22c311f6e2746872475b1fadcf926cd47a494cb0f6795278331eefeb33b6bdcf1c96bcbe65a52863365295377a9be80a103b
|
data/README.md
CHANGED
@@ -1,33 +1,42 @@
|
|
1
1
|
# Bucky-Core
|
2
2
|
|
3
3
|
## Overview
|
4
|
+
Bucky-core can run test code which is written in YAML. End-to-End test (working with Selenium) and Linkstatus test (HTTP status check) are supported in default. Page object model pattern and page based element management is the main concept in Bucky-core. You can create scenarios and execute it easily by using Bucky-core.
|
4
5
|
|
5
|
-
Bucky
|
6
|
+
When working with [Bucky-management](https://github.com/lifull-dev/bucky-management), Bucky-core can also record test results. You can make test results visualization by using Bucky-management.
|
6
7
|
|
7
8
|
## Feature
|
8
9
|
|
9
10
|
* Run tests in parallel
|
10
11
|
* Re-run tests which failed last time
|
11
12
|
* Support test code in YAML
|
12
|
-
* Multiple browser supported (
|
13
|
+
* Multiple browser supported (currently only Chrome is supported)
|
13
14
|
* Customizable test categories
|
14
15
|
* [Default] E2E: E2E (End to End) tests including JavaScript error check
|
15
16
|
* [Default] Linkstatus: http status code check in web page
|
16
|
-
* Making test
|
17
|
+
* Making test report with [Bucky-management](https://github.com/lifull-dev/bucky-management)
|
17
18
|
|
18
19
|
|
19
20
|
## Setup
|
20
21
|
|
22
|
+
Checkout Hands-on in example to get a quick start.
|
23
|
+
* [bucky-core/example/hands-on](https://github.com/lifull-dev/bucky-core/tree/master/example/hands-on)
|
24
|
+
|
21
25
|
### Install
|
22
26
|
```bash
|
23
27
|
gem install bucky-core
|
24
28
|
```
|
25
29
|
|
26
30
|
### Implement test code
|
31
|
+
* Use snake case for naming
|
27
32
|
```bash
|
28
33
|
# Make project directory
|
29
34
|
bucky new {your_project_name}
|
30
35
|
|
36
|
+
# Move into project directory
|
37
|
+
# It's the working directory when execute Bucky command
|
38
|
+
cd {your_project_name}
|
39
|
+
|
31
40
|
# Make service directory
|
32
41
|
bucky make service {your_service_name}
|
33
42
|
|
@@ -57,7 +66,10 @@ export BUCKY_DB_NAME="{your database name}"
|
|
57
66
|
```
|
58
67
|
|
59
68
|
## Usage
|
69
|
+
You can find some examples in here!
|
70
|
+
* [bucky-core/example](https://github.com/lifull-dev/bucky-core/blob/master/example)
|
60
71
|
|
72
|
+
You should start Selenium Chrome driver first. And you can find how to start Selenium Chrome driver by Docker in [SeleniumHQ/docker-selenium](https://github.com/SeleniumHQ/docker-selenium).
|
61
73
|
### Run test
|
62
74
|
```bash
|
63
75
|
# Condition filter using option
|
@@ -188,7 +200,7 @@ cases:
|
|
188
200
|
|
189
201
|
#### Sample linkstatus test_code.yml
|
190
202
|
|
191
|
-
*
|
203
|
+
* Linkstatus will check every \<a> tag's http response in url
|
192
204
|
|
193
205
|
```yaml
|
194
206
|
desc: suite description
|
data/bucky-core.gemspec
CHANGED
@@ -10,10 +10,13 @@ Gem::Specification.new do |spec|
|
|
10
10
|
spec.authors = %w[NaotoKishino HikaruFukuzawa SeiyaSato NaokiNakano RikiyaHikimochi JyeRuey]
|
11
11
|
spec.email = ['KishinoNaoto@lifull.com']
|
12
12
|
|
13
|
-
spec.summary = '
|
13
|
+
spec.summary = 'System testing framework for web application.'
|
14
14
|
spec.description = <<-DESCRIPTION
|
15
|
-
Bucky
|
15
|
+
Bucky-core can run test code which is written in YAML. End-to-End test (working with Selenium) and Linkstatus test (HTTP status check) are supported in default. Page object model pattern and page based element management is the main concept in Bucky-core. You can create scenarios and execute it easily by using Bucky-core.
|
16
|
+
|
17
|
+
When working with Bucky-management, Bucky-core can also record test results. You can make test results visualization by using Bucky-management.
|
16
18
|
DESCRIPTION
|
19
|
+
spec.required_rubygems_version = '>= 2.4.2'
|
17
20
|
spec.homepage = 'https://github.com/lifull-dev/bucky-core'
|
18
21
|
spec.license = 'MIT'
|
19
22
|
|
data/example/README.md
ADDED
@@ -0,0 +1,338 @@
|
|
1
|
+
# Hands-on
|
2
|
+
|
3
|
+
# What is this example doing
|
4
|
+
It will show you how to create a project, service, page and some test code using Bucky command.
|
5
|
+
And will show you how to execute these test code.
|
6
|
+
|
7
|
+
## Before starting
|
8
|
+
Make sure you have already installed gem "bucky-core".
|
9
|
+
```bash
|
10
|
+
gem install bucky-core
|
11
|
+
```
|
12
|
+
|
13
|
+
## 1. Create a new test project
|
14
|
+
* Project directory is your working directory when you are executing Bucky test code
|
15
|
+
|
16
|
+
Create a new test project.
|
17
|
+
```bash
|
18
|
+
bucky new hands-on
|
19
|
+
```
|
20
|
+
You will get a new directory which name is "hands-on" in the current directory.
|
21
|
+
|
22
|
+
## 2. Create a new service in the project
|
23
|
+
* Service means the application name that you are going to test
|
24
|
+
* You are able to create multiple services in one project
|
25
|
+
* Use snake case for naming
|
26
|
+
|
27
|
+
Move into project directory and create a service.
|
28
|
+
```bash
|
29
|
+
cd hands-on
|
30
|
+
bucky make service bucky_hands_on
|
31
|
+
```
|
32
|
+
You will get a new directory which name is "bucky_hands_on" under services directory.
|
33
|
+
|
34
|
+
## 3. Create devices directory and create page_object, parts for test code
|
35
|
+
* Device only support PC, SP and tablet
|
36
|
+
* Test code will be executed in different user agents according to the device
|
37
|
+
* Page_object is the file that you can add customize method in
|
38
|
+
* Parts is the file that HTML element of the page is declared in
|
39
|
+
* Use snake case for naming
|
40
|
+
|
41
|
+
Create device directory, page_object file and part file.
|
42
|
+
```bash
|
43
|
+
# Create github top page
|
44
|
+
bucky make page github_top --service bucky_hands_on --device pc
|
45
|
+
# Create github search list page
|
46
|
+
bucky make page github_search_list --service bucky_hands_on --device pc
|
47
|
+
```
|
48
|
+
In this time, your directory will look like the following:
|
49
|
+
```bash
|
50
|
+
hands-on/
|
51
|
+
├── README.md
|
52
|
+
├── config
|
53
|
+
│ ├── bucky_config.yml
|
54
|
+
│ ├── e2e_config.yml
|
55
|
+
│ ├── linkstatus_config.yml
|
56
|
+
│ └── test_db_config.yml
|
57
|
+
├── services
|
58
|
+
│ ├── README.md
|
59
|
+
│ └── bucky_hands_on
|
60
|
+
│ └── pc
|
61
|
+
│ ├── pageobject
|
62
|
+
│ │ ├── github_search_list.rb
|
63
|
+
│ │ └── github_top.rb
|
64
|
+
│ └── parts
|
65
|
+
│ ├── github_search_list.yml
|
66
|
+
│ └── github_top.yml
|
67
|
+
└── system
|
68
|
+
├── evidences
|
69
|
+
│ ├── README.md
|
70
|
+
│ └── screen_shots
|
71
|
+
│ └── README.md
|
72
|
+
└── logs
|
73
|
+
└── README.md
|
74
|
+
```
|
75
|
+
|
76
|
+
## 4. Add the element in part file, which are going to be used in test code
|
77
|
+
* Part file can be written in xpath or id
|
78
|
+
* Use snake case for naming
|
79
|
+
|
80
|
+
Add the search bar and search result element in github_top.yml.
|
81
|
+
```
|
82
|
+
## services/bucky_hands_on/pc/parts/github-top.yml ##
|
83
|
+
search_bar:
|
84
|
+
- xpath
|
85
|
+
- //input[contains(@class,'header-search-input')]
|
86
|
+
search_resault:
|
87
|
+
- xpath
|
88
|
+
- //div[contains(@class,'jump-to-suggestions')]
|
89
|
+
```
|
90
|
+
Add bucky-core click element in github_search_list.yml.
|
91
|
+
```
|
92
|
+
## services/bucky_hands_on/pc/parts/github_search_list.yml ##
|
93
|
+
bucky_core_a_tag:
|
94
|
+
- xpath
|
95
|
+
- //a[contains(text(),'lifull-dev')]
|
96
|
+
```
|
97
|
+
|
98
|
+
## 5. Create test code in E2E (End-to-End) category
|
99
|
+
* This step can't be done by Bucky command
|
100
|
+
* Use snake case for naming
|
101
|
+
|
102
|
+
Create e2e category directory.
|
103
|
+
```bash
|
104
|
+
mkdir -p services/bucky_hands_on/pc/scenarios/e2e
|
105
|
+
```
|
106
|
+
Create test code file, which test suite name is "search_and_assert".
|
107
|
+
```bash
|
108
|
+
touch services/bucky_hands_on/pc/scenarios/e2e/search_and_assert.yml
|
109
|
+
```
|
110
|
+
Add test code in test suite.
|
111
|
+
```
|
112
|
+
## services/bucky_hands_on/pc/scenarios/e2e/search_and_assert.yml ##
|
113
|
+
# Describe for this test suite
|
114
|
+
desc: search in github and check page transition
|
115
|
+
device: pc
|
116
|
+
service: bucky_hands_on
|
117
|
+
priority: high
|
118
|
+
test_category: e2e
|
119
|
+
labels:
|
120
|
+
- example
|
121
|
+
cases:
|
122
|
+
# You should create test case name as {test suite name + _ + number}
|
123
|
+
- case_name: search_and_assert_1
|
124
|
+
func: transition
|
125
|
+
desc: Should able to search bucky-core in github, and move to bucky-core page.
|
126
|
+
# Procedures to do in this case
|
127
|
+
procs:
|
128
|
+
- proc: Open github top page
|
129
|
+
exec:
|
130
|
+
operate: go
|
131
|
+
url: https://github.com/
|
132
|
+
- proc: Input 'bucky-core' in search bar
|
133
|
+
exec:
|
134
|
+
operate: input
|
135
|
+
page: github_top
|
136
|
+
part: search_bar
|
137
|
+
word: 'bucky-core'
|
138
|
+
- proc: Click search result
|
139
|
+
exec:
|
140
|
+
operate: click
|
141
|
+
page: github_top
|
142
|
+
part: search_resault
|
143
|
+
- proc: Click target result
|
144
|
+
exec:
|
145
|
+
operate: click
|
146
|
+
page: github_search_list
|
147
|
+
part: bucky_core_a_tag
|
148
|
+
- proc: assert_text
|
149
|
+
exec:
|
150
|
+
verify: assert_title
|
151
|
+
expect: 'GitHub - lifull-dev/bucky-core: Bucky is a testing framework that supports Web System Testing Life Cycle.'
|
152
|
+
```
|
153
|
+
## 6. Create test code in Linkstatus category
|
154
|
+
* This step can't be done by Bucky command
|
155
|
+
* Use snake case for naming
|
156
|
+
|
157
|
+
Create linkstatus category directory.
|
158
|
+
```bash
|
159
|
+
mkdir -p services/bucky_hands_on/pc/scenarios/linkstatus
|
160
|
+
```
|
161
|
+
Create test code file, which test suite name is "github_top".
|
162
|
+
```bash
|
163
|
+
touch services/bucky_hands_on/pc/scenarios/linkstatus/github_top.yml
|
164
|
+
```
|
165
|
+
Add test code in test suite.
|
166
|
+
```
|
167
|
+
## services/bucky_hands_on/pc/scenarios/linkstatus/github_top.yml ##
|
168
|
+
# Describe for this test suite
|
169
|
+
desc: Check all a tag in githib top
|
170
|
+
device: pc
|
171
|
+
service: bucky_hands_on
|
172
|
+
priority: high
|
173
|
+
test_category: linkstatus
|
174
|
+
labels:
|
175
|
+
- example
|
176
|
+
# You can exclude url that you don't want to check
|
177
|
+
exclude_urls:
|
178
|
+
- https://github.com/customer-stories/*
|
179
|
+
cases:
|
180
|
+
- case_name: github_top_1
|
181
|
+
desc: Check github top
|
182
|
+
urls:
|
183
|
+
- https://github.com/
|
184
|
+
```
|
185
|
+
|
186
|
+
## 7. Execute test code
|
187
|
+
* You should start Selenium Chrome driver first
|
188
|
+
|
189
|
+
You can find how to start Selenium Chrome driver by Docker in [SeleniumHQ/docker-selenium](https://github.com/SeleniumHQ/docker-selenium).
|
190
|
+
|
191
|
+
Set the connection for E2E test.
|
192
|
+
```
|
193
|
+
## config/e2e_config.yml ##
|
194
|
+
:selenium_ip: {your ip for selenium}
|
195
|
+
:selenium_port: '4444'
|
196
|
+
```
|
197
|
+
|
198
|
+
Execute the test by Bucky command. You should execute the test code in working directory. In this case, the working directory is: "hands-on/".
|
199
|
+
```bash
|
200
|
+
# Use -d option, because we doesn't start-up bucky-managemnt in this example.
|
201
|
+
bucky run -t e2e -c search_and_assert_1 -d
|
202
|
+
bucky run -t linkstatus -c github_top_1 -d
|
203
|
+
```
|
204
|
+
|
205
|
+
You will get resault like the following:
|
206
|
+
```
|
207
|
+
bucky run -t e2e -c search_and_assert_1 -d
|
208
|
+
|
209
|
+
Loaded suite /usr/local/bin/bucky
|
210
|
+
Started
|
211
|
+
|
212
|
+
search_and_assert_1(TestBuckyHandsOnPcE2eSearchAndassert)
|
213
|
+
Sholud able to serch bucky-core in github, and transition to it. ....
|
214
|
+
1:Open github top page
|
215
|
+
{:operate=>"go", :url=>"https://github.com/"}
|
216
|
+
2:Input 'bucky-core' in search bar
|
217
|
+
{:operate=>"input", :page=>"github_top", :part=>"search_bar", :word=>"bucky-core"}
|
218
|
+
3:Click search result
|
219
|
+
{:operate=>"click", :page=>"github_top", :part=>"search_resault"}
|
220
|
+
4:Click target result
|
221
|
+
{:operate=>"click", :page=>"github_search_list", :part=>"bucky_core_a_tag"}
|
222
|
+
5:assert_text
|
223
|
+
assert_title is defined in E2eVerificationClass.
|
224
|
+
{:verify=>"assert_title", :expect=>"GitHub - lifull-dev/bucky-core: Bucky is a testing framework that supports Web System Testing Life Cycle."}
|
225
|
+
.
|
226
|
+
|
227
|
+
Finished in 8.948734 seconds.
|
228
|
+
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
229
|
+
1 tests, 5 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
|
230
|
+
100% passed
|
231
|
+
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
232
|
+
0.11 tests/s, 0.56 assertions/s
|
233
|
+
|
234
|
+
|
235
|
+
|
236
|
+
bucky run -t linkstatus -c github_top_1 -d
|
237
|
+
|
238
|
+
Loaded suite /usr/local/bin/bucky
|
239
|
+
Started
|
240
|
+
|
241
|
+
github_top_1(TestBuckyHandsOnPcLinkstatusGithubTop))}
|
242
|
+
https://github.com/ ... [200:OK]
|
243
|
+
https://github.com/ is already [200:OK]
|
244
|
+
https://github.com/features/actions ... [200:OK]
|
245
|
+
https://github.com/features#team-management ... [200:OK]
|
246
|
+
https://github.com/join?source=header-home ... [200:OK]
|
247
|
+
https://github.com#start-of-content ... [200:OK]
|
248
|
+
https://github.com/features/code-review/ ... [200:OK]
|
249
|
+
https://github.com/features ... [200:OK]
|
250
|
+
https://github.com/features/project-management/ ... [200:OK]
|
251
|
+
https://github.com/features#code-hosting ... [200:OK]
|
252
|
+
https://github.com/features#social-coding ... [200:OK]
|
253
|
+
https://github.com/customer-stories ... [200:OK]
|
254
|
+
https://github.com/security ... [200:OK]
|
255
|
+
https://github.com/collections ... [200:OK]
|
256
|
+
https://github.com/topics ... [200:OK]
|
257
|
+
https://github.com/features#documentation ... [200:OK]
|
258
|
+
https://github.com/events ... [200:OK]
|
259
|
+
https://github.com/enterprise ... [200:OK]
|
260
|
+
https://github.com/trending ... [200:OK]
|
261
|
+
https://github.com/pricing#feature-comparison ... [200:OK]
|
262
|
+
https://github.com/explore ... [200:OK]
|
263
|
+
https://github.com/nonprofit ... [200:OK]
|
264
|
+
https://github.com/marketplace ... [200:OK]
|
265
|
+
https://github.com/pricing ... [200:OK]
|
266
|
+
https://github.com/login ... [200:OK]
|
267
|
+
https://github.com/features/integrations ... [200:OK]
|
268
|
+
https://github.com ... [200:OK]
|
269
|
+
https://github.com/business ... redirect to https://github.com/enterprise [302:RD]
|
270
|
+
https://github.com/open-source ... [200:OK]
|
271
|
+
https://github.com/enterprise is already [200:OK]
|
272
|
+
https://github.com/join?source=button-home ... [200:OK]
|
273
|
+
https://github.com/join?plan=business&setup_organization=true&source=business-page ... [200:OK]
|
274
|
+
https://github.com/personal ... [200:OK]
|
275
|
+
https://github.com/about/careers ... [200:OK]
|
276
|
+
https://github.com/contact ... [200:OK]
|
277
|
+
https://github.com/about ... [200:OK]
|
278
|
+
https://github.com/features/project-management ... [200:OK]
|
279
|
+
https://github.com/site/terms ... redirect to https://help.github.com/articles/github-terms-of-service/ [301:RD]
|
280
|
+
https://github.com/features/code-review ... [200:OK]
|
281
|
+
https://github.com/about/press ... [200:OK]
|
282
|
+
https://github.com/site/privacy ... redirect to https://help.github.com/articles/github-privacy-statement/ [302:RD]
|
283
|
+
https://github.com/github ... [200:OK]
|
284
|
+
https://help.github.com/articles/github-terms-of-service/ ... redirect to https://help.github.com/articles/github-terms-of-service [301:RD]
|
285
|
+
https://help.github.com/articles/github-privacy-statement/ ... redirect to https://help.github.com/articles/github-privacy-statement [301:RD]
|
286
|
+
https://help.github.com/articles/github-terms-of-service ... redirect to https://help.github.com/en/articles/github-terms-of-service [301:RD]
|
287
|
+
https://help.github.com/articles/github-privacy-statement ... redirect to https://help.github.com/en/articles/github-privacy-statement [301:RD]
|
288
|
+
https://help.github.com/en/articles/github-privacy-statement ... [200:OK]
|
289
|
+
https://help.github.com/en/articles/github-terms-of-service ... [200:OK]
|
290
|
+
.
|
291
|
+
|
292
|
+
Finished in 11.283795 seconds.
|
293
|
+
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
294
|
+
1 tests, 2 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
|
295
|
+
100% passed
|
296
|
+
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
297
|
+
0.09 tests/s, 0.18 assertions/s
|
298
|
+
```
|
299
|
+
|
300
|
+
## At last
|
301
|
+
Congratulations!! You have just finish this example.
|
302
|
+
|
303
|
+
If you follow these procedures your directory will be like this:
|
304
|
+
```
|
305
|
+
hands-on/
|
306
|
+
├── README.md
|
307
|
+
├── config
|
308
|
+
│ ├── bucky_config.yml
|
309
|
+
│ ├── e2e_config.yml
|
310
|
+
│ ├── linkstatus_config.yml
|
311
|
+
│ └── test_db_config.yml
|
312
|
+
├── services
|
313
|
+
│ ├── README.md
|
314
|
+
│ └── bucky_hands_on
|
315
|
+
│ └── pc
|
316
|
+
│ ├── pageobject
|
317
|
+
│ │ ├── github_search_list.rb
|
318
|
+
│ │ └── github_top.rb
|
319
|
+
│ ├── parts
|
320
|
+
│ │ ├── github_search_list.yml
|
321
|
+
│ │ └── github_top.yml
|
322
|
+
│ └── scenarios
|
323
|
+
│ ├── e2e
|
324
|
+
│ │ └── search_and_assert.yml
|
325
|
+
│ └── linkstatus
|
326
|
+
│ └── github_top.yml
|
327
|
+
└── system
|
328
|
+
├── evidences
|
329
|
+
│ ├── README.md
|
330
|
+
│ └── screen_shots
|
331
|
+
│ └── README.md
|
332
|
+
└── logs
|
333
|
+
└── README.md
|
334
|
+
```
|
335
|
+
|
336
|
+
We have learned how to create project, service, page, and test code. And also learned how to execute test code using Bucky command.
|
337
|
+
|
338
|
+
Now you can create you own test code!!
|
@@ -0,0 +1,15 @@
|
|
1
|
+
:selenium_ip: localhost # default selenium ip. please set ip or 'docker_host_ip'. ip route | awk 'NR==1 {print $3}'
|
2
|
+
:selenium_port: '4444' # default selenium port
|
3
|
+
:browser: :chrome # Only chrome
|
4
|
+
:sp_device_name: :iphone
|
5
|
+
:tablet_device_name: :ipad
|
6
|
+
:device_name_on_chrome:
|
7
|
+
:iphone: 'iPhone X'
|
8
|
+
:android: 'Galaxy S5'
|
9
|
+
:ipad: 'iPad'
|
10
|
+
:user_agent: 'E2ETest (X11; Linux x86_64)'
|
11
|
+
:js_error_check: true
|
12
|
+
:js_error_collector_path: '/var/lib/selenium/ChromeJSErrorCollector-master/extension' # https://github.com/dharrya/ChromeJSErrorCollector
|
13
|
+
:driver_read_timeout: 60 # sec
|
14
|
+
:driver_open_timeout: 60 # sec
|
15
|
+
:find_element_timeout: 10 # sec
|
@@ -0,0 +1 @@
|
|
1
|
+
for services page and parts objects.
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bucky/test_equipment/pageobject/base_pageobject'
|
4
|
+
module Services
|
5
|
+
module BuckyHandsOn
|
6
|
+
module Pc
|
7
|
+
module PageObject
|
8
|
+
class GithubSearchList < Bucky::TestEquipment::PageObject::BasePageObject
|
9
|
+
|
10
|
+
protected
|
11
|
+
|
12
|
+
# add some user operations for this page
|
13
|
+
# sample ====================
|
14
|
+
# @param [Hash] args
|
15
|
+
# def search_freeword(**args)
|
16
|
+
# freeword_form.send_keys(args[:word])
|
17
|
+
# freeword_form.submit
|
18
|
+
# end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'bucky/test_equipment/pageobject/base_pageobject'
|
4
|
+
module Services
|
5
|
+
module BuckyHandsOn
|
6
|
+
module Pc
|
7
|
+
module PageObject
|
8
|
+
class GithubTop < Bucky::TestEquipment::PageObject::BasePageObject
|
9
|
+
|
10
|
+
protected
|
11
|
+
|
12
|
+
# add some user operations for this page
|
13
|
+
# sample ====================
|
14
|
+
# @param [Hash] args
|
15
|
+
# def search_freeword(**args)
|
16
|
+
# freeword_form.send_keys(args[:word])
|
17
|
+
# freeword_form.submit
|
18
|
+
# end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# Describe for this test suite
|
2
|
+
desc: search in github and check page transition
|
3
|
+
device: pc
|
4
|
+
service: bucky_hands_on
|
5
|
+
priority: high
|
6
|
+
test_category: e2e
|
7
|
+
labels:
|
8
|
+
- example
|
9
|
+
cases:
|
10
|
+
# You should create test case name as {test suite name + _ + number}
|
11
|
+
- case_name: search_and_asseret_1
|
12
|
+
func: transition
|
13
|
+
desc: Should able to search bucky-core in github, and move to bucky-core page.
|
14
|
+
# Procedures to do in this case
|
15
|
+
procs:
|
16
|
+
- proc: Open github top page
|
17
|
+
exec:
|
18
|
+
operate: go
|
19
|
+
url: https://github.com/
|
20
|
+
- proc: Input 'bucky-core' in search bar
|
21
|
+
exec:
|
22
|
+
operate: input
|
23
|
+
page: github_top
|
24
|
+
part: search_bar
|
25
|
+
word: 'bucky-core'
|
26
|
+
- proc: Click search result
|
27
|
+
exec:
|
28
|
+
operate: click
|
29
|
+
page: github_top
|
30
|
+
part: search_resault
|
31
|
+
- proc: Click target result
|
32
|
+
exec:
|
33
|
+
operate: click
|
34
|
+
page: github_search_list
|
35
|
+
part: bucky_core_a_tag
|
36
|
+
- proc: assert_text
|
37
|
+
exec:
|
38
|
+
verify: assert_title
|
39
|
+
expect: 'GitHub - lifull-dev/bucky-core: System testing framework for web application.'
|
@@ -0,0 +1,16 @@
|
|
1
|
+
# Describe for this test suite
|
2
|
+
desc: Check all a tag in githib top
|
3
|
+
device: pc
|
4
|
+
service: bucky_hands_on
|
5
|
+
priority: high
|
6
|
+
test_category: linkstatus
|
7
|
+
labels:
|
8
|
+
- example
|
9
|
+
# You can exclude url that you don't want to check
|
10
|
+
exclude_urls:
|
11
|
+
- https://github.com/customer-stories/*
|
12
|
+
cases:
|
13
|
+
- case_name: github_top_1
|
14
|
+
desc: Check github top
|
15
|
+
urls:
|
16
|
+
- https://github.com/
|
@@ -0,0 +1 @@
|
|
1
|
+
for save evidence directory.
|
@@ -0,0 +1 @@
|
|
1
|
+
for save screen shots directory.
|
@@ -0,0 +1 @@
|
|
1
|
+
for save logs directory.
|
data/lib/bucky/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bucky-core
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- NaotoKishino
|
@@ -13,7 +13,7 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: exe
|
15
15
|
cert_chain: []
|
16
|
-
date: 2019-04-
|
16
|
+
date: 2019-04-15 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
19
|
name: awesome_print
|
@@ -281,8 +281,10 @@ dependencies:
|
|
281
281
|
- - "~>"
|
282
282
|
- !ruby/object:Gem::Version
|
283
283
|
version: '3.2'
|
284
|
-
description:
|
285
|
-
|
284
|
+
description: |2
|
285
|
+
Bucky-core can run test code which is written in YAML. End-to-End test (working with Selenium) and Linkstatus test (HTTP status check) are supported in default. Page object model pattern and page based element management is the main concept in Bucky-core. You can create scenarios and execute it easily by using Bucky-core.
|
286
|
+
|
287
|
+
When working with Bucky-management, Bucky-core can also record test results. You can make test results visualization by using Bucky-management.
|
286
288
|
email:
|
287
289
|
- KishinoNaoto@lifull.com
|
288
290
|
executables:
|
@@ -314,6 +316,23 @@ files:
|
|
314
316
|
- docker/nginx/nginx.conf
|
315
317
|
- docker/nginx/public/index.html
|
316
318
|
- docker/nginx/public/test_page.html
|
319
|
+
- example/README.md
|
320
|
+
- example/hands-on/.bucky_home
|
321
|
+
- example/hands-on/README.md
|
322
|
+
- example/hands-on/config/bucky_config.yml
|
323
|
+
- example/hands-on/config/e2e_config.yml
|
324
|
+
- example/hands-on/config/linkstatus_config.yml
|
325
|
+
- example/hands-on/config/test_db_config.yml
|
326
|
+
- example/hands-on/services/README.md
|
327
|
+
- example/hands-on/services/bucky_hands_on/pc/pageobject/github_search_list.rb
|
328
|
+
- example/hands-on/services/bucky_hands_on/pc/pageobject/github_top.rb
|
329
|
+
- example/hands-on/services/bucky_hands_on/pc/parts/github_search_list.yml
|
330
|
+
- example/hands-on/services/bucky_hands_on/pc/parts/github_top.yml
|
331
|
+
- example/hands-on/services/bucky_hands_on/pc/scenarios/e2e/search_and_asseret.yml
|
332
|
+
- example/hands-on/services/bucky_hands_on/pc/scenarios/linkstatus/github_top.yml
|
333
|
+
- example/hands-on/system/evidences/README.md
|
334
|
+
- example/hands-on/system/evidences/screen_shots/README.md
|
335
|
+
- example/hands-on/system/logs/README.md
|
317
336
|
- exe/bucky
|
318
337
|
- lib/bucky.rb
|
319
338
|
- lib/bucky/core/database/db_connector.rb
|
@@ -405,11 +424,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
405
424
|
requirements:
|
406
425
|
- - ">="
|
407
426
|
- !ruby/object:Gem::Version
|
408
|
-
version:
|
427
|
+
version: 2.4.2
|
409
428
|
requirements: []
|
410
429
|
rubyforge_project:
|
411
|
-
rubygems_version: 2.
|
430
|
+
rubygems_version: 2.6.14
|
412
431
|
signing_key:
|
413
432
|
specification_version: 4
|
414
|
-
summary:
|
433
|
+
summary: System testing framework for web application.
|
415
434
|
test_files: []
|