Coder Social home page Coder Social logo

jiekou-python3's Introduction

接口测试框架(基于json格式、http请求,python3,不兼容python2.x版本)

注:现在基于Excel文件管理测试用例基本实现,)

备注:大家在运行的时候,如果参数不需要key,只需要字典,可以在ddt_case.py和case.py改造parame,注释掉现在的parem,启用新的即可

依赖用例支持用例执行,在testCase的ddt_case.py有实现,逻辑在代码中有写,参数的格式{"name":"$case1=data"}即代表name的值是case1的data字段,简单的实现。

依赖用例是简单的实现,具体在业务上面还有很多复杂的要处理,知识实现了,部分的思路。

(目前在部分window上会出现FileNotFoundError [Errno 2] No such file or directory,这个bug是路径过长,解决方案为吧log日志放在当前目录,或者修改动态生成的文件的名字,给了第一种方式,测试日志放在当前目录)

qq交流群:194704520  

Alt text

使用的库 requests,绝大部分是基于Python原有的库进行的,这样简单方便,

使用脚本参数分离等**,尽可能降低代码的耦合度。

如果你不配置钉钉机器人,注释到机器人相关的代码

首先我们来看下我们的目录

Alt text

1.Case文件夹用来存放我们的测试用例相关的,

2.test_case用来存储我们的测试数据,Excel管理测试用例,yaml文件管理测试用例,后续要把yaml管理测试用例的也封装出来。

3.Interface对测试接口相关的封装,包括requests库,发送测试报告的email的封装,从Excel取测试数据的封装

4.Public 展示测试报告相关的脚本,这里可以自己封装,也可以使用现成的,我这里是基于我自己封装的,最后生成的测试报告更加易懂,出错可以尽快排查相关原因

5.report 存放测试报告,

6.run_excel_re.py/run_html.py 主运行文件。运行后可以生成相应的测试报告

7.run_new新版执行方式,重写了unittest方法,利用ddt驱动,生成漂亮的测试报告

除了在github的开源项目的分享,我也运营了自己的公众号,欢迎大家关注我的公众号

Alt text

产生的html测试报告如下

Alt text

增加了Excel管理测试报告的功能,目前在继续优化功能,增加了config目录,一些配置文件的目录,

产生的Excel测试报告如下

Alt text Alt text

现在的测试结构更加完整,最新的一次提交增加了log日志的展示,使功能更加完善,log日志在控制台展示如下,对目录进行优化

Alt text

jiekou-python3's People

Contributors

liwanlei avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jiekou-python3's Issues

运行run.new.py出现的问题

Traceback (most recent call last):
File "F:/pycharm_project/API/jiekou-python3-master/run_new.py", line 3, in
from testCase.ddt_case import MyTest
File "F:\pycharm_project\API\jiekou-python3-master\testCase\ddt_case.py", line 9, in
data_test = makedata()
File "F:\pycharm_project\API\jiekou-python3-master\Public\log.py", line 40, in _wrap
return function(*args, **kwargs)
TypeError: makedata() missing 1 required positional argument: 'filrpath'

testFengzhuang.py中post/get

testFengzhuang.py下,方式写了GET,请求用了POST,请确认?

23 elif self.fangshi=="GET":
24 self.parem = {'key': self.key, 'info': self.connent}
25 response = reques.post(self.url, self.parem)

运行run_http_html.py出现的问题

'touch' �����ڲ����ⲿ���Ҳ���ǿ����еij���
���������ļ���
Traceback (most recent call last):
File "F:/pycharm_project/API/jiekou-python3-master/run_http_html.py", line 33, in
start_interface_html_http()
File "F:/pycharm_project/API/jiekou-python3-master/run_http_html.py", line 29, in start_interface_html_http
send_ding(content=contec)
File "F:\pycharm_project\API\jiekou-python3-master\Public\Dingtalk.py", line 18, in send_ding
f = requests.post(url, data=json.dumps(pagrem), headers=headers)
File "D:\python\lib\site-packages\requests\api.py", line 119, in post
return request('post', url, data=data, json=json, **kwargs)
File "D:\python\lib\site-packages\requests\api.py", line 61, in request
return session.request(method=method, url=url, **kwargs)
File "D:\python\lib\site-packages\requests\sessions.py", line 516, in request
prep = self.prepare_request(req)
File "D:\python\lib\site-packages\requests\sessions.py", line 459, in prepare_request
hooks=merge_hooks(request.hooks, self.hooks),
File "D:\python\lib\site-packages\requests\models.py", line 314, in prepare
self.prepare_url(url, params)
File "D:\python\lib\site-packages\requests\models.py", line 388, in prepare_url
raise MissingSchema(error)
requests.exceptions.MissingSchema: Invalid URL '': No schema supplied. Perhaps you meant http://?

运行run_new.py等 run_x

