Skip to main content

X automated test platform command line client

Project description

X ATP CLI Client

X automated test platform command line client

Sweetest of X ATP

X Sweetest is a secondary development project for Sweetest according to the Mozilla Public License Version 2.0 agreement.

Open a Cmd or Shell command window and go to the directory, for example: D:\Autotest, enter following command for a quick experience.

x-atp-cli -d
cd x_sweetest_example
python echo.py

If you have used Sweetest before, just remove from sweetest import Autotest and add from x_sweetest import Autotest to switch to X Sweetest. for example:

# from sweetest import Autotest
from x_sweetest import Autotest
import sys
......

v0.1.6 change

Change content in keywords/http.py file to resolve issue that the Output Data field does not support [{'id':1},{'id':2}] format Json return value.

        elif v == 'text':
            g.var[k] = response['text']
            logger.info('%s: %s' % (k, repr(g.var[k])))
        elif k == 'json':
            sub_str = output.get('json', '{}')
            if sub_str[0] == '[':
                index = sub_str.split(']')[0][1:]
                sub = json2dict(sub_str[len(index)+2:])
                result = check(sub, response['json'][int(index)])
            else:
                sub = json2dict(output.get('json', '{}'))
                result = check(sub, response['json'])
            # logger.info('Compare json result: %s' % result)
            var = dict(var, **result['var'])
            g.var = dict(g.var, **result['var'])
            logger.info('json var: %s' % (repr(result['var'])))

An example of editing the Output Data field of -TestCase.xlsx is as follows:

  • json=[0]{'id':'<id1>'}
  • json=[-1]{'id':'<id2>'}

v0.1.7 change

Change the content in the keywords/http.py file, add form usage in Test Data to optimize the writing format of the import file function in the -TestCase.xlsx field.

    if kw == 'get':
        r = getattr(http.r, kw)(http.baseurl + url,
                                params=_data['params'], timeout=timeout, **data)
        if _data['params']:
            logger.info(f'PARAMS: {_data["params"]}')

    elif kw == 'post':
        if 'form' in data:
            form_dict = json2dict(data['form'])
            try:
                if len(form_dict) == 1:
                    for form_k, form_v in form_dict.items():
                        form_name = form_k.split("/")[-1]
                form_data = MultipartEncoder(fields={'file': (form_name, open(form_k, 'rb'), form_v)})
                form_headers = {'Content-Type': form_data.content_type}
                http.r.headers.update(form_headers)
                r = getattr(http.r, kw)(http.baseurl + url, data=form_data, timeout=timeout)
            except:
                logger.exception("***form can be only one Key-value***")
        else:
            r = getattr(http.r, kw)(http.baseurl + url,
                                    data=_data['data'], json=_data['json'], files=_data['files'], timeout=timeout, **data)
        logger.info(f'BODY: {r.request.body}')

    elif kw in ('put', 'patch'):
        r = getattr(http.r, kw)(http.baseurl + url,
                                data=_data['data'], timeout=timeout, **data)
        logger.info(f'BODY: {r.request.body}')

An example of editing the Test Data field of -TestCase.xlsx is as follows:

  • form={r'./files/test.xls': 'application/vnd.ms-excel'}
  • form={r'./files/test.zip': 'application/zip}

v0.2.0 change

Changed the contents of the keywords/http.py file to resolve the following issue: The Expected Result field does not support the format [{'status':1},{'status':2}].

    expected = step['expected']
    expected['status_code'] = expected.get('status_code', None)
    expected['text'] = expected.get('text', None)
    json_str = expected.get('json', '{}')
    if json_str[0] == '[':
        index = json_str.split(']')[0][1:]
        expected['json'] = json2dict(json_str[len(index) + 2:])
        expected['json_index'] = int(index)
    else:
        expected['json'] = json2dict(expected.get('json', '{}'))
    expected['cookies'] = json2dict(expected.get('cookies', '{}'))
    expected['headers'] = json2dict(expected.get('headers', '{}'))
    timeout = float(expected.get('timeout', 10))

and

            logger.info('cookies var: %s' % (repr(result['var'])))

    if expected['json']:
        if 'json_index' in expected:
            result = check(expected['json'], response['json'][expected['json_index']])
        else:
            result = check(expected['json'], response['json'])
        logger.info('json check result: %s' % result)
        if result['code'] != 0:
            raise Exception(

An example of editing the Expected Result field of -TestCase.xlsx is as follows:

  • json=[0]{'status':0}
  • json=[-1]{'status':1}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for x-atp-cli, version 0.2.0
Filename, size File type Python version Upload date Hashes
Filename, size x-atp-cli-0.2.0.tar.gz (124.2 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page