当前位置:网站首页>Getting started with pytest -- description of fixture parameters
Getting started with pytest -- description of fixture parameters
2022-07-02 04:42:00 【Peng Yuyan in the testing industry】
fixture Implement pre post
Parameters
scope -- Scope
function: function / Methods are executed before and after
The manual call method is to add fixture The name of
class: class After and before execution
The way to manually call is to add @pytest.mark.usefixtures(" Method name ") Decorator
package/session: The whole project session After and before execution .
When session It only works on one .py File is equivalent to module
Generally, they will combine conftest.py File to implement
autouse -- Automatic execution
Default :False; If instead True, You don't need to call , In the corresponding scope, it will automatically execute
params -- Realize parameterization ( Data driven )
ids -- Parameters , It has to be with params Use it together , Alias the parameter
name -- to fixture names
yield Data can be returned , similar return, however return You can't connect code later , and yield Later, you can continue to write other code . So in “ After ” In operation , We are all used to yield.
When scope The value of is class,autouse The value of is False when , How to call fixture:
@pytest.mark.usefixtures(" Method name ")

params For parameterization
For example, a use case needs to be used separately 3 Different data ( Equivalence classes and boundary values ) To test , If a use case code is written three times, it's a little stupid , Use this time params This parameter can

explain :
1、params=read_yaml() --params= Method name (), call
2、exe_sql(request) Be careful , In brackets is request That's what the regulations say , No why?
3、request.param Call through read_yaml() Method to get the data , It is required to write like this , The above parameter is params, Here is param, It is required to write like this
4、exe_sql I used to print here print(request.param) Look at the , And then yield Of . To illustrate , Is to realize parameterization ( Data driven ), To emphasize directly, pass yield Method can pass the obtained value as a parameter to other methods
5、test_api() Method reference fixture, Pass in the method fixture Modified method name
Execution results :

You can see , Use case 2 is executed three times with test data .
ids Not to be used alone , It has to be with params Use it together , The function is to alias the parameter
Look at the execution result above

If your data is too long , Then the display here will be messy , At this time, you can use ids This parameter

Execution results :

name The function is to give fixture names
Up here we use fixture The method of decoration is exe_sql, If this method is long or you don't want to call it, call it by this name , You can use it name to fixture The method of modification is to change the name

Be careful : When you give fixture Method of decoration (exe_sql()) Yes name After changing the name of the parameter , When calling use cases, you should use your changed name (db), Use the original method name (exe_sql) It's a mistake , Because I can't find it .
The following is the supporting information , For doing 【 software test 】 For our friends, it should be the most comprehensive and complete war preparation warehouse , This warehouse also accompanied me through the most difficult journey , I hope it can help you !
Last : It can be in the official account : Programmer Xiaohao ! Get a free copy of 216 Page software testing engineer interview guide document information . And the corresponding video learning tutorial is free to share !, It includes basic knowledge 、Linux necessary 、Shell、 The principles of the Internet 、Mysql database 、 Special topic of bag capturing tools 、 Interface testing tool 、 Test advanced -Python Programming 、Web automated testing 、APP automated testing 、 Interface automation testing 、 Testing advanced continuous integration 、 Test architecture development test framework 、 Performance testing 、 Safety test, etc. .
If my blog helps you 、 If you like my blog content , please “ give the thumbs-up ” “ Comment on ” “ Collection ” One button, three links ! Friends who like software testing , You can join our testing technology exchange group :779450660 There are various software testing resources and technical discussions )
边栏推荐
- Common locks in MySQL
- Idea automatic package import and automatic package deletion settings
- 60后关机程序
- unable to execute xxx. SH: operation not permitted
- Mapping location after kotlin confusion
- CY7C68013A之keil编译代码
- Thinkphp內核工單系統源碼商業開源版 多用戶+多客服+短信+郵件通知
- MySQL table insert Chinese change? Solution to the problem of No
- LeetCode-对链表进行插入排序
- Exposure X8标准版图片后期滤镜PS、LR等软件的插件
猜你喜欢

Leetcode merge sort linked list

Thinkphp内核工单系统源码商业开源版 多用户+多客服+短信+邮件通知

Deeply understand the concepts of synchronization and asynchrony, blocking and non blocking, parallel and serial

Starting from the classification of database, I understand the map database

office_ Delete the last page of word (the seemingly blank page)

Unity particle Foundation

Research on the security of ognl and El expressions and memory horse

VMware installation win10 reports an error: operating system not found

Embedded-c language-9-makefile/ structure / Consortium

Read "the way to clean code" - function names should express their behavior
随机推荐
C language practice - binary search (half search)
Ognl和EL表达式以及内存马的安全研究
Pytoch yolov5 runs bug solution from 0:
Is it safe to open an account with first venture securities? I like to open an account. How can I open it?
Online incremental migration of DM database
What are the rules and trading hours of agricultural futures contracts? How much is the handling fee deposit?
Summary of common string processing functions in C language
oracle 存储过程与job任务设置
WiFi 5GHz frequency
Spring moves are coming. Watch the gods fight
Vmware安装win10报错:operating system not found
DJB Hash
Mysql表insert中文变?号的问题解决办法
cs架构下抓包的几种方法
TypeScript函数详解
Arbre binaire pour résoudre le problème (2)
LeetCode-归并排序链表
Leetcode merge sort linked list
ThinkPHP kernel work order system source code commercial open source version multi user + multi customer service + SMS + email notification
Okcc why is cloud call center better than traditional call center?