python接口自动化实际演练

先看一下实战结果,以及邮件内容:

1.用例结构:

测试用例对应的代码,登录用例,test_case.py:

import requests
import unittest
import json

host_ip = '域名'
class post_request(unittest.TestCase):
    def setUp(self):
        self.login_url = 'http://'+host_ip+'/bg/login/in' #根据实际接口,自己填写
        self.list_url = "http://app.iworkgo.com/bg/bootpage/listPage"
        self.header = {"Content-Type": "application/x-www-form-urlencoded",
                       "x-bg-token":"token"
                       } #根据实际内容,自己填写
        data = {"username": "邮箱账号", "password":"密码"}#根据实际内容,自己填写
        #将data序列化为json格式数据,传递给data参数
        r = requests.post(self.login_url, data=data)
        res= eval(r.text)
        self.header["x-bg-token"] = res["data"]["token"]#获取动态token


    def test_post_login(self):
        """登录"""
        url=self.login_url
        # url = 'http://139.196.6.141:8082/bg/login/in'
        # header = self.header
        data = {"username": "邮箱账号", "password":"密码"}#根据实际内容,自己填写
        #将data序列化为json格式数据,传递给data参数
        r = requests.post(url, data=data)
        res = eval(r.text)
        # print(r.text)
        # assert res["code"]==200
        self.assertEqual(res['code'],200)
        # assert response['msg']=='success'

登录后查看园区列表的接口数据(无需登录,前面已经动态获取token了)代码如下:

    def test_post_listpage(self):
        """园区列表"""
        url = "http://"+host_ip+"/bg/bootpage/listPage"
        header = self.header
        data = {"pageFrom":"1",
                "pageSize":"10"
                }#根据实际内容,自己填写
        r = requests.post(url, data=json.dumps(data), headers=header)
        # print (r.text)
        res = eval(r.text)
        # assert res['code']==200
        self.assertEqual(res['code'],200)

其他模块列表的查询跟上面是同理

2.运行用例生成测试报告:

运行用例并生成对应的html报告代码如下,run_testcase.py:

import unittest
import HTMLTestRunner
import time
# 相对路径
test_dir ='./test_case'
test_dir1 ='./report'
discover = unittest.defaultTestLoader.discover(test_dir, pattern='test*.py')
# 定义带有当前测试时间的报告,防止前一次报告被覆盖
now = time.strftime("%Y-%m-%d %H_%M_%S")
filename = test_dir1 + '/' + now + 'result.html'
# 二进制打开,准备写入文件
fp = open(filename, 'wb')
# 定义测试报告
runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u'测试报告', description=u'用例执行情况')
runner.run(discover)

3.生成报告发送报告到指定邮箱,send_email.py代码如图:

from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
import smtplib
import time
import os


def new_report(path):
    lists = os.listdir(path)
    lists.sort(key=lambda fn: os.path.getatime(path + '\\' + fn))
    file_new = os.path.join(path, lists[-1])
    return file_new
# file = new_report('D:\\TestProject\\AutoTest\\report')
# print file

file_new = new_report('E:\\AutoTest\\report')
username = '邮箱账号'
password = '开通163邮箱授权码对应的密码'
sender = username
receivers = ','.join(['zhull@wecut.com',"15736933982@163.com"])
f = open(file_new, 'rb')
mail_body = f.read()
f.close()

msg = MIMEMultipart()
msg['Subject'] = u'接口自动化测试报告'
msg['From'] = sender
msg['To'] = receivers

text = MIMEText("<p>详细内容请查看附件</p>", 'html')
puretext = MIMEText(mail_body, 'html', 'utf-8')
msg.attach(text)
msg.attach(puretext)


att = MIMEApplication(open(file_new, 'rb').read())
att.add_header('Content-Disposition', 'attachment', filename='xlink_report.html')
msg.attach(att)

smtp = smtplib.SMTP()
smtp.connect('smtp.163.com',25)
smtp.login(username, password)
smtp.sendmail(sender, receivers, msg.as_string())
time.sleep(2)
smtp.quit()

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值