mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-16 22:57:36 +08:00
add HelloWorld example
This commit is contained in:
0
examples/HelloWorld/tests/__init__.py
Normal file
0
examples/HelloWorld/tests/__init__.py
Normal file
82
examples/HelloWorld/tests/api/basic.yml
Normal file
82
examples/HelloWorld/tests/api/basic.yml
Normal file
@@ -0,0 +1,82 @@
|
||||
- api:
|
||||
def: get_token($user_agent, $device_sn, $os_platform, $app_version)
|
||||
request:
|
||||
url: /api/get-token
|
||||
method: POST
|
||||
headers:
|
||||
user_agent: $user_agent
|
||||
device_sn: $device_sn
|
||||
os_platform: $os_platform
|
||||
app_version: $app_version
|
||||
json:
|
||||
sign: ${get_sign($user_agent, $device_sn, $os_platform, $app_version)}
|
||||
validate:
|
||||
- eq: ["status_code", 200]
|
||||
- len_eq: ["content.token", 16]
|
||||
|
||||
- api:
|
||||
def: create_user($uid, $user_name, $user_password, $token)
|
||||
request:
|
||||
url: /api/users/$uid
|
||||
method: POST
|
||||
headers:
|
||||
token: $token
|
||||
json:
|
||||
name: $user_name
|
||||
password: $user_password
|
||||
validate:
|
||||
- eq: ["status_code", 201]
|
||||
|
||||
- api:
|
||||
def: get_user($uid, $token)
|
||||
request:
|
||||
url: /api/users/$uid
|
||||
method: GET
|
||||
headers:
|
||||
token: $token
|
||||
validate:
|
||||
- eq: ["status_code", 200]
|
||||
|
||||
- api:
|
||||
def: update_user($uid, $user_name, $user_password, $token)
|
||||
request:
|
||||
url: /api/users/$uid
|
||||
method: PUT
|
||||
headers:
|
||||
token: $token
|
||||
json:
|
||||
name: $user_name
|
||||
password: $user_password
|
||||
validate:
|
||||
- eq: ["status_code", 200]
|
||||
|
||||
- api:
|
||||
def: delete_user($uid, $token)
|
||||
request:
|
||||
url: /api/users/$uid
|
||||
method: DELETE
|
||||
headers:
|
||||
token: $token
|
||||
validate:
|
||||
- eq: ["status_code", 200]
|
||||
|
||||
- api:
|
||||
def: get_users($token)
|
||||
request:
|
||||
url: /api/users
|
||||
method: GET
|
||||
headers:
|
||||
token: $token
|
||||
validate:
|
||||
- eq: ["status_code", 200]
|
||||
|
||||
- api:
|
||||
def: reset_all($token)
|
||||
request:
|
||||
url: /api/reset-all
|
||||
method: GET
|
||||
headers:
|
||||
token: $token
|
||||
validate:
|
||||
- eq: ["status_code", 200]
|
||||
- eq: ["content.success", true]
|
||||
28
examples/HelloWorld/tests/debugtalk.py
Normal file
28
examples/HelloWorld/tests/debugtalk.py
Normal file
@@ -0,0 +1,28 @@
|
||||
import hashlib
|
||||
import hmac
|
||||
import random
|
||||
import string
|
||||
|
||||
SECRET_KEY = "DebugTalk"
|
||||
default_request = {
|
||||
"base_url": "http://127.0.0.1:5000",
|
||||
"headers": {
|
||||
"Content-Type": "application/json",
|
||||
"device_sn": "$device_sn"
|
||||
}
|
||||
}
|
||||
|
||||
def gen_random_string(str_len):
|
||||
random_char_list = []
|
||||
for _ in range(str_len):
|
||||
random_char = random.choice(string.ascii_letters + string.digits)
|
||||
random_char_list.append(random_char)
|
||||
|
||||
random_string = ''.join(random_char_list)
|
||||
return random_string
|
||||
|
||||
def get_sign(*args):
|
||||
content = ''.join(args).encode('ascii')
|
||||
sign_key = SECRET_KEY.encode('ascii')
|
||||
sign = hmac.new(sign_key, content, hashlib.sha1).hexdigest()
|
||||
return sign
|
||||
31
examples/HelloWorld/tests/suite/create_and_check.yml
Normal file
31
examples/HelloWorld/tests/suite/create_and_check.yml
Normal file
@@ -0,0 +1,31 @@
|
||||
|
||||
- config:
|
||||
name: "create user and check result."
|
||||
def: create_and_check($uid, $token)
|
||||
request: $default_request
|
||||
output:
|
||||
- token
|
||||
|
||||
- test:
|
||||
name: make sure user $uid does not exist
|
||||
api: get_user($uid, $token)
|
||||
validate:
|
||||
- eq: ["status_code", 404]
|
||||
- eq: ["content.success", false]
|
||||
|
||||
- test:
|
||||
name: create user $uid
|
||||
variables:
|
||||
- user_name: "user1"
|
||||
- user_password: "123456"
|
||||
api: create_user($uid, $user_name, $user_password, $token)
|
||||
validate:
|
||||
- eq: ["status_code", 201]
|
||||
- eq: ["content.success", true]
|
||||
|
||||
- test:
|
||||
name: check if user $uid exists
|
||||
api: get_user($uid, $token)
|
||||
validate:
|
||||
- eq: ["status_code", 200]
|
||||
- eq: ["content.success", true]
|
||||
26
examples/HelloWorld/tests/suite/setup.yml
Normal file
26
examples/HelloWorld/tests/suite/setup.yml
Normal file
@@ -0,0 +1,26 @@
|
||||
- config:
|
||||
name: "setup and reset all."
|
||||
def: setup_and_reset($device_sn)
|
||||
variables:
|
||||
- user_agent: 'iOS/10.3'
|
||||
- device_sn: ${gen_random_string(15)}
|
||||
- os_platform: 'ios'
|
||||
- app_version: '2.8.6'
|
||||
request: $default_request
|
||||
output:
|
||||
- token
|
||||
|
||||
- test:
|
||||
name: get token
|
||||
api: get_token($user_agent, $device_sn, $os_platform, $app_version)
|
||||
variables:
|
||||
- user_agent: 'iOS/10.3'
|
||||
- device_sn: $device_sn
|
||||
- os_platform: 'ios'
|
||||
- app_version: '2.8.6'
|
||||
extract:
|
||||
- token: content.token
|
||||
|
||||
- test:
|
||||
name: reset all users
|
||||
api: reset_all($token)
|
||||
20
examples/HelloWorld/tests/testcases/smoketest.yml
Normal file
20
examples/HelloWorld/tests/testcases/smoketest.yml
Normal file
@@ -0,0 +1,20 @@
|
||||
- config:
|
||||
name: smoketest
|
||||
variables:
|
||||
- device_sn: ${gen_random_string(15)}
|
||||
request: $default_request
|
||||
|
||||
- test:
|
||||
name: setup and reset all.
|
||||
suite: setup_and_reset($device_sn)
|
||||
output:
|
||||
- token
|
||||
- device_sn
|
||||
|
||||
- test:
|
||||
name: create user 1000 and check result.
|
||||
suite: create_and_check(1000, $token)
|
||||
|
||||
- test:
|
||||
name: create user 1001 and check result.
|
||||
suite: create_and_check(1001, $token)
|
||||
Reference in New Issue
Block a user