File "D:\jiekou-python3-master\Public\get_excel.py", line 38, in makedata
listid, listkey, listconeent, listurl, listfangshi, listqiwang, listname=datacel(path)

TypeError: cannot unpack non-iterable NoneType object

Clone到本地后,python install所需库之后,运行不起来?

你好.Clone到本地后,python install所需库之后,python run_excel_re.py提示错误?
D:\workapp\python3\python.exe D:/jiekou-python3/run_excel_re.py
[2020-05-09 17:45:42.707797] INFO: jiekou: 当前模块 requests封装
[2020-05-09 17:45:42.708766] INFO: jiekou: 全部args参数参数信息 , ()
[2020-05-09 17:45:42.708766] INFO: jiekou: 全部kwargs参数信息 , {}
[2020-05-09 17:45:42.710759] INFO: jiekou: 当前模块 解析测试用例文件
[2020-05-09 17:45:42.710759] INFO: jiekou: 全部args参数参数信息 , ('D:\jiekou-python3\test_case_data\case.xlsx',)
[2020-05-09 17:45:42.710759] INFO: jiekou: 全部kwargs参数信息 , {}
[2020-05-09 17:45:42.731704] INFO: jiekou: 当前模块 解析测试用例文件
[2020-05-09 17:45:42.732701] INFO: jiekou: 全部args参数参数信息 , ()
[2020-05-09 17:45:42.732701] INFO: jiekou: 全部kwargs参数信息 , {}
Traceback (most recent call last):
File "D:/jiekou-python3/run_excel_re.py", line 32, in
teThread()
File "D:/jiekou-python3/run_excel_re.py", line 29, in teThread
m.run()
File "D:\workapp\python3\lib\threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "D:/jiekou-python3/run_excel_re.py", line 17, in start
listid,listkey,listconeent,listurl,listfangshi,listqiwang,listname=datacel()
File "D:\jiekou-python3\Public\log.py", line 34, in _wrap
return function(*args, **kwargs)
TypeError: datacel() missing 1 required positional argument: 'filrpath'

运行run_dubbo_html.py出现的问题

这个问题怎么解决?有朋友遇到吗?
Traceback (most recent call last):
File "F:/pycharm_project/API/jiekou-python3-master/run_dubbo_html.py", line 31, in
start_dubbo_case()
File "F:/pycharm_project/API/jiekou-python3-master/run_dubbo_html.py", line 16, in start_dubbo_case
listrelust, list_fail, list_pass, list_json, list_exption, list_weizhi = testdubbointerface()
TypeError: cannot unpack non-iterable NoneType object

testCase下的case.py文件

在下面截取的代码部分中,应该将断言通过出的‘continue’改成‘break’,不然的话,断言通过,case会一直不停的执行
for i in range(len(listurl)):
while error_num<=Config_Try_Num+1:
api = TestApi(url=TestPlanUrl+listurl[i], key=listkey[i], connent=listconeent[i], fangshi=listfangshi[i])
apijson = api.getJson()
if apijson['code'] == 0:
LOG.info('inputdata> 参数:%s, url:%s ,返回:%s,预期:%s' % (listconeent[i], listurl[i], apijson, listqiwang[i]))
assert_re = assert_in(asserqiwang=listqiwang[i], fanhuijson=apijson)
if assert_re['code'] == 0:
list_json.append(apijson['result'])
listrelust.append('pass')
list_pass += 1
error_num=0
continue

运行run_html.py出现的问题

这个问题有朋友遇到吗?怎么解决
Traceback (most recent call last):
File "F:/pycharm_project/API/jiekou-python3-master/run_html.py", line 38, in
tThread()
File "F:/pycharm_project/API/jiekou-python3-master/run_html.py", line 34, in tThread
m.run()
File "D:\python\lib\threading.py", line 870, in run
self._target(*self._args, **self._kwargs)
File "F:/pycharm_project/API/jiekou-python3-master/run_html.py", line 19, in stast
listrelust, list_fail, list_pass, list_json = testinterface()
ValueError: too many values to unpack (expected 4)

python run_new.py缺少makedata

python run_new.py
[2020-06-23 17:35:29.135490] INFO: jiekou: 当前模块 requests封装
[2020-06-23 17:35:29.136489] INFO: jiekou: 全部args参数参数信息 , ()
[2020-06-23 17:35:29.136489] INFO: jiekou: 全部kwargs参数信息 , {}
Traceback (most recent call last):
File "run_new.py", line 3, in
from testCase.ddt_case import MyTest
File "E:\py_demo\jiekou-python3-master\testCase\ddt_case.py", line 2, in
from Public.get_excel import datacel, makedata
ImportError: cannot import name 'makedata' from 'Public.get_excel' (E:\py_demo\jiekou-python3-master\Public\get_excel.py)

email.yaml中配置

建议还是把你email.yaml中的信息脱敏了吧,防人之心不可无。。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.