config.py 文件代码:
# coding=utf-8
''''
构建第一个包 config,用于存放所有接口的入参
构建第二个包 cms_api 用于存放所有的接口请求
构建第三个包 cms_unittest 用于组建接口的测试用例
cms_run用于运行测试用例
report 用于存放生成的报告
utils 工具类 发送邮件和生成报告模块
'''
# 登录接口入参信息
login_url='http://192.168.137.128:8080/cms/manage/loginJump.do'
login_data={'userAccount':'admin','loginPwd':'123456'}
login_headers={'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
#用户管理入参信息
queryUserList_url='http://192.168.137.128:8080/cms/manage/queryUserList.do'
queryUserList_data={'startCreateDate':'','endCreateDate':'','searchValue':'','page':'1'}
queryUserList_headers={'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}
cms_api.py文件代码
# coding=utf-8
import requests
from config import config
session=requests.Session()
class Cms_api(object):
def __init__(self): #构造函数
pass
def login_cms(self):
rep=session.post(url=config.login_url,data=config.login_data,json=config.login_headers)
return rep.json()
def queryUserList(self):
rep=session.post(url=config.queryUserList_url,data=config.queryUserList_data,json=config.queryUserList_headers)
return rep.json()
if __name__ == '__main__':
cms_api=Cms_api()
cms_api.login_cms()
cms_api.queryUserList()
cms_testcase.py代码:
# coding=utf-8
import unittest
from cms_api.cms_api import Cms_api #引入请求包中的类
class Cms_unittest(unittest.TestCase): #定义一个类继承单元框架
@classmethod
def setUpClass(cls):
print '类的开始'
def setUp(self):
print '方法的开始'
def test001_login(self):
rep= Cms_api().login_cms() #直接引用api中的用例
self.assertIn(rep['msg'], u'登录成功!')
def test002_queryUserList(self):
rep=Cms_api().queryUserList() #直接引用api中的用例
def tearDown(self):
print '方法的结束'
@classmethod
def tearDownClass(cls):
print '类的结束'
if __name__ == '__main__':
unittest.main()
cms_run.py文件代码:
# coding=utf-8
import unittest
import requests
import time
import os
from HTMLTestRunnerCN import HTMLTestRunner
#找到当前文件的绝对路径
rep_path=os.path.abspath(os.path.dirname(os.getcwd()))
# print os.getcwd()
# print os.path.dirname(os.getcwd())
# print rep_path
#通过拿取的项目的路径进行组合
rep_path=rep_path+'\cms_report/'
print rep_path
#获取时间
report_time=time.strftime('%Y-%m-%d-%H-%M-%S')
print report_time
#设置报告文件名称
report_file_path=rep_path+report_time+'-report.html'
print report_file_path
#自动搜寻用例执行报告
def all_run():
discover=unittest.defaultTestLoader.discover(start_dir='E:\cms_fenceng\cms_testcase',pattern='*.py')
rep_file=open(report_file_path,'wb')
runner=HTMLTestRunner(stream=rep_file,title=u'框架测试标题',description=u'框架测试描述',tester=u'小陈')
runner.run(discover)
if __name__ == '__main__':
all_run()
|
|