pytest allure jenkins,jenkins接口自动化测试

  pytest allure jenkins,jenkins接口自动化测试

  本文介绍了利用Pytest Request Allure Jenkins实现界面自动化的方法,并通过实例代码进行了详细介绍。对大家的学习或者工作都有一定的参考价值,有需要的朋友可以参考一下。

  用Pytest请求Allure Jenkins实现界面自动化;实现一套脚本在多种环境下的执行;使用参数化的数据驱动模式实现接口和测试数据的分离,使用logger定制实现自动化测试日志记录。实施步骤:

  框架结构:

  

1、接口自动化项目代码编写(先在window实现)

 

  

1.1 项目准备

 

  首先在窗口中安装响应的环境依赖项。

  安装python3.7(为了保证pip能用,一般安装python3.7会自动安装pip)安装pytest框架- pip安装pytest安装请求库- pip安装请求安装openpyxl库(测试数据保存在excel中,依赖于读取excel的库)-Pip安装OpenPyXL安装pycharm (python脚本工具)注意:可能需要一些依赖的东西,在项目步骤中会根据需要进行安装。

  

1.2 设计基于pytest的测试框架结构

 

  在pycharm中开发和构建项目结构

  Common:存储公共方法

  Config:存储环境配置信息

  Lib:存储第三方库

  main:框架的主入口

  Report:门店诱惑力测试报告。

  Test_case:存储测试用例。

  Test_data:存储测试数据。

  

