pytest框架+allure2框架的基本使用(2019-09-03更新)
前提准备:
pip安装allure-pytest、pytest和allure-python-commons包,安装过程如下图:
1 2 3 | pip install allure - pytest pip install pytest pip install allure - python - commons |
安装成功如下:
allure --version 2.12.1 pytest --version This is pytest version 5.1.2, ...
常见命令基本操作说明:
1、pytest -s -q --alluredir report:在当前目录下创建一个report文件夹
2、pytest xxxx.py --alluredir report:在当前目录下创建一个report文件夹,并生成json文件
3、pytest -s -q --alluredir 路径 result / py.test --alluredir 路径 result:在路径目录下创建一个result文件夹
4、allure generate report/ -o report/html:基于生成的json文件,产生HTML版本的测试结果报告
5、allure serve target/allure-results:自动打开浏览器显示测试结果报告
附录:
allure和pytest命令大全,命令比较多,所以再次记录了解下,后期有机会尝试并理解各个命令的作用:
allure命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | Could not parse arguments: Expected a command, got - h Usage: allure [options] [command] [command options] Options: - - help Print commandline help . - q, - - quiet Switch on the quiet mode. Default: false - v, - - verbose Switch on the verbose mode. Default: false - - version Print commandline version. Default: false Commands: generate Generate the report Usage: generate [options] The directories with allure results Options: - c, - - clean Clean Allure report directory before generating a new one. Default: false - - config Allure commandline config path. If specified overrides values from - - profile and - - configDirectory. - - configDirectory Allure commandline configurations directory. By default uses ALLURE_HOME directory. - - profile Allure commandline configuration profile. - o, - - report - dir , - - output The directory to generate Allure report into. Default: allure - report serve Serve the report Usage: serve [options] The directories with allure results Options: - - config Allure commandline config path. If specified overrides values from - - profile and - - configDirectory. - - configDirectory Allure commandline configurations directory. By default uses ALLURE_HOME directory. - h, - - host This host will be used to start web server for the report. - p, - - port This port will be used to start web server for the report. Default: 0 - - profile Allure commandline configuration profile. open Open generated report Usage: open [options] The report directory Options: - h, - - host This host will be used to start web server for the report. - p, - - port This port will be used to start web server for the report. Default: 0 plugin Generate the report Usage: plugin [options] Options: - - config Allure commandline config path. If specified overrides values from - - profile and - - configDirectory. - - configDirectory Allure commandline configurations directory. By default uses ALLURE_HOME directory. - - profile Allure commandline configuration profile. |
pytest命令:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 | usage: pytest [options] [file_or_dir] [file_or_dir] [...] positional arguments: file_or_dir general: - k EXPRESSION only run tests which match the given substring expression. An expression is a python evaluatable expression where all names are substring - matched against test names and their parent classes. Example: - k 'test_method or test_other' matches all test functions and classes whose name contains 'test_method' or 'test_other' , while - k ' not test_method ' matches those that don' t contain 'test_method' in their names. - k ' not test_method and not test_other' will eliminate the matches. Additionally keywords are matched to classes and functions containing extra names in their 'extra_keyword_matches' set , as well as functions which have names assigned directly to them. - m MARKEXPR only run tests matching given mark expression. example: - m 'mark1 and not mark2' . - - markers show markers (builtin, plugin and per - project ones). - x, - - exitfirst exit instantly on first error or failed test. - - maxfail = num exit after first num failures or errors. - - strict - markers, - - strict markers not registered in the `markers` section of the configuration file raise errors. - c file load configuration from ` file ` instead of trying to locate one of the implicit configuration files. - - continue - on - collection - errors Force test execution even if collection errors occur. - - rootdir = ROOTDIR Define root directory for tests. Can be relative path: 'root_dir' , './root_dir' , 'root_dir/another_dir/' ; absolute path: '/home/user/root_dir' ; path with variables: '$HOME/root_dir' . - - fixtures, - - funcargs show available fixtures, sorted by plugin appearance (fixtures with leading '_' are only shown with '-v' ) - - fixtures - per - test show fixtures per test - - import - mode = {prepend,append} prepend / append to sys.path when importing test modules, default is to prepend. - - pdb start the interactive Python debugger on errors or KeyboardInterrupt. - - pdbcls = modulename:classname start a custom interactive Python debugger on errors. For example: - - pdbcls = IPython.terminal.debugger:TerminalPdb - - trace Immediately break when running each test. - - capture = method per - test capturing method: one of fd|sys|no. - s shortcut for - - capture = no. - - runxfail report the results of xfail tests as if they were not marked - - lf, - - last - failed rerun only the tests that failed at the last run ( or all if none failed) - - ff, - - failed - first run all tests but run the last failures first. This may re - order tests and thus lead to repeated fixture setup / teardown - - nf, - - new - first run tests from new files first, then the rest of the tests sorted by file mtime - - cache - show = [CACHESHOW] show cache contents, don't perform collection or tests. Optional argument: glob (default: '*' ). - - cache - clear remove all cache contents at start of test run. - - lfnf = { all ,none}, - - last - failed - no - failures = { all ,none} which tests to run with no previously (known) failures. - - sw, - - stepwise exit on test failure and continue from last failing test next time - - stepwise - skip ignore the first failing test but stop on the next failing test - - allure - severities = SEVERITIES_SET Comma - separated list of severity names. Tests only with these severities will be run. Possible values are: blocker, critical, normal, minor, trivial. - - allure - epics = EPICS_SET Comma - separated list of epic names. Run tests that have at least one of the specified feature labels. - - allure - features = FEATURES_SET Comma - separated list of feature names. Run tests that have at least one of the specified feature labels. - - allure - stories = STORIES_SET Comma - separated list of story names. Run tests that have at least one of the specified story labels. - - allure - link - pattern = LINK_TYPE:LINK_PATTERN Url pattern for link type . Allows short links in test, like 'issue-1' . Text will be formatted to full url with python str . format (). reporting: - - durations = N show N slowest setup / test durations (N = 0 for all ). - v, - - verbose increase verbosity. - q, - - quiet decrease verbosity. - - verbosity = VERBOSE set verbosity - r chars show extra test summary info as specified by chars: (f)ailed, (E)rror, (s)kipped, (x)failed, (X)passed, (p)assed, (P)assed with output, (a)ll except passed (p / P), or (A)ll. (w)arnings are enabled by default (see - - disable - warnings). - - disable - warnings, - - disable - pytest - warnings disable warnings summary - l, - - showlocals show locals in tracebacks (disabled by default). - - tb = style traceback print mode (auto / long / short / line / native / no). - - show - capture = {no,stdout,stderr,log, all } Controls how captured stdout / stderr / log is shown on failed tests. Default is 'all' . - - full - trace don't cut any tracebacks (default is to cut). - - color = color color terminal output (yes / no / auto). - - pastebin = mode send failed| all info to bpaste.net pastebin service. - - junit - xml = path create junit - xml style report file at given path. - - junit - prefix = str prepend prefix to classnames in junit - xml output - - result - log = path DEPRECATED path for machine - readable result log. - - html = path create html report file at given path. - - self - contained - html create a self - contained html file containing all necessary styles, scripts, and images - this means that the report may not render or function where CSP restrictions are in place (see https: / / developer.mozilla.org / docs / Web / Security / CSP) - - css = path append given css file content to report style file . collection: - - collect - only only collect tests, don't execute them. - - pyargs try to interpret all arguments as python packages. - - ignore = path ignore path during collection (multi - allowed). - - ignore - glob = path ignore path pattern during collection (multi - allowed). - - deselect = nodeid_prefix deselect item during collection (multi - allowed). - - confcutdir = dir only load conftest.py's relative to specified dir . - - noconftest Don't load any conftest.py files. - - keep - duplicates Keep duplicate tests. - - collect - in - virtualenv Don't ignore tests in a local virtualenv directory - - doctest - modules run doctests in all .py modules - - doctest - report = {none,cdiff,ndiff,udiff,only_first_failure} choose another output format for diffs on doctest failure - - doctest - glob = pat doctests file matching pattern, default: test * .txt - - doctest - ignore - import - errors ignore doctest ImportErrors - - doctest - continue - on - failure for a given doctest, continue to run after the first failure test session debugging and configuration: - - basetemp = dir base temporary directory for this test run.(warning: this directory is removed if it exists) - - version display pytest lib version and import information. - h, - - help show help message and configuration info - p name early - load given plugin module name or entry point (multi - allowed). To avoid loading of plugins, use the `no:` prefix, e.g. `no:doctest`. - - trace - config trace considerations of conftest.py files. - - debug store internal tracing debug information in 'pytestdebug.log' . - o OVERRIDE_INI, - - override - ini = OVERRIDE_INI override ini option with "option=value" style, e.g. ` - o xfail_strict = True - o cache_dir = cache`. - - assert = MODE Control assertion debugging tools. 'plain' performs no assertion debugging. 'rewrite' (the default) rewrites assert statements in test modules on import to provide assert expression information. - - setup - only only setup fixtures, do not execute tests. - - setup - show show setup of fixtures while executing tests. - - setup - plan show what fixtures and tests would be executed but don't execute anything. - - variables = path path to variables file . pytest - warnings: - W PYTHONWARNINGS, - - pythonwarnings = PYTHONWARNINGS set which warnings to report, see - W option of python itself. logging: - - no - print - logs disable printing caught logs on failed tests. - - log - level = LOG_LEVEL logging level used by the logging module - - log - format = LOG_FORMAT log format as used by the logging module. - - log - date - format = LOG_DATE_FORMAT log date format as used by the logging module. - - log - cli - level = LOG_CLI_LEVEL cli logging level. - - log - cli - format = LOG_CLI_FORMAT log format as used by the logging module. - - log - cli - date - format = LOG_CLI_DATE_FORMAT log date format as used by the logging module. - - log - file = LOG_FILE path to a file when logging will be written to. - - log - file - level = LOG_FILE_LEVEL log file logging level. - - log - file - format = LOG_FILE_FORMAT log format as used by the logging module. - - log - file - date - format = LOG_FILE_DATE_FORMAT log date format as used by the logging module. reporting: - - alluredir = DIR Generate Allure report in the specified directory (may not exist) - - clean - alluredir Clean alluredir folder if it exists - - allure - no - capture Do not attach pytest captured logging / stdout / stderr to report forked subprocess test execution: - - forked box each test run in a separate process (unix) selenium: - - firefox - path = path path to the firefox binary. - - firefox - preference = name value additional firefox preferences. - - firefox - profile = path path to the firefox profile. - - firefox - extension = path path to a firefox extension. - - driver = str webdriver implementation. - - driver - path = path path to the driver executable. - - capability = key value additional capabilities. - - event - listener = str selenium eventlistener class , e.g. package.module.EventListenerClassName. - - host = str host that the selenium server is listening on, which will default to the cloud provider default or localhost. - - port = num port that the selenium server is listening on, which will default to the cloud provider default or localhost. safety: - - sensitive - url = SENSITIVE_URL regular expression for identifying sensitive urls. distributed and subprocess testing: - n numprocesses, - - numprocesses = numprocesses shortcut for '--dist=load --tx=NUM*popen' , you can use 'auto' here for auto detection CPUs number on host system and it will be 0 when used with - - pdb - - maxprocesses = maxprocesses limit the maximum number of workers to process the tests when using - - numprocesses = auto - - max - worker - restart = MAXWORKERRESTART, - - max - slave - restart = MAXWORKERRESTART maximum number of workers that can be restarted when crashed ( set to zero to disable this feature) ' - - max - slave - restart' option is deprecated and will be removed in a future release - - dist = distmode set mode for distributing tests to exec environments. each: send each test to all available environments. load: load balance by sending any pending test to any available environment. loadscope: load balance by sending pending groups of tests in the same scope to any available environment. loadfile: load balance by sending test grouped by file to any available environment. (default) no: run tests inprocess, don't distribute. - - tx = xspec add a test execution environment. some examples: - - tx popen / / python = python2. 5 - - tx socket = 192.168 . 1.102 : 8888 - - tx ssh = user@codespeak.net / / chdir = testcache - d load - balance tests. shortcut for '--dist=load' - - rsyncdir = DIR add directory for rsyncing to remote tx nodes. - - rsyncignore = GLOB add expression for ignores when rsyncing to remote tx nodes. - - boxed backward compatibility alias for pytest - forked - - forked - f, - - looponfail run tests in subprocess, wait for modified files and re - run failing test set until all pass . custom options: - - base - url = url base url for the application under test. - - verify - base - url verify the base url. - - metadata = key value additional metadata. [pytest] ini - options in the first pytest.ini|tox.ini|setup.cfg file found: markers (linelist): markers for test functions empty_parameter_set_mark (string): default marker for empty parametersets norecursedirs (args): directory patterns to avoid for recursion testpaths (args): directories to search for tests when no files or directories are given in the command line. usefixtures (args): list of default fixtures to be used with this project python_files (args): glob - style file patterns for Python test module discovery python_classes (args): prefixes or glob names for Python test class discovery python_functions (args): prefixes or glob names for Python test function and method discovery disable_test_id_escaping_and_forfeit_all_rights_to_community_support ( bool ): disable string escape non - ascii characters, might cause unwanted side effects(use at your own risk) console_output_style (string): console output: "classic" , or with additional progress information ( "progress" (percentage) | "count" ). xfail_strict ( bool ): default for the strict parameter of xfail markers when not given explicitly (default: False ) enable_assertion_pass_hook ( bool ): Enables the pytest_assertion_pass hook.Make sure to delete any previously generated pyc cache files. junit_suite_name (string): Test suite name for JUnit report junit_logging (string): Write captured log messages to JUnit report: one of no|system - out|system - err junit_log_passing_tests ( bool ): Capture log information for passing tests to JUnit report: junit_duration_report (string): Duration time to report: one of total|call junit_family (string): Emit XML for schema: one of legacy|xunit1|xunit2 doctest_optionflags (args): option flags for doctests doctest_encoding (string): encoding used for doctest files cache_dir (string): cache directory path. filterwarnings (linelist): Each line specifies a pattern for warnings.filterwarnings. Processed after - W and - - pythonwarnings. log_print ( bool ): default value for - - no - print - logs log_level (string): default value for - - log - level log_format (string): default value for - - log - format log_date_format (string): default value for - - log - date - format log_cli ( bool ): enable log display during test run (also known as "live logging" ). log_cli_level (string): default value for - - log - cli - level log_cli_format (string): default value for - - log - cli - format log_cli_date_format (string): default value for - - log - cli - date - format log_file (string): default value for - - log - file log_file_level (string): default value for - - log - file - level log_file_format (string): default value for - - log - file - format log_file_date_format (string): default value for - - log - file - date - format faulthandler_timeout (string): Dump the traceback of all threads if a test takes more than TIMEOUT seconds to finish. Not available on Windows. addopts (args): extra command line options minversion (string): minimally required pytest version base_url (string): base url for the application under test. selenium_capture_debug (string): when debug is captured ( 'never' , 'failure' , 'always' ) selenium_exclude_debug (string): debug to exclude from capture saucelabs_job_auth (string): Authorization options for the Sauce Labs job: ( 'none' , 'token' , 'hour' , 'day' ) sensitive_url (string): regular expression for identifying sensitive urls. rsyncdirs (pathlist): list of (relative) paths to be rsynced for remote distributed testing. rsyncignore (pathlist): list of (relative) glob - style paths to be ignored for rsyncing. looponfailroots (pathlist): directories to check for changes environment variables: PYTEST_ADDOPTS extra command line options PYTEST_PLUGINS comma - separated plugins to load during startup PYTEST_DISABLE_PLUGIN_AUTOLOAD set to disable plugin auto - loading PYTEST_DEBUG set to enable debug tracing of pytest's internals to see available markers type : pytest - - markers to see available fixtures type : pytest - - fixtures (shown according to specified file_or_dir or current dir if not specified; fixtures with leading '_' are only shown with the '-v' option |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 现代计算机视觉入门之:什么是图片特征编码
· .NET 9 new features-C#13新的锁类型和语义
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· Spring AI + Ollama 实现 deepseek-r1 的API服务和调用
· 《HelloGitHub》第 106 期
· 数据库服务器 SQL Server 版本升级公告
· C#/.NET/.NET Core技术前沿周刊 | 第 23 期(2025年1.20-1.26)