mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-13 04:20:31 +08:00
43 lines
992 B
Python
43 lines
992 B
Python
import hashlib
|
|
import json
|
|
import random
|
|
import string
|
|
|
|
try:
|
|
string_type = basestring
|
|
PYTHON_VERSION = 2
|
|
except NameError:
|
|
string_type = str
|
|
PYTHON_VERSION = 3
|
|
|
|
|
|
def gen_random_string(str_len):
|
|
return ''.join(
|
|
random.choice(string.ascii_letters + string.digits) for _ in range(str_len))
|
|
|
|
def gen_md5(*args):
|
|
args = [handle_req_data(item) for item in args]
|
|
return hashlib.md5("".join(args).encode('utf-8')).hexdigest()
|
|
|
|
def handle_req_data(data):
|
|
|
|
if PYTHON_VERSION == 3 and isinstance(data, bytes):
|
|
# In Python3, convert bytes to str
|
|
data = data.decode('utf-8')
|
|
|
|
if not data:
|
|
return data
|
|
|
|
if isinstance(data, str):
|
|
# check if data in str can be converted to dict
|
|
try:
|
|
data = json.loads(data)
|
|
except ValueError:
|
|
pass
|
|
|
|
if isinstance(data, dict):
|
|
# sort data in dict with keys, then convert to str
|
|
data = json.dumps(data, sort_keys=True)
|
|
|
|
return data
|