1.3 实现接口公共请求发送能力

 

  从这一步开始正式编写代码。

  封装http请求的公共能力(封装请求库,成为自己的公共处理能力),放在公共目录下。

  #编码: utf-8

  导入请求

  导入urllib3

  # from urllib3.exceptions导入InsecureRequestWarning

  urllib3.disable_warnings()

  #添加这句话不会报告错误(请求证书警告)

  # requests . packages . URL lib 3 . disable _ warnings(insurerequestwarning)

  类HTTPRequests(object):

  def __init__(self,url):

  self.url=url

  self.req=requests.session()

  #根据您自己公司的请求标题默认值进行配置。

  self.head={

  用户代理“:”Mozilla/5.0(Windows NT 6.2;WOW64三叉戟/7.0;rv:11.0)像壁虎一样,

  接受 : image/gif,image/jpeg,image/pjpeg,application/x-ms-application,application/xaml xml,

  应用程序/x-ms-xbap,应用程序/vnd.ms-excel,应用程序/vnd.ms-powerpoint,

  应用程序/msword,*/*,

  接受语言 : zh-CN}

  #封装您自己的get请求和get资源

  def get(self,uri= ,params= ,data= ,headers=None,cookies=None,verify=False):

  如果标题为None:

  头=self.head

  # print(请求头是:{} 。格式(标题

  s))

   url = self.url + uri

   response = self.req.get(url, params=params, data=data, headers=headers, cookies=cookies, verify=verify)

   return response

   # 封装自己的post请求,获取资源

   def post(self, uri=, params=, data=, headers=None, cookies=None, verify=False):

   if headers is None:

   headers = self.head

   url = self.url + uri

   response = self.req.post(url, params=params, data=data, headers=headers, cookies=cookies, verify=verify)

   return response

   # 封装自己的put请求,获取资源

   def put(self, uri=, params=, data=, headers=None, cookies=None, verify=False):

   if headers is None:

   headers = self.head

   url = self.url + uri

   response = self.req.put(url, params=params, data=data, headers=headers, cookies=cookies, verify=verify)

   return response

   # 封装自己的delete请求,获取资源

   def delete(self, uri=, params=, data=, headers=None, cookies=None, verify=False):

   if headers is None:

   headers = self.head

   url = self.url + uri

   response = self.req.delete(url, params=params, data=data, headers=headers, cookies=cookies, verify=verify)

   return response

  

1.4 抽离测试环境配置信息

 

  这个步骤的目的有三个

  

  • 为了配置三个不同环境(测试、开发、生产)的URL,每个环境接口测试的URL是不一样的,设置这样一个枚举类,方便后面的程序根据不同的环境,获取不同环境的URL,里面的URL依据自己公司的地址修改,放到config目录

  • 获取token需要登录,这里可以设置一个全局的账号密码,这个账号密码获取的token可以给整个接口自动化使用

  • 配置获取token的uri,这个uri三个环境的是一致的,登录的接口依据环境只是URL不同,URI还是一致的。

 

  

 

  

# encoding: utf-8

 

  

1.5 创建conftest.py放置一些公共的fixture

 

  1、pytest_addoption,设置了只允许输入dev/test/prod三个参数,以区分测试、开发、生产三个环境
2、get_env的fixture,它的作用是你在命令行执行接口自动化时,可以输入--env test将对应的环境信息传入进去
3、http的fixture,这里依据--env test传入的环境信息,去枚举类里获取对应环境的URL,然后返回一个http的session,供测试案例使用
4、get_token_head,依据--env test传入的环境信息,调用获取token方法,并将token放置到请求头head里返回(token一般放在请求头里,这里依据自己公司的请求,返回对应的token信息就可以了)

  

# encoding: utf-8

 

  

1.6 将测试数据放到excel中

 

  我们的测试数据是放在excel中,注意,这里有prodtestdev三个目录,对应三个环境的测试数据,我这里只创建了test测试环境的测试数据。这里的测试数据需要包含两部分:

  

  • 你调用接口传入的所有参数;

  • 你要断言的所有信息,因为你传的参数不同,返回的内容就不同,你断言的内容也就不相同了。

 

  

 

  

 

  那么这时候,就需要一个读取excel的公共方法了,放到common里

  

 

  

# 创建解析excel的方法

 

  这里,还需要再test_data中,创建一个文件,为了获取前面test_data依据环境创建的dev/test或prod文件目录

  

 

  

1.7 开始编写自动化测试案例了

 

  测试案例中有几个点,需要解释一下:
1、authBaseDir,这个就是根据test_data/test拼接出来的获取测试数据的目录
2、allure.feature,在测试报告中,会展现这个接口名称,这个名称最好与你公司的开发写的接口模块保持一致,方便后续查找问题
3、allure.story 这里也要与开发写的具体某个接口的名称保持一致。
4、pytest.mark.parametrize,这里就是运用的DDT数据驱动的模式,从excel中一条一条的获取数据,然后执行同一条接口测试用例,excel中比如有3条数据,那么就表示这个案例依据每一条数据的参数,总共执行了三次

  

# encoding: utf-8

 

  

1.8 集成allure

 

  写到这里,是不是发现前面的allure.feature是不是用不了呢?这是因为我们还没有集成allure进去。
1、下载allure,放到lib目录下,使你的工程具备allure的能力。

  

 

  2、pip install allure-pytest安装pytest对应的allure包

  

1.9 这时候就可以创建一些执行策略了

 

  1、先在main中创建一个pytest.ini文件,设置一些执行参数

  

 

  2、在main中创建执行策略

  

  • 先在run_pytest方法中,执行案例并生成allure的json格式的报告文件,这里可以带--env prod将对应环境信息传入,这里没有传是因为默认是test环境,不传入的话就是执行的test环境测试数据

  • general_report方法时将生成的json格式的报告,最终生成html文件放置到report下面的目录中

  • 创建一个线程,先执行run_pytest,再执行general_report,避免json文件没有生成,这样生成html文件的报告数据可能不全,甚至没有。

 

  

 

  

# encoding: utf-8

 

  

1.10 自动化执行生成结果

 

  在windows下,右键执行main下面的run_test_allure_html.py(就是上一个步骤的python文件),然后打开report/allure_report/index.html看看报告是否生成成功

  

 

  

2. jenkins环境搭建(linux环境)

 

  好了,到这一步,在windows下我们已经执行成功,现在我们要集成到jenkins环境去,并搭建在linux环境下。
1、将代码上传到公司的git(没有git的自己搭建一套吧)
2、找一台linux机器(自己去自己公司找资源)
3、在linux下安装jenkins(我是放到tomcat中)、python3、pytest、allure、openpyxl(这些步骤在网上可以搜索到,这里不赘述了)
4、启动linux下的tomcat,然后在window下打开jenkins的服务地址

  

 

  5、创建一个自由风格的job

  

 

  6、Job需要填写的具体内容有:

  A、选择丢弃旧的构建(保留的构建天数依据自己的情况选择)

  

 

  B、限制项目的运行节点依据自己的情况选择(我这里给我的jenkins主服务器取了一个叫linux的标签,我的机器也是linux机器)

  

 

  C、git--将git上的代码拉下来

  

 

  D、执行shell,这里把代码从git拉到了jenkins的执行目录里,一般在linux下的root/.jenkins里,在执行shell时,最好chmod修改下整个工程的目录权限,因为有可能因权限问题执行不了

  

 

  E、构建后的操作:这里需要再jenkins里安装allure插件才能看到allure Report,第一个Path,这里写的是allure生成的json文件的目录,所以是report/allure_result,第二个Report path指的是生成的index.html文件的目录,所以是report/allure_report

  

 

  

立即构建并查看报告

 

  上面的job建成后,就可以点击立即构建,执行了。执行完后,点击allure Report查看最终的报告。

  

 

  

 

  以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持盛行IT软件开发工作室。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

相关文章阅读

  • android自动化测试框架有哪些,ios手机自动化测试工具,Android和iOS 测试五个最好的开源自动化工具
  • ,,如何使用IOS自动化测试工具UIAutomation
  • android自动化测试框架有哪些,ios手机自动化测试工具
  • ,,Python自动化测试框架pytest的详解安装与运行
  • ,,python自动化测试之DDT数据驱动的实现代码
  • selenium+java自动化测试框架,selenium自动化测试pdf
  • java自动化测试框架,java 自动化测试工具
  • 接口自动化测试面试问题,关于接口测试面试题
  • 自动化测试工具可以用在哪种测试过程中,测试自动化工具有哪些
  • airtest和appium自动化测试,airtest全自动脚本
  • 测试自动化面试问题及答案,自动化测试面试题及答案大全(3)
  • 自动化测试框架是什么,什么叫自动化测试框架
  • python+selenium自动化测试框架搭建,selenium自动化测试环境搭建
  • 接口测试与接口自动化测试,接口自动化测试项目实战
  • appium自动化测试环境搭建,python appium自动化测试框架
  • 留言与评论(共有 条评论)
       
    验证码: