Pytest+BDD实践
1.首先安装查看报告插件 allure
由于之前安装Jenkins插件时候报错了,先用恢复安装重装一下
还是不行 先在通知中心 更新下Jenkins 试试(更新不行 尝试降级 同时用了手机的热点的网络 并更新了链接)
换了Jenkins的更新链接
(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函数调用类中的内容 '''
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...")
生成报告 碰到一个问题
总算搞明白了 要在Jenkins上面打开 直接打开报告的本地网页是只有空白的
问题是怎么没有case呢?
问题解决 不需要加项目名 只要写你生成的json的目录名就可以了
补充一下安装虚拟环境
1.这个没有python???
2.virtualenv 成功装上了