bucky-core 0.9.0 → 0.9.1
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|