pytest+allure+jenkins持续集成

自动化脚本设计思路

测试数据管理
测试数据采用.py文件的形式做管理,整体想法是一个date文件存接口和参数,一个key文件存公共的key,方便在取值时使用。
date文件样式:

from data.keys import answer_key
from data.data import eve
import random
import string
import os

keys = answer_key.AnswerKeys()
static_path = os.path.split(os.path.abspath(__file__))[0] + '\static'
keys = answer_key.AnswerKeys()
class AnswerData(object):

    data = {
        keys.publish: {
            "url": eve.server + "/post/publish",
            "data": [
                ('authorId', (None, eve.user_id)),
                ('subject', (None, 'CAD可以3D打印吗?')),
                ('bodyText', (None, 'CAD可以3D打印吗')),
                ('postType', (None, 'QA')),
                ('coins', (None, '20')),
            ]
        }

key文件样式

class AnswerKeys(object):
    detail = "detail"
    ads = "ads"
    top_activity_users = "top_activity_users"
    search = "search"
    followed_qa = "followed_qa"
    followed = "followed"
    top_navigation = "top_navigation"
    is_like = "is_like"
    reply = "reply"
    new_reply_list = "new_reply_list"
    recommend = "recommend"
    adopt_answer = "adopt_answer"
    chat = "chat"
    delete_replay = "delete_replay"
    qa = "qa"
    records = "records"
    is_followed_qa = "is_followed_qa"
    search_self = "search_self"
    publish = "publish"
  • 接口调用
    接口调用主要是单接口进行调用
    api文件:
class PayAnswer(object):
    def __init__(self):
        self.order_id = None

    @allure.step("发布付费答疑")
    def publish(self, user_id):
        api = pay_answer_data.data.get(pay_answer_keys.publish)
        api["url"] = api["url"].format(user_id=user_id)
        res = url.get(api)
        if res:
            return res.get("ret")

    @allure.step("审核通过付费答疑")
    def approve(self, pay_answer_id):
        api = pay_answer_data.data.get(pay_answer_keys.change_audit_status)
        api["url"] = api["url"].format(pay_answer_id=pay_answer_id)
        return url.get(api)

    @allure.step("修改付费答疑")
    def modify(self, pay_answer_id):
        api = pay_answer_data.data.get(pay_answer_keys.modify)
        api["url"] = api["url"].format(pay_answer_id=pay_answer_id)
        url.get(api)
  • 业务整合
    也就是集成测试
 @allure.testcase("购买答疑流程")
    def test_buy(self):
        global price
        if pay_answer_id:
            pay_answer_order_id = pay_answer.place(pay_answer_id)

            if pay_answer_order_id:
                pay_answer.open(pay_answer_id)
                price = pay_answer.order_info(pay_answer_order_id)
                pay_answer.payment(pay_answer_order_id, price)
                pay_answer.accept(pay_answer_order_id)
                pay_answer.complete(pay_answer_order_id)
                pay_answer.vote(pay_answer_order_id)
                pay_answer.votes(pay_answer_id)
                pay_answer.list_customer()
                pay_answer.list_expert(user_id)
                pay_answer.pay_answer_orders(pay_answer_id)
                pay_answer.payanswer_order(pay_answer_order_id)
            else:
                error.error_message("订单未生成,或订单详情接口错误")
        else:
            error.error_message("未开通答疑")
  • 断言
    目前断言只有简单的断言,还没有找到合适的断言方式
  • 执行
  • 报告产出

集成到Jenkins

配置构建

cd D:\pycharm\jishulinktest\testscripts
python -m pytest -s -q  --alluredir "D:\Program Files (x86)\Jenkins\workspace\jishulinkAPI\allure-results"
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值