Pytest+BDD实践

1.首先安装查看报告插件  allure

由于之前安装Jenkins插件时候报错了,先用恢复安装重装一下

 

还是不行 先在通知中心  更新下Jenkins 试试(更新不行 尝试降级 同时用了手机的热点的网络 并更新了链接)

 换了Jenkins的更新链接

(27条消息) jenkins更新插件时提示SocketTimeoutException的解决方案_jenkins 检查更新中心: sockettimeoutexception: connect ti_L.K的博客-CSDN博客

(27条消息) 解决Jenkins可选插件列表为空提示“connect time out”问题_weixin_33787529的博客-CSDN博客

 2.下载allure-commandline  虽然不知道是干嘛的

https://github.com/allure-framework/allure2/releases

 把这个包放到一个好找的地方,加下环境变量

 准备测试脚本  报错了

 找到原因了    路径多了个bin  删掉就好了

 

 但是打开报告 怎么都是空白没有加载的???? 下午再看

3.pytest 速成

 运行方法1:

 运行方法2:

 pytest 语法规则 pytest执行测试用例 - 爱码网 (likecs.com)

找了一个小时终于找到  pytest  empty suite 的原因了,妈的这一行太坑了,一个个csdn写的跟屎一样。互相喂屎

 

import pytest


class Add:
    def add(self,x,y):
        return x+y

class Test_add():
    def setup(self):
        self.a=Add()

    def test_add1(self):
        print("testcase 1")
        assert self.a.add(1,2) == 3
    def test_add2(self):
        print("testcase 2")
        assert self.a.add(1,2.2) == 3.2

# if __name__ == '__main__':
#     pytest.main(["-s",'pyttt01.py'])



'''
error======Empty suite!!!!!

1.类名用Test命名
2.代码中使用了main函数调用类中的内容
'''
View Code

 

 

import pytest
import time
class Add:
    def add(self,x,y):
        return x+y

class TestLogin:
    age =11
    #在所有用例之前只执行一次

    def setup_class(self):
        print("在每个类执行之前操作,比如创建日志对象、创建数据库链接、创建接口请求对象")


    def setup(self):
        print("在执行用例前执行前置操作")

    def test_01_baili(self):
        time.sleep(1)
#        assert 1==2
        print('111111111111')

    @pytest.mark.skip(reason="就是不想执行该用例")
    def test_04_ff(self):
        print("ff")

    @pytest.mark.abc
    @pytest.mark.skipif(age>10,reason="已成年")
    def test_06_kk(self):
        print("kk")

    @pytest.mark.run(order=1)  #第一个执行
    def test_03_mm(self):
        print("mm")
    @pytest.mark.abc
    def test_05_pp(self):
        print("pp")

    def teardown(self):
        print("在执行测试用例后进行的后置操作")

    def teardown_class(self):
        print("在每个类执行之后操作,比如销毁日志对象、数据库链接、接口请求对象")

class TestAdd:
    def setup_class(self):
        print("start...")
        self.aaa=Add()
    @pytest.mark.parametrize('parm',[[1,2,3],[3,4,5],[5,6,11]])
    def testadd(self,parm):
        print(parm)
        #注意 需要指定self对象的测试方法!!!!
        #又错了!!!!!!!  add 传递的是两个参数
        assert self.aaa.add(parm[0],parm[1])==parm[2]
    def teardown_class(self):
        print("end...")
View Code

 

 

生成报告 碰到一个问题

 

 

总算搞明白了 要在Jenkins上面打开  直接打开报告的本地网页是只有空白的

问题是怎么没有case呢?

 

 问题解决   不需要加项目名  只要写你生成的json的目录名就可以了

 

补充一下安装虚拟环境

1.这个没有python???

2.virtualenv 成功装上了

 

posted @ 2023-06-06 11:18  张喆坤  阅读(161)  评论(0编辑  收藏  举报