diff --git a/README.md b/README.md index 1925c0f..48edf26 100644 --- a/README.md +++ b/README.md @@ -351,6 +351,7 @@ case_info: # 具体的用例数据,是以列表的形式进行管理 参考示例: ``` + assert_sql: contains_user: message: 断言数据库:查询tokens表,表中存在该登录用户记录;预期查询结果的长度为1 sql: select * from tokens where user_id=${user_id}; @@ -589,6 +590,8 @@ excel表单2名称是:示例模块 平常在做功能测试的时候,经常会遇到某个模块不稳定,偶然会出现一些bug,对于这种问题我们会针对此用例反复执行多次,最终复现出问题来。 自动化运行用例时候,也会出现偶然的bug,可以针对单个用例重复执行多次。 +- [pytest-xdist(分布式执行)](https://www.gitlink.org.cn/zone/tester/newdetail/785) +当测试用例非常多的时候,一条条按顺序执行测试用例,是很浪费测试时间的。这时候就可以用到 pytest-xdist,让自动化测试用例可以分布式执行,从而大大节省测试时间。 ## 九、初始化项目可能遇到的问题 - [测试机安装python版本与本框架要求不一致,怎么办?](https://www.gitlink.org.cn/zone/tester/newdetail/245) diff --git a/files/Books.md b/files/Books.md new file mode 100644 index 0000000..c4fe8b5 --- /dev/null +++ b/files/Books.md @@ -0,0 +1,1043 @@ +Other book lists: + +* [Awesome Go Books](https://github.com/dariubs/GoBooks) +* [Go Language Resources](http://go-lang.cat-v.org/books) + +Sorted by publication date, ascending. + +## Languages + +- [English](#english) +- [Chinese](#chinese) +- [Japanese](#japanese) +- [French](#french) +- [German](#german) +- [Brazilian portuguese](#brazilian-portuguese) +- [Russian](#russian) +- [Spanish](#spanish) +- [Korean](#korean) +- [Indonesian](#indonesian) +- [Italian](#italian) +- [Polish](#polish) +- [Persian](#persian) + +# English + * **Go Programming** + * Author: John P. Baugh + * Publication Date: June 16, 2010 + * ISBN: 978-1453636671 + + * **The Way to Go: A Thorough Introduction to the Go Programming Language** + * Author: Ivo Balbaert + * Publication Date: March 7, 2012 + * ISBN: 978-1469769165 + + * **The Go Programming Language Phrasebook** + * Author: David Chisnall + * Publication Date: April 30, 2012 + * ISBN: 978-0321817143 + * Reference: https://www.informit.com/store/go-programming-language-phrasebook-9780321817143 + + * **Programming in Go: Creating Applications for the 21st Century** + * Author: Mark Summerfield + * Publication Date: May 4, 2012 + * ISBN: 978-0321774637 + * Reference: https://www.informit.com/store/programming-in-go-creating-applications-for-the-21st-9780321774637 + + * **An Introduction to Programming in Go** + * Author: Caleb Doxsey + * Publication Date: September 3, 2012 + * ISBN: 978-1478355823 + * Reference: https://www.golang-book.com/ + + * **Mastering Concurrency in Go** + * Author: Nathan Kozyra + * Publication Date: July 23, 2014 + * ISBN: 978-1783983483 + * Reference: https://www.packtpub.com/application-development/mastering-concurrency-go + + * **The Little Go Book** + * Author: Karl Seguin + * Publication Date: October 2014 + * ISBN: none: free ebook/PDF/online version + * Reference: https://openmymind.net/The-Little-Go-Book/ + + * **Go Programming Blueprints** + * Author: Mat Ryer + * Publication Date: January 23, 2015 + * ISBN: 978-1783988020 + * Reference: https://www.packtpub.com/application-development/go-programming-blueprints + + * **Level Up Your Web Apps With Go** + * Author: Mal Curtis + * Publication Date: April, 2015 + * ISBN: 978-0992461294 + * Reference: https://learnable.com/books/level-up-your-web-apps-with-go + + * **Mastering Go Web Services** + * Author: Nathan Kozyra + * Publication Date: April, 2015 + * ISBN: 9781783981304 + * Reference: https://www.packtpub.com/web-development/mastering-go-web-services + + * **Go In Action** + * Authors: William Kennedy with Brian Ketelsen and Erik St. Martin + * Publication Date: November, 2015 + * ISBN: 9781617291784 + * Reference: https://www.manning.com/books/go-in-action + * Discount Code (44% off): goiaucf + + * **The Go Programming Language (Addison-Wesley Professional Computing Series)** + * Author: Alan A.A. Donovan and Brian Kernighan + * Publication Date: November, 2015 + * ISBN: 978-0134190440 + * Reference: https://www.gopl.io/ + +* **Web Development with Go: Building Scalable Web Apps and RESTful Services** + * Author: Shiju Varghese + * Publication Date: December, 2015 + * ISBN: 978-1484210536 + * Reference: https://www.apress.com/9781484210536 + +* **Go Programming by Example** (e-book) + * Author: Agus Kurniawan + * Publication Date: February 21, 2015 + * ISBN: -- + * Reference: https://www.amazon.com/dp/B00TWLZVQQ/ + +* **Introducing Go** + * Author: Caleb Doxsey + * Publication Date: January 2016 + * ISBN: 978-1491941959 + * Reference: https://shop.oreilly.com/product/0636920046516.do + +* **Write webapps in Go without using a framework** (Free e-book) + * Author: Suraj Patil + * Publication Date: October 2016 + * ISBN: NA since book is self published on http://leanpub.com + * References: https://github.com/thewhitetulip/web-dev-golang-anti-textbook, https://leanpub.com/antitextbookGo/ + +* **Learning Go Web Development** + * Author: Nathan Kozyra + * Publication Date: April, 2016 + * ISBN: 978-1785282317 + * Reference: https://www.packtpub.com/web-development/learning-go-web-development + +* **Go Web Programming** + * Author: Sau Sheong Chang + * Publication Date: July 22, 2016 + * ISBN: 9781617292569 + * Reference: http://manning.com/chang/ + +* **Go: Building Web Applications** + * Author: Nathan Kozyra and Mat Ryer + * Publication Date: August 31, 2016 + * ISBN: 9781787123496 + * https://www.packtpub.com/product/go-building-web-applications/9781787123496 + +* **Go in Practice** + * Authors: Matt Butcher and Matt Farina + * Publication Date: October 1, 2016 + * ISBN: 9781633430075 + * Reference: http://manning.com/butcher/ + +* **Go Programming Blueprints - Second Edition** + * Author: Mat Ryer + * Publication Date: October 2016 + * ISBN: 978-1786468949 + * Reference: https://www.packtpub.com/application-development/go-programming-blueprints-second-edition + +* **Learning Go programming** + * Author: Vladimir Vivien + * Publication Date: October 2016 + * ISBN: 978-1784395438 + * Reference: https://www.packtpub.com/application-development/learning-go-programming + +* **Go Recipes** + * Author: Shiju Varghese + * Publication Date: November 2016 + * ISBN: 978-1-4842-1188-5 + * Reference: http://www.apress.com/us/book/9781484211892 + +* **Cloud Native Go: Building Web Applications and Microservices for the Cloud with Go and React** + * Author: Kevin Hoffman and Dan Nemeth + * Publication Date: December 23, 2016 + * ISBN: 978-0-672-33779-6 + * Reference: https://www.informit.com/store/cloud-native-go-building-web-applications-and-microservices-9780672337796 + +* **Go Design Patterns** + * Author: Mario Castro Contreras + * Publication Date: February 2017 + * ISBN: 978-1786466204 + * Reference: https://www.packtpub.com/application-development/go-design-patterns + +* **Go Cookbook** + * Author: Aaron Torres + * Publication Date: June 2017 + * ISBN: 978-1783286836 + * Reference: https://www.packtpub.com/application-development/go-cookbook + +* **Go: Design Patterns for Real-World Projects** + * Authors: Vladimir Vivien, Mario Castro Contreras, Mat Ryer + * Publication Date: June 2017 + * ISBN: 978-1788390552 + * Reference: https://www.packtpub.com/application-development/go-design-patterns-real-world-projects + +* **Web Development with Go: Learn to Create Real World Web Applications using Go** + * Author: Jonathan Calhoun + * Publication Date: June 2017 + * ISBN: N/A (self published) + * Reference: [http://usegolang.com](http://usegolang.com) + +* **Building Microservices with Go** + * Author: Nic Jackson + * Publication Date: July 2017 + * ISBN: 978-1786468666 + * Reference: https://www.packtpub.com/application-development/building-microservices-go + +* **Concurrency in Go** + * Author: Katherine Cox-Buday + * Publication Date: August 2017 + * ISBN: 978-1491941195 + * Reference: http://shop.oreilly.com/product/0636920046189.do + +* **Machine Learning With Go** + * Author: Daniel Whitenack + * Publication Date: September 2017 + * ISBN: 978-1785882104 + * Reference: https://www.packtpub.com/big-data-and-business-intelligence/machine-learning-go + +* **Go Systems Programming** + * Author: Mihalis Tsoukalos + * Publication Date: September 2017 + * ISBN: 978-1787125643 + * Reference: https://www.packtpub.com/networking-and-servers/go-systems-programming + +* **Let's Go! Learn to Build Professional Web Applications With Go** + * Author: Alex Edwards + * Publication Date: September 2017 + * ISBN: N/A (self-published) + * Reference: https://lets-go.alexedwards.net + +* **Learning Functional Programming in Go** + * Author: Lex Sheehan + * Publication Date: November 2017 + * ISBN: 978-1787281394 + * Reference: https://www.packtpub.com/application-development/learning-functional-programming-go + +* **Cloud Native programming with Golang** + * Author: Mina Andrawos, Martin Helmich + * Publication Date: December 2017 + * ISBN: 978-1787125988 + * Reference: https://www.packtpub.com/application-development/cloud-native-programming-golang + +* **Isomorphic Go** + * Author: Kamesh Balasubramanian + * Publication Date: December 2017 + * ISBN: 978-1788394185 + * Reference: + * https://www.packtpub.com/web-development/isomorphic-go + * https://www.amazon.com/dp/1788394186 + +* **Security with Go** + * Author: John Daniel Leon + * Publication Date: January 2018 + * ISBN: 978-1788627917 + * Reference: https://www.amazon.com/dp/1788627911 + +* **Go Standard Library Cookbook** + * Author: Radomir Sohlich + * Publication Date: February 2018 + * ISBN: 9781788475273 + * Reference: https://www.amazon.com/dp/1788475275 + +* **Distributed Computing with Go** + * Author: V.N. Nikhil Anurag + * Publication Date: February 2018 + * ISBN: 9781787125384 + * Reference: https://www.amazon.com/dp/1787125386 + + * **Go Web Development Cookbook** + * Author: Arpit Aggarwal + * Publication Date: April 2018 + * ISBN: 9781787286740 + * Reference: https://www.amazon.com/Web-Development-Cookbook-full-stack-applications/dp/1787286746 + +* **Mastering Go** + * Author: Mihalis Tsoukalos + * Publication Date: April 2018 + * ISBN: 9781788626545 + * Reference: https://www.amazon.com/Mastering-production-applications-concurrency-cloud-native/dp/1788626540 + +* **Echo Quick Start Guide** + * Author: J. Ben Huson + * Publication Date: May 2018 + * ISBN: 9781789139433 + * Reference: https://www.amazon.com/dp/1789139430 + +* **Hands-On Serverless Applications with Go** + * Author: Mohamed Labouardy + * Publication Date: August 2018 + * ISBN: 9781789134612 + * Reference: https://www.packtpub.com/application-development/hands-serverless-applications-go + +* **Hands-On Go Programming** + * Author: Tarik Guney + * Publication Date: August 2018 + * ISBN: 9781789531756 + * Reference: https://www.packtpub.com/application-development/hands-go-programming + +* **Get Programming with Go** + * Author: Nathan Youngman, Roger Peppe + * Publication Date: August 2018 + * ISBN: 9781617293092 + * Reference: [https://www.manning.com/books/get-programming-with-go](https://www.manning.com/books/get-programming-with-go?utm_source=nathany&utm_medium=affiliate&utm_campaign=book_youngman_get_9_17_18&a_aid=nathany&a_bid=53f68821) + +* **Go Machine Learning Projects** + * Author: Xuanyi Chew + * Publication Date: November 2018 + * ISBN: 9781788993401 + * Reference: https://www.packtpub.com/big-data-and-business-intelligence/go-machine-learning-projects + +* **Hands-On Dependency Injection in Go** + * Author: Corey Scott + * Publication Date: November 2018 + * ISBN: 9781789132762 + * Reference: https://www.packtpub.com/application-development/hands-dependency-injection-go + +* **Hands-On Software Architecture with Golang** + * Author: Jyotiswarup Raiturkar + * Publication Date: December 2018 + * ISBN: 9781788622592 + * Reference: https://www.packtpub.com/application-development/hands-software-architecture-golang + +* **Hands-On Fundamentals of Data Science with Go (Video)** + * Author: Sanket Gupta + * Publication Date: December 2018 + * ISBN: 9781789539103 + * Reference: https://www.packtpub.com/big-data-and-business-intelligence/hands-fundamentals-data-science-go-video + +* **Building RESTful APIs with Go (Video)** + * Author: Bartlomiej Walczak + * Publication Date: December 2018 + * ISBN: 978178961499 + * Reference: https://www.packtpub.com/application-development/building-restful-apis-go-video + +* **Go Web Scraping Quick Start Guide** + * Author: Vincent Smith + * Publication Date: January 2019 + * ISBN: 9781789615708 + * Reference: https://www.packtpub.com/big-data-and-business-intelligence/go-web-scraping-quick-start-guide + +* **Advanced Go Programming in 7 Days (Video)** + * Author: Theofanis Despoudis + * Publication Date: January 2019 + * ISBN: 9781788994880 + * Reference: https://www.packtpub.com/application-development/advanced-go-programming-7-days-video + +* **Hands-On GUI Application Development in Go** + * Author: Andrew Williams + * Publication Date: February 2019 + * ISBN: 9781789138412 + * Reference: https://www.packtpub.com/application-development/hands-gui-application-development-go + +* **Hands-On Full Stack Development with Go** + * Author: Mina Andrawos + * Publication Date: March 2019 + * ISBN: 9781789130751 + * Reference: https://www.packtpub.com/web-development/hands-full-stack-development-go + +* **Learn Data Structures and Algorithms with Golang** + * Author: Bhagvan Kommadi + * Publication Date: March 2019 + * ISBN: 9781789618501 + * Reference: https://www.packtpub.com/application-development/learn-data-structures-and-algorithms-golang + +* **Machine Learning With Go - Second Edition** + * Author: Daniel Whitenack + * Publication Date: April 2019 + * ISBN: 9781789619898 + * Reference: https://www.packtpub.com/big-data-and-business-intelligence/machine-learning-go-second-edition?utm_source=Golang&utm_medium=referral&utm_campaign=Outreach + +* **Machine Learning with Go Quick Start Guide** + * Author: Michael Bironneau and Toby Coleman + * Publication Date: May 2019 + * ISBN: 9781838550356 + * Reference: https://www.packtpub.com/big-data-and-business-intelligence/machine-learning-go-quick-start-guide?utm_source=Golang&utm_medium=referral&utm_campaign=Outreach + +* **Mastering Go - Second Edition** + * Author: Mihalis Tsoukalos + * Publication Date: 10 Sept 2019 + * ISBN: 9781838559335 + * Reference: https://www.packtpub.com/programming/mastering-go-second-edition + * Reference: https://www.amazon.com/Mastering-production-applications-concurrency-structures/dp/1838559337/ + +* **Hands-on Microservices with Go and MongoDB [Video]** + * Author: Gautam Rege + * Publication Date: 22 Nov 2019 + * ISBN: 9781838648558 + * References: https://www.packtpub.com/web-development/hands-on-microservices-with-go-and-mongodb-video?utm_source=Golang&utm_medium=&utm_campaign=Outreach + +* **The Go Workshop** (e-book) + * Author: Delio D'Anna + * Publication Date: December 30, 2019 + * ISBN: 9781838647940 + * References: https://www.packtpub.com/programming/the-go-workshop?utm_source=GoLang&utm_medium=Github&utm_campaign=OutreachB14177dollar5 + +* **Concise Go** + * Author: Yaniv Astamnep + * Publication Date: January 22, 2020 + * ISBN: 9798602419887 + * References: + * https://www.amazon.com/Concise-Go-Yaniv-Astamnep-ebook/dp/B0844MWN92 + * https://www.amazon.com/Concise-Go-Yaniv-Astamnep/dp/B083XVZ2BZ + +* **Black Hat Go** + * Author: Tom Steele, Chris Patten, and Dan Kottmann + * Publication Date: January 24, 2020 + * ISBN: 978-1-59327-865-6 + * Reference: https://www.nostarch.com/blackhatgo + +* **Hands-On Software Engineering with Golang** + * Author: Hands-On Software Engineering with Golang + * Publication Date: January 24, 2020 + * ISBN: 978-1-83855-449-1 + * Reference: https://www.packtpub.com/product/hands-on-software-engineering-with-golang/9781838554491 + +* **Nonsequential and Distributed Programming with Go** + * Author: Christian Maurer + * Publication Date: January 21, 2021 + * ISBN: 978-3-658-29781-7 (Softcover) and 978-3-658-20782-4 (eBook) + * References: + * https://www.springer.com/gp/book/9783658297817 + + +* **Building Cross-Platform GUI Applications with Fyne** + * Author: Andrew Williams + * Publication Date: January 2021 + * ISBN: 9781800563162 + * Reference: https://www.packtpub.com/product/building-cross-platform-gui-applications-with-fyne/9781800563162 + +* **Hands-on Go programming** + * Author: Sachchidanand Singh, Prithvipal Singh + * Publication Date: February 2021 + * ISBN: 9789389898194 + * Reference: https://bpbonline.com/products/hands-on-go-programming + +* **Learning Go: An Idiomatic Approach to Real-World Go Programming** + * Author: Jon Bodner + * Publication Date: March 23, 2021 + * Reference: https://www.oreilly.com/library/view/learning-go/9781492077206/ + +* **Network Programming with Go** + * Author: Adam Woodbeck + * Publication Date: March 25, 2021 + * Reference: https://nostarch.com/networkprogrammingwithgo + +* **Distributed Services with Go: Your Guide to Reliable, Scalable, and Maintainable Systems** + * Author: Travis Jeffery + * Publication Date: March 2021 + * ISBN: 9781680507607 + * Reference: https://pragprog.com/titles/tjgo/distributed-services-with-go/ + +* **Cloud Native Go** + * Author: Matthew A. Titmus + * Publication Date: May 11, 2021 + * ISBN: 9781492076339 + * Reference: https://www.oreilly.com/library/view/cloud-native-go/9781492076322/ + +* **Building Distributed Applications in Gin** + * Author: Mohamed Labouardy + * Publication Date: July 23, 2021 + * Reference: https://www.packtpub.com/product/building-distributed-applications-in-gin/9781801074858 + +* **Ultimate Go Notebook** + * Author: William Kennedy and Hoanh An + * Publication Date: August 13, 2021 + * Reference: https://courses.ardanlabs.com/courses/ultimate-go-notebook + +* **Mastering Go - Third Edition** + * Author: Mihalis Tsoukalos + * Publication Date: 31 August 2021 + * ISBN-10: 1801079315 + * ISBN-13: 978-1801079310 + * Reference: https://www.packtpub.com/product/mastering-go-third-edition/9781801079310 + * Reference: https://www.amazon.com/Mastering-Go-professional-utilities-concurrent-dp-1801079315/dp/1801079315 + +* **Go Optimizations 101** + * Author: Tapir Liu + * Publication Date: 22 December 2021 + * Reference: https://go101.org/optimizations/101.html + +* **Go Details & Tips 101** + * Author: Tapir Liu + * Publication Date: 22 December 2021 + * Reference: https://go101.org/details-and-tips/101.html + +* **Powerful Command-Line Applications in Go** + * Author: Ricardo Gerardi + * Publication Date: December 2021 + * ISBN: 9781680506969 + * Reference: https://pragprog.com/titles/rggo/powerful-command-line-applications-in-go/ + +* **Go Generics 101** + * Author: Tapir Liu + * Publication Date: 07 April 2021 + * Reference: https://go101.org/generics/101.html + +* **Know Go: Generics** (e-book) + * Author: John Arundel + * Publication Date: April 2022 + * Reference: https://bitfieldconsulting.com/books/generics + +* **The Power of Go: Tools** (e-book) + * Author: John Arundel + * Publication Date: September 2022 + * Reference: https://bitfieldconsulting.com/books/tools + +* **The Power of Go: Tests** (e-book) + * Author: John Arundel + * Publication Date: September 2022 + * Reference: https://bitfieldconsulting.com/books/tests + +* **For the Love of Go** (e-book) + * Author: John Arundel + * Publication Date: September 2022 + * Reference: https://bitfieldconsulting.com/books/love + +* **100 Go Mistakes and How to Avoid Them** + * Author: Teiva Harsanyi + * Publication Date: October 2022 + * ISBN: 9781617299599 + * Reference: https://www.manning.com/books/100-go-mistakes-and-how-to-avoid-them + +*** +## Early Access + + * **A Comprehensive Guide to Go Programming** + * Authors: Baiju Muthukadan + * Publication Date: June 10, 2015 + * ISBN: --- + * Reference: http://golang.muthukadan.net/ + +* **WebAssembly in Action** + * Author: Gerard Gallant + * Publication Date: Spring 2019 (estimated) + * ISBN: 9781617295744 + * Reference: https://www.manning.com/books/webassembly-in-action + +* **Build an Orchestrator in Go** + * Author: Tim Boring + * Publication Date: May 2022 (estimated) + * ISBN: 9781617299759 + * Reference: https://www.manning.com/books/build-an-orchestrator-in-go + +* **Effective Go** + * Author: Effective Go + * Publication Date: Fall 2022 (estimated) + * ISBN: 9781617299896 + * Reference: https://www.manning.com/books/effective-go + +* **Efficient Go** + * Author: Bartlomiej Plotka and Frederic Branczyk + * Publication Date: December 2022 + * ISBN: 9781098105648 + * Reference: https://www.oreilly.com/library/view/efficient-go/9781098105709/ + +* **gRPC Microservices in Go** + * Authors: Huseyin BABAL + * Publication Date: Spring 2023 + * ISBN: --- + * Reference: https://shortener.manning.com/44lB + +## Available without Publication Date + + * **Learning Go** (e-book) + * Author: Miek Gieben + * Publication Date: --- + * ISBN: --- + * Reference: http://archive.miek.nl/projects/learninggo/ + + * **Network Programming with Go** (e-book) + * Author: Jan Newmarch + * Publication Date: --- + * ISBN: --- + * References: http://jan.newmarch.name/go/ + + * **Go Bootcamp** (e-book) + * Author: Matt Aimonetti + * Publication Date: --- + * ISBN: --- + * References: http://www.golangbootcamp.com/ + + * **A Go Developer's Notebook** (e-book) + * Author: Eleanor McHugh + * Publication Date: --- + * ISBN: --- + * References: https://leanpub.com/GoNotebook + + * **Go, The Standard Library** (e-book) + * Author: Daniel Huckstep + * Publication Date: --- + * ISBN: --- + * References: http://thestandardlibrary.com/go.html + + * **Practical Cryptography with Go** (e-book) + * Author: Kyle Isom + * Publication Date: --- + * ISBN: --- + * References: https://leanpub.com/gocrypto + + * **The Ultimate Guide to Building Database-Driven Apps with Go** (e-book) + * Author: Baron Schwartz + * Publication Date: --- + * ISBN: --- + * References: https://vividcortex.com/resources/building-database-driven-apps-with-go/ + + * **Building Web Apps with Go** (e-book) + * Author: Jeremy Saenz + * Publication Date: --- + * ISBN: --- + * References: https://www.gitbook.com/book/codegangsta/building-web-apps-with-go/details + + * **How do I Write and Deploy Simple Web Apps with Go?** (e-book) + * Author: Satish Talim + * Publication Date: --- + * ISBN: --- + * References: https://leanpub.com/howdoibuildawebappwithgo + + * **Test-driven development with Go** (e-book) + * Author: Yigal Duppen + * Publication Date: --- + * ISBN: --- + * References: https://leanpub.com/golang-tdd + + * **Learn Go** (e-book) + * Author: Gyu-ho Lee + * Publication Date: --- + * ISBN: --- + * References: https://github.com/gyuho/learn#contents + + * **Learn Golang the Hard Way** (e-book) + * Author: Laszlo Csontos + * Publication Date: --- + * ISBN: --- + * References: http://www.learngolangthehardway.org/ + + * **Go 101** (e-book) + * Author: Tapir Liu + * Publication Date: --- + * ISBN: --- + * References: https://go101.org + + * **Creative DIY Microcontroller Projects with TinyGo and WebAssembly** + * Author: Tobias Theel + * Publication Date: May 2021 + * ISBN: 9781800560208 + * References: https://www.packtpub.com/product/creative-diy-microcontroller-projects-with-tinygo-and-webassembly/9781800560208 + + * **Go for Javascript Developers** + * Author: Maor Zamski and Daniel Singer + * Publication Date: --- + * ISBN: --- + * References: https://github.com/pazams/go-for-javascript-developers + + * **Learn Go with Tests** + * Author: Chris James + * Publication Date: --- + * ISBN: --- + * References: https://quii.gitbook.io/learn-go-with-tests/ + + * **Practical Go Lessons** + * Author: Maximilien Andile + * Publication Date: --- + * ISBN: --- + * References: https://www.practical-go-lessons.com/ + + +## Cancelled or Status Indeterminable + + * **Microservices in Go** + * Authors: Matthew Campbell + * Publication Date: Fall 2015 (est.) + * ISBN: --- + * Reference: http://microservicesingo.com/ + * Status: [Cancelled per O'Reilly Employee](http://support.oreilly.com/oreilly/topics/availability-of-microservices-in-go-use-go-to-build-scalable-backends-by-matthew-campbell) + +# Chinese + * **Go语言·云动力** + * Author: 樊虹剑(fango) + * Publication Date: 2012-06 + * ISBN: 978-7-115-28307-8 + * Reference: http://www.ituring.com.cn/book/1040 + + * **Go语言编程** + * Author: 许式伟 + * Publication Date: 2012-08 + * ISBN: 978-7-115-29036-6 + * Reference: http://www.ituring.com.cn/book/967 + + * **Go Web编程** + * Author: 谢孟军 + * Publication Date: 2013-05 + * ISBN: 9787121200915 + * Reference: https://github.com/astaxie/build-web-application-with-golang/ + + * **Go语言程序设计 (Programming in Go: Creating Applications for the 21st Century)** + * Author: Mark Summerfield + * Translator: 许式伟, 吕桂华, 徐立, 何李石 + * Publication Date: 2013-08 + * ISBN: 978-7-115-31790-2 + * Reference: https://www.ptpress.com.cn/shopping/buy?bookId=27c4a9e0-e3df-4cb4-8992-b42c2e4368e8 + + * **Go并发编程实战** + * Author: 郝林 + * Publication Date: 2015-01-01 + * ISBN: 9787115373984 + * Reference: http://www.ptpress.com.cn/Book.aspx?id=39783 + + * **学习 Go 语言** (e-book / Translation) + * Author: Xing Xing (mikespook) + * Publication Date: --- + * ISBN: --- + * Reference: http://www.mikespook.com/learning-go/ + + * **Go 学习笔记 - 第四版** (e-book) + * Author: 雨痕(qyuhen) + * Publication Date: --- + * ISBN: --- + * Reference: https://github.com/qyuhen/book + + * **Go语言高级编程** (实体书 & e-book) + * Author: 柴树杉(chai2010) + * Publication Date: 2019-07 + * ISBN: 978-7-115-51036-5 + * Reference: https://www.epubit.com/bookDetails?id=N40090 + * Reference: https://github.com/chai2010/advanced-go-programming-book + + * **Go语言定制指南** (实体书 & e-book) + * Author: 柴树杉(chai2010) + * Publication Date: 2022-03 + * ISBN: 978-7-115-58441-0 + * Reference: https://www.epubit.com/bookDetails?id=UBc86f749c1eb7 + * Reference: https://github.com/chai2010/go-ast-book + + * **Go语言101** (e-book) + * Author: 老貘 + * Publication Date: --- + * ISBN: --- + * References: https://gfw.go101.org/ + + * **µGo语言实现——如何从头开发一个迷你Go语言编译器** (e-book) + * Author: 柴树杉(chai2010) + * Publication Date: --- + * ISBN: --- + * Reference: https://github.com/chai2010/ugo-compiler-book + +# Japanese + * **はじめての「Go言語」** + * Author: 茨木 隆彰 + * Publication Date: 2010-11 + * ISBN: 978-4777515592 + * Reference: + + * **Go言語プログラミング入門on Google App Engine** + * Author: 横山 隆司 + * Publication Date: 2011-12 + * ISBN: 978-4798031804 + * Reference: + + * **はじめてのGoogle App Engine Go言語編** + * Author: 茨木 隆彰 + * Publication Date: 2012-2 + * ISBN: 978-4777516605 + * Reference: + + * **プログラミング言語Goフレーズブック** + * Author: David Chisnall (著), デイビッド・チズナール (著), 柴田 芳樹 (翻訳) + * Publication Date: 2012-10 + * ISBN: 978-4864010962 + * Reference: + + * **基礎からわかる Go言語** + * Author: 古川 昇 + * Publication Date: 2012-11 + * ISBN: 978-4863541177 + * Reference: + + * **Go言語によるWebアプリケーション開発** + * Author: Mat Ryer (著)、鵜飼 文敏 (監訳)、牧野 聡 (訳) + * Publication Date: 2016-01 + * ISBN: 978-4-87311-752-2 + * Reference: http://www.oreilly.co.jp/books/9784873117522/ + + * **プログラミング言語Go** + * Authors: Alan A. A. Donovan, Brian W. Kernighan; translated by Yoshiki Shibata + * Publication Date: 20 June 2016 + * ISBN: 978-4-62130-025-1 + * Reference: http://www.gopl.io/translations.html + + * **みんなのGo言語** + * Authors: 松木雅幸, mattn, 藤原俊一郎, 中島大一, 牧 大輔, 鈴木健太 + * Publication Date: 9 Sep 2016 + * ISBN: 978-4774183923 + * Reference: http://www.amazon.co.jp/exec/obidos/ASIN/477418392X/ + + * **Go言語による並行処理** + * Authors: Katherine Cox-Buday(著)、山口 能迪(訳) + * Publication Date: 26 Oct 2018 + * ISBN: 978-4-87311-846-8 + * Reference: https://www.oreilly.co.jp/books/9784873118468/ + + * **改訂2版 みんなのGo言語** + * Authors: 松木雅幸, mattn, 藤原俊一郎, 中島大一, 上田 拓也, 牧 大輔, 鈴木健太 + * Publication Date: August 1, 2019 + * ISBN: 978-4297107277 + * Reference: https://gihyo.jp/book/2019/978-4-297-10727-7 + + * **Go言語プログラミングエッセンス** + * Authors: mattn + * Publication Date: Mar 9, 2023 + * ISBN: 978-4297134198 + * Reference: https://gihyo.jp/book/2023/978-4-297-13419-8 + +# French + + * **Programmer en Go - Pourquoi ? Comment ?** + * Author: Rudy Rigot + * Publication Date: 24 Jan 2018 + * ISBN: 978-2-8227-0660-5 + * Reference: https://www.d-booker.fr/go-bases/499-programmer-en-go-pourquoi-comment.html + + * **Le langage Go - Les fondamentaux du langage** + * Author: Frédéric G. Marand + * Publication Date: 23 Jun 2020 + * ISBN: 978-2100804108 + * Reference (book site): https://osinet.fr/go/ + * Reference (publisher): https://www.dunod.com/sciences-techniques/langage-go-fondamentaux-du-langage + + +# German + * **Programmierung in Google Go** (not available for buying any more) + * Authors: Rainer Feike and Steffen Blass + * Publication Date: 2010-11 + * ISBN: 978-3-8632-4722-5 + * Reference (Amazon): http://www.amazon.de/Programmierung-Google-Beispiele-professionelle-Anwendung/dp/3827330092 + * Reference (Google Books): https://books.google.de/books?id=E4IL5dT1yLsC&printsec=frontcover&hl=de#v=onepage&q&f=false + + * **Systemprogrammierung in Google Go** + * Author: Frank Müller + * Publication Date: 2011-01 + * ISBN: 978-3-89864-712-0 + * Reference: http://dpunkt.de/buecher/3762/-systemprogrammierung-in-google-go.html + + * **Nichtsequentielle und Verteilte Programmierung mit Go** (4th edition) (available as print and e-book) + * Author: Christian Maurer + * Publication Date: 2019-07 + * ISBN: 978-3-658-26289-1 (Softcover) and 978-3-658-26290-7 (eBook) + * Reference: https://www.springer.com/de/book/9783658262891 + + * **Einstieg in Google Go** (e-book) + * Author: Christian Himpel and Mario Deilmann + * Publication Date: 2012-04 + * ISBN: 978-3-86802-415-9 + * Reference: http://entwickler.de/press/Einstieg-in-Google-Go + +# Brazilian Portuguese + * **A Linguagem de Programação Go** + * Author: Alan A. A. Donovan, Brian W. Kernighan + * Publication Date: 2017 + * ISBN: 978-85-7522-546-2 + * Reference: https://novatec.com.br/livros/linguagem-de-programacao-go/ + + * **Programando em Go: crie aplicações com a linguagem do Google** + * Author: Caio Filipini + * Publication Date: 2014-07-01 + * ISBN: 978-85-66250-49-7 + * Reference: http://www.casadocodigo.com.br/products/livro-google-go + + * **Introdução à Linguagem Go: Crie Programas Escaláveis e Confiáveis** + * Author: Caleb Doxsey + * Publication Date: 2016-08-04 + * ISBN: 978-85-75224-89-2 + * Reference: http://shop.oreilly.com/product/0636920046516.do + +# Russian + * **Программирование на языке Go** + * Author: Марк Саммерфильд + * Publication Date: 2013-02-14 + * ISBN: 978-5-94074-854-0 + * Reference: http://dmkpress.com/catalog/computer/programming/978-5-94074-854-0/ + + * **Язык программирования Go** + * Author: Алан А. А. Донован, Брайан У. Керниган + * Publication Date: 2016-04-21 + * ISBN: 978-5-8459-2051-5 + * Reference: http://www.williamspublishing.com/Books/978-5-8459-2051-5.html + + * **Go на практике** + * Author: Батчер М., Фарина М. + * Publication Date: 2017-01 + * ISBN: 978-5-97060-477-9 + * Reference: http://dmkpress.com/catalog/computer/programming/978-5-97060-477-9/ + + * **Golang для профи: работа с сетью, многопоточность, структуры данных и машинное обучение с Go** + * Author: Цукалос М. + * Publication Date: 2020 + * ISBN: 978-5-4461-1617-1 + * Reference: https://www.piter.com/product/golang-dlya-profi-rabota-s-setyu-mnogopotochnost-struktury-dannyh-i-mashinnoe-obuchenie-s-go + +# Español + * **Aprende Go en Y minutos**https://go101.org + * Author: Nacho Pacheco + * Publication Date: 2015-02-24 + * ISBN: --- + * Reference: https://www.gitbook.com/book/nachopacheco/aprende-go-en-y-minutos/ + + * **Constr­uyendo­ aplic­acione­s Web ­con Go** + * Author: Nacho Pacheco + * Publication Date: 2015-02-18 + * ISBN: --- + * Reference: https://www.gitbook.com/book/nachopacheco/cawg/ + + * **¡Go en Español!** + * Author: Nacho Pacheco + * Publication Date: 2015-03-22 + * ISBN: --- + * Reference: https://www.gitbook.com/book/nachopacheco/go-es/ + +# Korean + * **가장 빨리 만나는 Go 언어** + * Author: 이재홍 + * Publication Date: June 2015 + * ISBN: 978-8-96618-990-8 + * Reference: http://www.pyrasis.com/private/2015/06/01/publish-go-for-the-really-impatient-book + + * **개발자를 위한 하룻밤에 읽는 Go 언어 이야기** + * Author: 신제용 + * Publication Date: December 2015 + * ISBN: 978-8-96848-806-1 + * Reference: http://www.hanbit.co.kr/store/books/look.php?p_code=E8544486990 + + * **디스커버리 Go 언어** + * Author: 염재현 + * Publication Date: March 2016 + * ISBN: 9788-96848-268-7 + * Reference: http://www.hanbit.co.kr/store/books/look.php?p_code=B5279497767 + + * **Go 언어 웹 프로그래밍 철저 입문** + * Author: 장재휴 + * Publication Date: March 2016 + * ISBN: 979-1-18697-881-8 + * Reference: http://www.gilbut.co.kr/book/bookView.aspx?bookcode=BN001434 + + * **Go 인 액션** + * Authors: William Kennedy with Brian Ketelsen and Erik St. Martin; translated by Hyunhee Jang + * Publication Date: June 2016 + * ISBN: 979-1-18589-053-1 + * Reference: http://jpub.tistory.com/585 + + * **The Go Programming Language** + * Authors: Alan A. A. Donovan, Brian W. Kernighan; translated by Seung Lee + * Publication Date: June 2016 + * ISBN: 978-0-13419-044-0 + * Reference: http://www.acornpub.co.kr/book/go-programming + + * **Go 웹 프로그래밍** + * Author: Sau Sheong Chang; translated by Jinwook Jeong + * Publication Date: March 2017 + * ISBN: 979-1-18669-731-3 + * Reference: http://www.bjpublic.co.kr/skin12/productSearchView.php?board_data=aWR4PTIxMyZzdGFydFBhZ2U9MCZsaXN0Tm89MzM + + * **프로젝트로 완성하는 Go 프로그래밍** + * Author: Mat Ryer; translated by Soonbeom Kwon + * Publication Date: August 2017 + * ISBN: 979-1-16175-032-3 + * Reference: http://www.acornpub.co.kr/book/go-blueprints-2 + + * **Go 언어 실전 테크닉** + * Authors: 松木雅幸, mattn, 藤原俊一郎, 中島大一, 牧 大輔, 鈴木健太; translated by Hyuntae Park + * Publication Date: August 2017 + * ISBN: 979-1-16175-026-2 + * Reference: http://www.acornpub.co.kr/book/go-language-minna + + * **Go Cookbook** + * Author: Aaron Torres; transalted by Sangsik Lee + * Publication Date: December 2017 + * ISBN: 979-1-16175-088-0 + * Reference: http://www.acornpub.co.kr/book/go-cookbook + + * **Go 언어를 활용한 마이크로서비스 개발** + * Author: Nic Jackson; translated by Sangsik Lee + * Publication Date: July 2018 + * ISBN: 979-1-16175-190-0 + * Reference: http://www.acornpub.co.kr/book/microservices-go + + * **Go 언어 시작하기** + * Author: 박혜영, 서정인 + * Publication Date: September 2018 + * ISBN: 979-1-15600-606-0 + * Reference: http://www.hongpub.co.kr/sub.php?goPage=view_product&flashpage=&Code=20180911072243 + + * **Go 마스터하기** + * Author: Mihalis Tsoukalos; translated by Kihyuk Nam + * Publication Date: October 2018 + * ISBN: 979-1-16175-208-2 + * Reference: http://acornpub.co.kr/book/mastering-go + +# Indonesian + * **Bahasa Pemrograman Go** + * Author: Sajarwo Anggai + * Publication Date: October 21, 2013 + * ISBN: --- + * Reference: https://sajarwo87.wordpress.com/2013/10/21/buku-bahasa-pemrograman-go/ + + * **Dasar Pemrograman Golang** + * Author: Noval Agung Prayogo + * Publication Date: Oktober 30, 2015 + * ISBN: --- + * Reference: https://dasarpemrogramangolang.novalagung.com + +# Italian + * **Programmare in Linguaggio Go** + * Author: Renato Mite + * Publication Date: 9 Oct 2016 + * ISBN: --- + * Reference (Amazon): https://www.amazon.it/dp/B01M2URIVX + * Reference (Google Books): https://play.google.com/store/books/details/Renato_Mite_Programmare_in_Linguaggio_Go?id=4Ag6DQAAQBAJ + * Reference (Kobo Books): https://store.kobobooks.com/it-it/ebook/programmare-in-linguaggio-go + * Repository: https://github.com/rmite/gobook + +# Polish + + * **Język Go. Poznaj i programuj** + * Authors: Alan A. A. Donovan, Brian W. Kernighan; translated by Lech Lachowski + * Publication Date: July 2016 + * ISBN: 978-83-283-2467-1 + * Reference: https://helion.pl/ksiazki/jezyk-go-poznaj-i-programuj-alan-a-a-donovan-brian-w-kernighan,jgopop.htm + +# Persian + * **GoFarsi book** + * Author: Javad Rajabzadeh + * Publication Date: 23 oct 2022 + * ISBN: --- + * Repository: https://github.com/GoFarsi/book + * LiveBook: https://book.gofarsi.ir + + * **Go Succinctly** + * Author: Amir Irani + * Publication Date: 10 Jun 2018 + * ISBN: --- + * Repository: https://github.com/thedevsir/gosuccinctly + +# Looking for contributors + +[Add Go books here that are looking for writers, editors, Gopher illustrators, and translators.] + + * **Go Web Development Cookbook** + * Author: Arpit Aggarwal + * Publication Date: April 2018 + * ISBN: 9781787286740 + * Reference: https://www.amazon.in/Web-Development-Cookbook-full-stack-applications/dp/1787286746 + +*** \ No newline at end of file diff --git a/interface/gitlink/organization/test_gitlink_delete_organization.yaml b/interface/gitlink/organization/test_gitlink_delete_organization.yaml index 243d470..f151e24 100644 --- a/interface/gitlink/organization/test_gitlink_delete_organization.yaml +++ b/interface/gitlink/organization/test_gitlink_delete_organization.yaml @@ -19,7 +19,7 @@ case_info: method: DELETE headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: diff --git a/interface/gitlink/organization/test_gitlink_get_organization_detail.yaml b/interface/gitlink/organization/test_gitlink_get_organization_detail.yaml index 1f7a041..3511710 100644 --- a/interface/gitlink/organization/test_gitlink_get_organization_detail.yaml +++ b/interface/gitlink/organization/test_gitlink_get_organization_detail.yaml @@ -19,7 +19,7 @@ case_info: method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: diff --git a/interface/gitlink/organization/test_gitlink_new_organization.yaml b/interface/gitlink/organization/test_gitlink_new_organization.yaml index a6499c6..61b2a34 100644 --- a/interface/gitlink/organization/test_gitlink_new_organization.yaml +++ b/interface/gitlink/organization/test_gitlink_new_organization.yaml @@ -6,7 +6,6 @@ case_common: - gitlink - projects - gitea - - new_organization - usefixtures: gitlink_login case_info: @@ -19,7 +18,7 @@ case_info: method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: diff --git a/interface/gitlink/projects/about/test_gitlink_repo_edit_about.yaml b/interface/gitlink/projects/about/test_gitlink_repo_edit_about.yaml index 8499728..8ad4b09 100644 --- a/interface/gitlink/projects/about/test_gitlink_repo_edit_about.yaml +++ b/interface/gitlink/projects/about/test_gitlink_repo_edit_about.yaml @@ -4,7 +4,7 @@ case_common: allure_story: 项目主页 case_markers: - gitlink - - repo + - project - about # 仅仓库管理员才能编辑项目主页 @@ -15,11 +15,11 @@ case_info: title: 仓库管理员编辑项目主页内容 run: true severity: normal - url: /api/${env_repo_owner}/${env_repo_identifier}/about.json + url: /api/${init_repo_owner}/${init_repo_identifier}/about.json method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + cookies: ${admin_cookies} request_type: json payload: content: ${generate_paragraph(nb=10)} @@ -29,20 +29,18 @@ case_info: assertField: message: 断言接口响返回的项目标识 assert_type: == - expect_value: ${env_repo_identifier} + expect_value: ${init_repo_identifier} type_jsonpath: $.identifier assert_sql: extract: case_dependence: - setup: - interface: gitlink_super_login_04 - id: gitlink_repo_get_about_detail_02 title: 非仓库管理员编辑项目主页内容 run: true severity: normal - url: /api/${env_repo_owner}/${env_repo_identifier}/about.json + url: /api/${init_repo_owner}/${init_repo_identifier}/about.json method: POST headers: Content-Type: application/json; charset=utf-8; @@ -65,6 +63,4 @@ case_info: type_jsonpath: $.message assert_sql: extract: - case_dependence: - setup: - interface: gitlink_login_01 \ No newline at end of file + case_dependence: \ No newline at end of file diff --git a/interface/gitlink/projects/about/test_gitlink_repo_get_about_detail.yaml b/interface/gitlink/projects/about/test_gitlink_repo_get_about_detail.yaml index 4099e5f..e50a2cc 100644 --- a/interface/gitlink/projects/about/test_gitlink_repo_get_about_detail.yaml +++ b/interface/gitlink/projects/about/test_gitlink_repo_get_about_detail.yaml @@ -4,7 +4,7 @@ case_common: allure_story: 项目主页 case_markers: - gitlink - - repo + - project - about - usefixtures: gitlink_login @@ -14,7 +14,7 @@ case_info: title: 查询项目主页详情 run: true severity: normal - url: /api/${env_repo_owner}/${env_repo_identifier}/about.json + url: /api/${init_repo_owner}/${init_repo_identifier}/about.json method: GET headers: Content-Type: application/json; charset=utf-8; @@ -27,7 +27,7 @@ case_info: assertField: message: 断言接口响返回的项目标识 assert_type: == - expect_value: ${env_repo_identifier} + expect_value: ${init_repo_identifier} type_jsonpath: $.identifier assert_sql: extract: diff --git a/interface/gitlink/projects/branch/test_gitlink_get_repo_branches_list.yaml b/interface/gitlink/projects/branch/test_gitlink_get_repo_branches_list.yaml index b6675a0..0091492 100644 --- a/interface/gitlink/projects/branch/test_gitlink_get_repo_branches_list.yaml +++ b/interface/gitlink/projects/branch/test_gitlink_get_repo_branches_list.yaml @@ -4,6 +4,7 @@ case_common: allure_story: 分支 case_markers: - gitlink + - projects - branches - gitea - usefixtures: gitlink_login @@ -14,11 +15,11 @@ case_info: title: 获取项目分支列表 severity: run: True - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/branches.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/branches.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: @@ -41,11 +42,11 @@ case_info: title: 获取项目分支列表(无分页) severity: normal run: True - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/branches/all.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/branches/all.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: @@ -64,11 +65,11 @@ case_info: title: 获取项目分支列表- 根据搜索关键字 severity: run: True - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/branches.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/branches.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: diff --git a/interface/gitlink/projects/branch/test_gitlink_repo_delete_branch.yaml b/interface/gitlink/projects/branch/test_gitlink_repo_delete_branch.yaml index e299f9d..fc9dd1c 100644 --- a/interface/gitlink/projects/branch/test_gitlink_repo_delete_branch.yaml +++ b/interface/gitlink/projects/branch/test_gitlink_repo_delete_branch.yaml @@ -4,25 +4,27 @@ case_common: allure_story: 分支 case_markers: - gitlink + - projects - branches - gitea + - debug - usefixtures: gitlink_login # 需要仓库管理员才能删除分支 case_info: - - id: gitlink_repo_delete_branch_001 - title: 删除一个项目分支 + id: gitlink_repo_delete_branch_01 + title: 删除一个项目分支,删除成功 severity: critical run: True - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/branches/${branch_name}.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/branches/${branch_name}.json method: DELETE headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${admin_cookies} cookies: - request_type: json + request_type: none payload: files: assert_response: @@ -42,5 +44,5 @@ case_info: case_dependence: setup: interface: - - gitlink_repo_new_branch_001 - - gitlink_super_login_04 + # 前置条件:新建分支 + - gitlink_repo_new_branch_01 diff --git a/interface/gitlink/projects/branch/test_gitlink_repo_new_branch.yaml b/interface/gitlink/projects/branch/test_gitlink_repo_new_branch.yaml index a02a27e..cf7e375 100644 --- a/interface/gitlink/projects/branch/test_gitlink_repo_new_branch.yaml +++ b/interface/gitlink/projects/branch/test_gitlink_repo_new_branch.yaml @@ -4,27 +4,32 @@ case_common: allure_story: 分支 case_markers: - gitlink + - projects - branches - gitea - usefixtures: gitlink_login + +# 仓库管理员和开发者均可新建分支 + case_info: - - id: gitlink_repo_new_branch_001 + id: gitlink_repo_new_branch_01 title: 创建一个项目分支 severity: critical run: True - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/branches.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/branches.json method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: new_branch_name: ${generate_words()} old_branch_name: master files: + wait_seconds: 2 assert_response: status_code: 200 assertAutor: @@ -38,7 +43,7 @@ case_info: case_dependence: teardown: interface: - - gitlink_super_login_04 - - gitlink_repo_delete_branch_001 + # 后置处理:删除分支 + - gitlink_repo_delete_branch_01 diff --git a/interface/gitlink/projects/branch/test_gitlink_repo_update_default_branch.yaml b/interface/gitlink/projects/branch/test_gitlink_repo_update_default_branch.yaml index a8ae0e4..fe7fa81 100644 --- a/interface/gitlink/projects/branch/test_gitlink_repo_update_default_branch.yaml +++ b/interface/gitlink/projects/branch/test_gitlink_repo_update_default_branch.yaml @@ -4,20 +4,23 @@ case_common: allure_story: 分支 case_markers: - gitlink + - projects - branches - gitea +# 注意:仅项目管理员才有权限更新项目默认分支 + case_info: - id: gitlink_repo_update_default_branch_001 title: 更新项目默认分支,更新成功 severity: critical run: True - url: /api/v1//${env_repo_owner}/${env_repo_identifier}/branches/update_default_branch.json + url: /api/v1//${init_repo_owner}/${init_repo_identifier}/branches/update_default_branch.json method: PATCH headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${admin_cookies} cookies: request_type: json payload: @@ -38,7 +41,4 @@ case_info: assert_sql: extract: case_dependence: - setup: - interface: - - gitlink_super_login_04 diff --git a/interface/gitlink/projects/branch_setting/test_gitlink_get_repo_protect_branch_list.yaml b/interface/gitlink/projects/branch_setting/test_gitlink_get_repo_protect_branch_list.yaml index 80b261d..5ad0aa3 100644 --- a/interface/gitlink/projects/branch_setting/test_gitlink_get_repo_protect_branch_list.yaml +++ b/interface/gitlink/projects/branch_setting/test_gitlink_get_repo_protect_branch_list.yaml @@ -4,32 +4,23 @@ case_common: allure_story: 分支设置 case_markers: - gitlink + - projects - gitea - - branch + - branches - usefixtures: gitlink_login # 前提条件:仅仓库管理员及以上角色才有权限 -common_dependence: - setup: - interface: - # 新建私有仓库 - - gitlink_projects_new_project_02 - teardown: - interface: - # 删除仓库 - - gitlink_projects_delete_project_01 - case_info: - id: gitlink_get_repo_protect_branch_list_01 title: 仓库管理员获取仓库保护分支列表,获取成功 severity: normal run: True - url: /api/${repo_owner}/${repo_identifier}/protected_branches.json + url: /api/${init_repo_owner}/${init_repo_identifier}/protected_branches.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${admin_cookies} cookies: request_type: params payload: diff --git a/interface/gitlink/projects/branch_setting/test_gitlink_repo_delete_protect_branch.yaml b/interface/gitlink/projects/branch_setting/test_gitlink_repo_delete_protect_branch.yaml index 81fb68c..143af11 100644 --- a/interface/gitlink/projects/branch_setting/test_gitlink_repo_delete_protect_branch.yaml +++ b/interface/gitlink/projects/branch_setting/test_gitlink_repo_delete_protect_branch.yaml @@ -6,32 +6,22 @@ case_common: - gitlink - projects - gitea - - branch + - branches - usefixtures: gitlink_login # 前提条件:仅仓库管理员及以上角色才有权限 -common_dependence: - setup: - interface: - # 新建私有仓库 - - gitlink_projects_new_project_02 - teardown: - interface: - # 删除仓库 - - gitlink_projects_delete_project_01 - case_info: - id: gitlink_repo_delete_protect_branch_01 - title: 仓库管理员删除保护分支,设置成功 + title: 仓库管理员删除保护分支,删除成功 severity: critical run: True - url: /api/${repo_owner}/${repo_identifier}/protected_branches/master.json + url: /api/${init_repo_owner}/${init_repo_identifier}/protected_branches/master.json method: DELETE headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${admin_cookies} cookies: request_type: params payload: diff --git a/interface/gitlink/projects/branch_setting/test_gitlink_repo_edit_protect_branch.yaml b/interface/gitlink/projects/branch_setting/test_gitlink_repo_edit_protect_branch.yaml index b2c2456..b66b6fe 100644 --- a/interface/gitlink/projects/branch_setting/test_gitlink_repo_edit_protect_branch.yaml +++ b/interface/gitlink/projects/branch_setting/test_gitlink_repo_edit_protect_branch.yaml @@ -6,20 +6,11 @@ case_common: - gitlink - projects - gitea - - branch + - branches - usefixtures: gitlink_login # 前提条件:仅仓库管理员及以上角色才有权限 -common_dependence: - setup: - interface: - # 新建私有仓库 - - gitlink_projects_new_project_02 - teardown: - interface: - # 删除仓库 - - gitlink_projects_delete_project_01 case_info: - @@ -27,11 +18,11 @@ case_info: title: 仓库管理员更新保护分支,设置成功 severity: critical run: True - url: /api/${repo_owner}/${repo_identifier}/protected_branches/master.json + url: /api/${init_repo_owner}/${init_repo_identifier}/protected_branches/master.json method: PATCH headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${admin_cookies} cookies: request_type: params payload: @@ -63,4 +54,8 @@ case_info: setup: interface: # 设置保护分支 master - - gitlink_set_repo_protect_branch_01 \ No newline at end of file + - gitlink_set_repo_protect_branch_01 + teardown: + interface: + # 清理数据:删除保护分支 + - gitlink_repo_delete_protect_branch_01 \ No newline at end of file diff --git a/interface/gitlink/projects/branch_setting/test_gitlink_repo_set_default_branch.yaml b/interface/gitlink/projects/branch_setting/test_gitlink_repo_set_default_branch.yaml index 7b15d88..994c1b4 100644 --- a/interface/gitlink/projects/branch_setting/test_gitlink_repo_set_default_branch.yaml +++ b/interface/gitlink/projects/branch_setting/test_gitlink_repo_set_default_branch.yaml @@ -6,32 +6,22 @@ case_common: - gitlink - projects - gitea - - branch + - branches - usefixtures: gitlink_login # 前提条件:仅仓库管理员及以上角色才有权限 -common_dependence: - setup: - interface: - # 新建私有仓库 - - gitlink_projects_new_project_02 - teardown: - interface: - # 删除仓库 - - gitlink_projects_delete_project_01 - case_info: - id: gitlink_repo_set_default_branch_01 title: 仓库管理员设置默认分支,设置成功 severity: critical run: True - url: /api/${repo_owner}/${repo_identifier}.json + url: /api/${init_repo_owner}/${init_repo_identifier}.json method: PUT headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${admin_cookies} cookies: request_type: json payload: @@ -40,8 +30,8 @@ case_info: assert_response: status_code: 200 assertField: - message: 断言接口返回的repo_identifier - expect_value: ${repo_identifier} + message: 断言接口返回的init_repo_identifier + expect_value: ${init_repo_identifier} assert_type: == type_jsonpath: $.identifier assert_sql: diff --git a/interface/gitlink/projects/branch_setting/test_gitlink_set_repo_protect_branch.yaml b/interface/gitlink/projects/branch_setting/test_gitlink_set_repo_protect_branch.yaml index 960dbcd..9bb17e6 100644 --- a/interface/gitlink/projects/branch_setting/test_gitlink_set_repo_protect_branch.yaml +++ b/interface/gitlink/projects/branch_setting/test_gitlink_set_repo_protect_branch.yaml @@ -6,18 +6,8 @@ case_common: - gitlink - gitea - branch - - usefixtures: gitlink_login # 前提条件:仅仓库管理员及以上角色才有权限 -common_dependence: - setup: - interface: - # 新建私有仓库 - - gitlink_projects_new_project_02 - teardown: - interface: - # 删除仓库 - - gitlink_projects_delete_project_01 case_info: - @@ -25,11 +15,11 @@ case_info: title: 仓库管理员设置仓库保护分支,设置成功 severity: normal run: True - url: /api/${repo_owner}/${repo_identifier}/protected_branches.json + url: /api/${init_repo_owner}/${init_repo_identifier}/protected_branches.json method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${admin_cookies} cookies: request_type: params payload: @@ -57,4 +47,8 @@ case_info: type_jsonpath: $.branch_name assert_sql: extract: - case_dependence: \ No newline at end of file + case_dependence: + teardown: + interface: + # 清理数据:删除保护分支 + - gitlink_repo_delete_protect_branch_01 \ No newline at end of file diff --git a/interface/gitlink/projects/collaborators/test_gitlink_add_repo_collaborator.yaml b/interface/gitlink/projects/collaborators/test_gitlink_add_repo_collaborator.yaml index 3ea5b19..b48b5d9 100644 --- a/interface/gitlink/projects/collaborators/test_gitlink_add_repo_collaborator.yaml +++ b/interface/gitlink/projects/collaborators/test_gitlink_add_repo_collaborator.yaml @@ -4,28 +4,33 @@ case_common: allure_story: 成员管理 case_markers: - gitlink + - projects - gitea - collaborator - usefixtures: gitlink_login - # 仅仓库管理员及以上角色才有权限 +common_dependence: + setup: + env_vars: + added_user_id: ${t_user_id} + case_info: - id: gitlink_add_repo_collaborator_01 title: 仓库管理员添加一个项目成员,添加成功 severity: critical run: True - url: /api/${repo_owner}/${repo_identifier}/collaborators.json + url: /api/${init_repo_owner}/${init_repo_identifier}/collaborators.json method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${admin_cookies} cookies: request_type: json payload: - user_id: ${t_user_id} + user_id: ${added_user_id} files: assert_response: status_code: 200 @@ -42,27 +47,25 @@ case_info: assert_sql: extract: case_dependence: - setup: - # 新建私有仓库 - interface: gitlink_projects_new_project_02 teardown: - # 删除仓库 - interface: gitlink_projects_delete_project_01 + interface: + # 后置处理: 删除刚刚添加的项目成员 + - gitlink_delete_repo_collaborator_01 - id: gitlink_add_repo_collaborator_02 title: 非仓库管理员添加一个项目成员,添加失败 severity: critical run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/collaborators.json + url: /api/${init_repo_owner}/${init_repo_identifier}/collaborators.json method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: - user_id: ${t_user_id} + user_id: ${added_user_id} files: assert_response: status_code: 200 diff --git a/interface/gitlink/projects/collaborators/test_gitlink_change_repo_collaborator_role.yaml b/interface/gitlink/projects/collaborators/test_gitlink_change_repo_collaborator_role.yaml index 03a817d..081025a 100644 --- a/interface/gitlink/projects/collaborators/test_gitlink_change_repo_collaborator_role.yaml +++ b/interface/gitlink/projects/collaborators/test_gitlink_change_repo_collaborator_role.yaml @@ -4,30 +4,36 @@ case_common: allure_story: 成员管理 case_markers: - gitlink + - projects - gitea - collaborator - usefixtures: gitlink_login # 仅仓库管理员及以上角色才有权限 + +common_dependence: + setup: + env_vars: + added_user_id: ${t_user_id} + case_info: -- - id: gitlink_change_repo_collaborator_role_01 - title: 仓库管理员更改项目成员权限 - 修改为报告者,修改成功 - severity: critical - run: True - url: /api/${repo_owner}/${repo_identifier}/collaborators/change_role.json - method: PUT - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - user_id: ${t_user_id} - role: Reporter # 必填,枚举值:Manager Developer Reporter - files: - assert_response: + - id: gitlink_change_repo_collaborator_role_01 + title: 仓库管理员更改项目成员权限 - 修改为报告者,修改成功 + severity: critical + run: True + url: /api/${init_repo_owner}/${init_repo_identifier}/collaborators/change_role.json + method: PUT + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${admin_cookies} + cookies: + request_type: json + payload: + user_id: ${added_user_id} + role: Reporter # 必填,枚举值:Manager Developer Reporter + files: + assert_response: status_code: 200 assert_status: message: 断言接口status=0 @@ -39,36 +45,35 @@ case_info: expect_value: success assert_type: == type_jsonpath: $.message - assert_sql: - extract: - case_dependence: - setup: - interface: - - gitlink_projects_new_project_02 - - gitlink_add_repo_collaborator_01 - teardown: - interface: - - gitlink_delete_repo_collaborator_01 - - gitlink_projects_delete_project_01 + assert_sql: + extract: + case_dependence: + setup: + interface: + # 添加仓库成员 + - gitlink_add_repo_collaborator_01 + teardown: + interface: + # 移除仓库成员 + - gitlink_delete_repo_collaborator_01 -- - id: gitlink_change_repo_collaborator_role_02 - title: 仓库管理员更改项目成员权限 - 修改为管理员,修改成功 - severity: critical - run: True - url: /api/${repo_owner}/${repo_identifier}/collaborators/change_role.json - method: PUT - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - user_id: ${t_user_id} - role: Manager # 必填,枚举值:Manager Developer Reporter - files: - assert_response: + - id: gitlink_change_repo_collaborator_role_02 + title: 仓库管理员更改项目成员权限 - 修改为管理员,修改成功 + severity: critical + run: True + url: /api/${init_repo_owner}/${init_repo_identifier}/collaborators/change_role.json + method: PUT + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${admin_cookies} + cookies: + request_type: json + payload: + user_id: ${t_user_id} + role: Manager # 必填,枚举值:Manager Developer Reporter + files: + assert_response: status_code: 200 assert_status: message: 断言接口status=0 @@ -80,36 +85,35 @@ case_info: expect_value: success assert_type: == type_jsonpath: $.message - assert_sql: - extract: - case_dependence: - setup: - interface: - - gitlink_projects_new_project_02 - - gitlink_add_repo_collaborator_01 - teardown: - interface: - - gitlink_delete_repo_collaborator_01 - - gitlink_projects_delete_project_01 + assert_sql: + extract: + case_dependence: + setup: + interface: + # 添加仓库成员 + - gitlink_add_repo_collaborator_01 + teardown: + interface: + # 移除仓库成员 + - gitlink_delete_repo_collaborator_01 -- - id: gitlink_change_repo_collaborator_role_03 - title: 非仓库管理员更改项目成员权限 - 修改为管理员,修改失败 - severity: critical - run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/collaborators/change_role.json - method: PUT - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - user_id: ${t_user_id} - role: Manager # 必填,枚举值:Manager Developer Reporter - files: - assert_response: + - id: gitlink_change_repo_collaborator_role_03 + title: 非仓库管理员更改项目成员权限 - 修改为管理员,修改失败 + severity: critical + run: True + url: /api/${init_repo_owner}/${init_repo_identifier}/collaborators/change_role.json + method: PUT + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: json + payload: + user_id: ${t_user_id} + role: Manager # 必填,枚举值:Manager Developer Reporter + files: + assert_response: status_code: 200 assert_status: message: 断言接口status=403 @@ -121,6 +125,14 @@ case_info: expect_value: 你不是管理员,没有权限操作 assert_type: == type_jsonpath: $.message - assert_sql: - extract: - case_dependence: \ No newline at end of file + assert_sql: + extract: + case_dependence: + setup: + interface: + # 添加仓库成员 + - gitlink_add_repo_collaborator_01 + teardown: + interface: + # 移除仓库成员 + - gitlink_delete_repo_collaborator_01 \ No newline at end of file diff --git a/interface/gitlink/projects/collaborators/test_gitlink_delete_repo_collaborator.yaml b/interface/gitlink/projects/collaborators/test_gitlink_delete_repo_collaborator.yaml index 0f1e3c3..08ffe1f 100644 --- a/interface/gitlink/projects/collaborators/test_gitlink_delete_repo_collaborator.yaml +++ b/interface/gitlink/projects/collaborators/test_gitlink_delete_repo_collaborator.yaml @@ -4,10 +4,16 @@ case_common: allure_story: 成员管理 case_markers: - gitlink + - projects - gitea - collaborator - usefixtures: gitlink_login +common_dependence: + setup: + env_vars: + added_user_id: ${t_user_id} + # 仅仓库管理员及以上角色才有权限 case_info: @@ -16,15 +22,15 @@ case_info: title: 仓库管理员删除一个项目成员,删除成功 severity: critical run: True - url: /api/${repo_owner}/${repo_identifier}/collaborators/remove.json + url: /api/${init_repo_owner}/${init_repo_identifier}/collaborators/remove.json method: DELETE headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${admin_cookies} cookies: request_type: json payload: - user_id: ${t_user_id} + user_id: ${added_user_id} files: assert_response: status_code: 200 @@ -42,24 +48,20 @@ case_info: extract: case_dependence: setup: - # 新建私有仓库 interface: - - gitlink_projects_new_project_02 - - gitlink_add_repo_collaborator_01 - teardown: - # 删除仓库 - interface: gitlink_projects_delete_project_01 + # 添加仓库成员 + - gitlink_add_repo_collaborator_01 - id: gitlink_delete_repo_collaborator_02 title: 非仓库管理员删除一个项目成员,删除失败 severity: critical run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/collaborators/remove.json + url: /api/${init_repo_owner}/${init_repo_identifier}/collaborators/remove.json method: DELETE headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: @@ -79,4 +81,12 @@ case_info: type_jsonpath: $.message assert_sql: extract: - case_dependence: \ No newline at end of file + case_dependence: + setup: + interface: + # 添加仓库成员 + - gitlink_add_repo_collaborator_01 + teardown: + interface: + # 移除仓库成员 + - gitlink_delete_repo_collaborator_01 \ No newline at end of file diff --git a/interface/gitlink/projects/collaborators/test_gitlink_get_repo_collaborator_list.yaml b/interface/gitlink/projects/collaborators/test_gitlink_get_repo_collaborator_list.yaml index 88c4714..33f4a06 100644 --- a/interface/gitlink/projects/collaborators/test_gitlink_get_repo_collaborator_list.yaml +++ b/interface/gitlink/projects/collaborators/test_gitlink_get_repo_collaborator_list.yaml @@ -4,58 +4,57 @@ case_common: allure_story: 成员管理 case_markers: - gitlink + - projects - gitea - collaborator - usefixtures: gitlink_login case_info: -- - id: gitlink_get_repo_collaborator_list_01 - title: 仓库管理员获取项目成员列表,获取成功 - severity: critical - run: True - url: /api/${repo_owner}/${repo_identifier}/collaborators.json - method: GET - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - page: 1 - limit: 15 - files: - assert_response: + - id: gitlink_get_repo_collaborator_list_01 + title: 仓库管理员获取项目成员列表,获取成功 + severity: critical + run: True + url: /api/${init_repo_owner}/${init_repo_identifier}/collaborators.json + method: GET + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${admin_cookies} + cookies: + request_type: params + payload: + page: 1 + limit: 15 + files: + assert_response: status_code: 200 assertField: message: 断言接口存在参数total_count expect_value: total_count assert_type: contains - assert_sql: - extract: - type_jsonpath: - repo_user_ids: $.members[*].id - case_dependence: + assert_sql: + extract: + type_jsonpath: + repo_user_ids: $.members[*].id + case_dependence: -- - id: gitlink_get_repo_collaborator_list_02 - title: 非仓库管理员获取项目成员列表,获取失败 - severity: critical - run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/collaborators.json - method: GET - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - page: 1 - limit: 15 - files: - assert_response: + - id: gitlink_get_repo_collaborator_list_02 + title: 非仓库管理员获取项目成员列表,获取失败 + severity: critical + run: True + url: /api/${init_repo_owner}/${init_repo_identifier}/collaborators.json + method: GET + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: json + payload: + page: 1 + limit: 15 + files: + assert_response: status_code: 200 assert_status: message: 断言接口status=403 @@ -67,6 +66,6 @@ case_info: expect_value: 你不是管理员,没有权限操作 assert_type: == type_jsonpath: $.message - assert_sql: - extract: - case_dependence: \ No newline at end of file + assert_sql: + extract: + case_dependence: \ No newline at end of file diff --git a/interface/gitlink/projects/collaborators/test_gitlink_get_user_list.yaml b/interface/gitlink/projects/collaborators/test_gitlink_get_user_list.yaml index c299e32..18ce4f2 100644 --- a/interface/gitlink/projects/collaborators/test_gitlink_get_user_list.yaml +++ b/interface/gitlink/projects/collaborators/test_gitlink_get_user_list.yaml @@ -19,7 +19,7 @@ case_info: method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: diff --git a/interface/gitlink/projects/dataset/test_gitlink_repo_delete_dataset_file.yaml b/interface/gitlink/projects/dataset/test_gitlink_repo_delete_dataset_file.yaml new file mode 100644 index 0000000..5b7a775 --- /dev/null +++ b/interface/gitlink/projects/dataset/test_gitlink_repo_delete_dataset_file.yaml @@ -0,0 +1,48 @@ +case_common: + allure_epic: GitLink接口 + allure_feature: 开源项目模块 + allure_story: 数据集 + case_markers: + - gitlink + - projects + - dataset + - usefixtures: gitlink_login + +# 前提条件:当前存找一个仓库,仓库已经创建数据集, 数据集已经上传了文件 + + +case_info: + - id: gitlink_repo_delete_dataset_file_01 + title: 删除数据集文件,删除成功 + severity: critical + run: false + url: /api/attachments/${dataset_file_id}.json + method: DELETE + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: json + payload: + files: + assert_response: + status_code: 200 + assert_status: + message: 断言接口status=0 + expect_value: 0 + assert_type: == + type_jsonpath: $.status + assert_message: + message: 断言接口message=success + expect_value: 删除成功 + assert_type: == + type_jsonpath: $.message + assert_sql: + extract: + case_dependence: + setup: + interface: + # 获取数据集详情,获取dataset_container_id + - gitlink_repo_get_dataset_detail_01 + # 上传数据集文件,获取dataset_file_id + - gitlink_repo_upload_dataset_file_01 diff --git a/interface/gitlink/projects/dataset/test_gitlink_repo_edit_dataset.yaml b/interface/gitlink/projects/dataset/test_gitlink_repo_edit_dataset.yaml index 67e53a7..92cd99b 100644 --- a/interface/gitlink/projects/dataset/test_gitlink_repo_edit_dataset.yaml +++ b/interface/gitlink/projects/dataset/test_gitlink_repo_edit_dataset.yaml @@ -4,43 +4,32 @@ case_common: allure_story: 数据集 case_markers: - gitlink - - repo + - projects - dataset - usefixtures: gitlink_login # 前提条件:当前存找一个仓库,仓库已经创建数据集 -common_dependence: - setup: - interface: - - gitlink_get_repo_licenses_01 - - gitlink_projects_new_project_01 - - gitlink_repo_new_dataset_02 - teardown: - interface: - - gitlink_projects_delete_project_01 - case_info: -- - id: gitlink_repo_edit_dataset_01 - title: 编辑数据集,编辑成功 - severity: critical - run: True - url: /api/v1/${repo_owner}/${repo_identifier}/dataset.json - method: PUT - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - title: test_${generate_identifier()}_${generate_identifier()} - license_id: ${random.choice(${licenses_ids})} - description: ${generate_paragraph(nb=5)} - paper_content: ${generate_paragraph(nb=5)} - files: - assert_response: + - id: gitlink_repo_edit_dataset_01 + title: 编辑数据集,编辑成功 + severity: critical + run: True + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/dataset.json + method: PUT + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: json + payload: + title: test_${generate_identifier()}_${generate_identifier()} + license_id: ${random.choice(${licenses_ids})} + description: ${generate_paragraph(nb=5)} + paper_content: ${generate_paragraph(nb=5)} + files: + assert_response: status_code: 200 assertMessage: type_jsonpath: $.message @@ -50,7 +39,7 @@ case_info: type_jsonpath: $.status expect_value: 0 assert_type: == - assert_sql: - extract: - case_dependence: + assert_sql: + extract: + case_dependence: diff --git a/interface/gitlink/projects/dataset/test_gitlink_repo_get_dataset_detail.yaml b/interface/gitlink/projects/dataset/test_gitlink_repo_get_dataset_detail.yaml index 99ec7fb..aa2d400 100644 --- a/interface/gitlink/projects/dataset/test_gitlink_repo_get_dataset_detail.yaml +++ b/interface/gitlink/projects/dataset/test_gitlink_repo_get_dataset_detail.yaml @@ -4,21 +4,12 @@ case_common: allure_story: 数据集 case_markers: - gitlink - - repo + - projects - dataset - usefixtures: gitlink_login # 前提条件:当前存找一个仓库,仓库已经创建数据集 -common_dependence: - setup: - interface: - - gitlink_projects_new_project_01 - - gitlink_repo_new_dataset_02 - - gitlink_repo_get_dataset_detail_01 - teardown: - interface: - - gitlink_projects_delete_project_01 case_info: - @@ -26,11 +17,11 @@ case_info: title: 获取数据集详情 severity: critical run: True - url: /api/v1/${repo_owner}/${repo_identifier}/dataset.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/dataset.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: diff --git a/interface/gitlink/projects/dataset/test_gitlink_repo_new_dataset.yaml b/interface/gitlink/projects/dataset/test_gitlink_repo_new_dataset.yaml index 008119d..2b44437 100644 --- a/interface/gitlink/projects/dataset/test_gitlink_repo_new_dataset.yaml +++ b/interface/gitlink/projects/dataset/test_gitlink_repo_new_dataset.yaml @@ -4,7 +4,7 @@ case_common: allure_story: 数据集 case_markers: - gitlink - - repo + - projects - dataset - usefixtures: gitlink_login @@ -14,7 +14,9 @@ case_common: common_dependence: setup: - interface: gitlink_get_repo_licenses_01 + interface: + # 获取开源许可证 + - gitlink_get_repo_licenses_01 case_info: @@ -27,7 +29,7 @@ case_info: method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: @@ -51,9 +53,13 @@ case_info: case_dependence: setup: interface: + # 前置条件:新建项目 - gitlink_projects_new_project_01 + # 前置条件:项目更新导航栏-开启数据集 + - gitlink_update_project_unit_01 teardown: interface: + # 后置处理:删除项目 - gitlink_projects_delete_project_01 - @@ -65,7 +71,7 @@ case_info: method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: @@ -87,9 +93,13 @@ case_info: case_dependence: setup: interface: + # 前置条件:新建项目 - gitlink_projects_new_project_01 + # 前置条件:项目更新导航栏-开启数据集 + - gitlink_update_project_unit_01 teardown: interface: + # 后置处理:删除项目 - gitlink_projects_delete_project_01 - @@ -101,7 +111,7 @@ case_info: method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: @@ -125,9 +135,13 @@ case_info: case_dependence: setup: interface: + # 前置条件:新建项目 - gitlink_projects_new_project_01 + # 前置条件:项目更新导航栏-开启数据集 + - gitlink_update_project_unit_01 teardown: interface: + # 后置处理:删除项目 - gitlink_projects_delete_project_01 @@ -140,7 +154,7 @@ case_info: method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: @@ -164,9 +178,13 @@ case_info: case_dependence: setup: interface: + # 前置条件:新建项目 - gitlink_projects_new_project_01 + # 前置条件:项目更新导航栏-开启数据集 + - gitlink_update_project_unit_01 teardown: interface: + # 后置处理:删除项目 - gitlink_projects_delete_project_01 - @@ -178,7 +196,7 @@ case_info: method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: @@ -202,7 +220,11 @@ case_info: case_dependence: setup: interface: + # 前置条件:新建项目 - gitlink_projects_new_project_01 + # 前置条件:项目更新导航栏-开启数据集 + - gitlink_update_project_unit_01 teardown: interface: + # 后置处理:删除项目 - gitlink_projects_delete_project_01 diff --git a/interface/gitlink/projects/dataset/test_gitlink_repo_upload_dataset_file.yaml b/interface/gitlink/projects/dataset/test_gitlink_repo_upload_dataset_file.yaml index 3046af3..ba9a71b 100644 --- a/interface/gitlink/projects/dataset/test_gitlink_repo_upload_dataset_file.yaml +++ b/interface/gitlink/projects/dataset/test_gitlink_repo_upload_dataset_file.yaml @@ -4,48 +4,43 @@ case_common: allure_story: 数据集 case_markers: - gitlink - - repo + - projects - dataset - usefixtures: gitlink_login # 前提条件:当前存找一个仓库,仓库已经创建数据集 -common_dependence: - setup: - interface: - - gitlink_projects_new_project_01 - - gitlink_repo_new_dataset_02 - - gitlink_repo_get_dataset_detail_01 - teardown: - interface: - - gitlink_projects_delete_project_01 + case_info: -- - id: gitlink_repo_upload_dataset_file_01 - title: 上传数据集文件,上传成功 - severity: critical - run: false - url: /api/attachments.json - method: POST - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - container_type: ProjectDataset - description: ${generate_paragraph(nb=5)} - container_id: ${dataset_container_id} - file: ${get_file_content('gitlinklogo3.jpg')} - files: - assert_response: + - id: gitlink_repo_upload_dataset_file_01 + title: 上传数据集文件,上传成功 + severity: critical + run: false + url: /api/attachments.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: json + payload: + container_type: ProjectDataset + description: ${generate_paragraph(nb=5)} + container_id: ${dataset_container_id} + file: ${get_file_content('gitlinklogo3.jpg')} + files: + assert_response: status_code: 200 assertField: expect_value: content_type assert_type: contains - assert_sql: - extract: - type_jsonpath: - dataset_container_id: $.id - case_dependence: + assert_sql: + extract: + type_jsonpath: + dataset_file_id: $.id + case_dependence: + setup: + interface: + # 获取数据集详情,获取dataset_container_id + - gitlink_repo_get_dataset_detail_01 diff --git a/interface/gitlink/projects/issues/test_gitlink_repo_delete_issue_journals.yaml b/interface/gitlink/projects/issues/issue_journal/test_gitlink_repo_delete_issue_journals.yaml similarity index 78% rename from interface/gitlink/projects/issues/test_gitlink_repo_delete_issue_journals.yaml rename to interface/gitlink/projects/issues/issue_journal/test_gitlink_repo_delete_issue_journals.yaml index 72f2fa5..30a8474 100644 --- a/interface/gitlink/projects/issues/test_gitlink_repo_delete_issue_journals.yaml +++ b/interface/gitlink/projects/issues/issue_journal/test_gitlink_repo_delete_issue_journals.yaml @@ -1,10 +1,10 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 疑修(Issue) + allure_story: 疑修(Issue)评论 case_markers: - gitlink - - project + - projects - issue - usefixtures: gitlink_login @@ -14,7 +14,7 @@ case_info: title: 项目内删除疑修评论接口 run: True severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/issues/${issue_index}/journals/${journal_id}.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/issues/${issue_index}/journals/${journal_id}.json method: delete headers: Content-Type: application/json; charset=utf-8; @@ -39,5 +39,7 @@ case_info: case_dependence: setup: interface: + # 前置条件:新建issue - gitlink_repo_new_issue_01 + # 前置条件:issue下新建评论 - gitlink_repo_new_issue_journals_01 \ No newline at end of file diff --git a/interface/gitlink/projects/issues/test_gitlink_repo_edit_issue_journals.yaml b/interface/gitlink/projects/issues/issue_journal/test_gitlink_repo_edit_issue_journals.yaml similarity index 70% rename from interface/gitlink/projects/issues/test_gitlink_repo_edit_issue_journals.yaml rename to interface/gitlink/projects/issues/issue_journal/test_gitlink_repo_edit_issue_journals.yaml index 7715511..def52de 100644 --- a/interface/gitlink/projects/issues/test_gitlink_repo_edit_issue_journals.yaml +++ b/interface/gitlink/projects/issues/issue_journal/test_gitlink_repo_edit_issue_journals.yaml @@ -1,10 +1,10 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 疑修(Issue) + allure_story: 疑修(Issue)评论 case_markers: - gitlink - - project + - projects - issue - usefixtures: gitlink_login @@ -14,7 +14,7 @@ case_info: title: 项目内修改疑修评论接口 run: True severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/issues/${issue_index}/journals/${journal_id}.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/issues/${issue_index}/journals/${journal_id}.json method: patch headers: Content-Type: application/json; charset=utf-8; @@ -36,5 +36,7 @@ case_info: case_dependence: setup: interface: - - gitlink_repo_new_issue_01 - - gitlink_repo_new_issue_journals_01 \ No newline at end of file + # 前置条件:新建issue + - gitlink_repo_new_issue_01 + # 前置条件:issue下新建评论 + - gitlink_repo_new_issue_journals_01 \ No newline at end of file diff --git a/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_journal_children_list.yaml b/interface/gitlink/projects/issues/issue_journal/test_gitlink_repo_get_issue_journal_children_list.yaml similarity index 68% rename from interface/gitlink/projects/issues/test_gitlink_repo_get_issue_journal_children_list.yaml rename to interface/gitlink/projects/issues/issue_journal/test_gitlink_repo_get_issue_journal_children_list.yaml index 2fecaf7..1b35236 100644 --- a/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_journal_children_list.yaml +++ b/interface/gitlink/projects/issues/issue_journal/test_gitlink_repo_get_issue_journal_children_list.yaml @@ -1,10 +1,10 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 疑修(Issue) + allure_story: 疑修(Issue)评论 case_markers: - gitlink - - repo + - projects - issue - usefixtures: gitlink_login @@ -14,7 +14,7 @@ case_info: title: 获取疑修评论的子评论列表 run: true severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/issues/${issue_index}/journals/${journal_id}/children_journals.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/issues/${issue_index}/journals/${journal_id}/children_journals.json method: GET headers: Content-Type: application/json; charset=utf-8; @@ -36,5 +36,7 @@ case_info: case_dependence: setup: interface: - - gitlink_repo_new_issue_01 - - gitlink_repo_new_issue_journals_01 \ No newline at end of file + # 前置条件:新建issue + - gitlink_repo_new_issue_01 + # 前置条件:issue下新建评论 + - gitlink_repo_new_issue_journals_01 \ No newline at end of file diff --git a/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_journal_list.yaml b/interface/gitlink/projects/issues/issue_journal/test_gitlink_repo_get_issue_journal_list.yaml similarity index 81% rename from interface/gitlink/projects/issues/test_gitlink_repo_get_issue_journal_list.yaml rename to interface/gitlink/projects/issues/issue_journal/test_gitlink_repo_get_issue_journal_list.yaml index 2d8598e..4fddd6b 100644 --- a/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_journal_list.yaml +++ b/interface/gitlink/projects/issues/issue_journal/test_gitlink_repo_get_issue_journal_list.yaml @@ -1,10 +1,10 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 疑修(Issue) + allure_story: 疑修(Issue)评论 case_markers: - gitlink - - repo + - projects - issue - usefixtures: gitlink_login @@ -14,7 +14,7 @@ case_info: title: 获取疑修下评论或操作记录列表 run: true severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/issues/${issue_index}/journals.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/issues/${issue_index}/journals.json method: GET headers: Content-Type: application/json; charset=utf-8; @@ -39,4 +39,5 @@ case_info: case_dependence: setup: interface: - - gitlink_repo_new_issue_01 \ No newline at end of file + # 前置条件:新建issue + - gitlink_repo_new_issue_01 \ No newline at end of file diff --git a/interface/gitlink/projects/issues/issue_journal/test_gitlink_repo_new_issue_journals.yaml b/interface/gitlink/projects/issues/issue_journal/test_gitlink_repo_new_issue_journals.yaml new file mode 100644 index 0000000..c9d9acf --- /dev/null +++ b/interface/gitlink/projects/issues/issue_journal/test_gitlink_repo_new_issue_journals.yaml @@ -0,0 +1,110 @@ +case_common: + allure_epic: GitLink接口 + allure_feature: 开源项目模块 + allure_story: 疑修(Issue)评论 + case_markers: + - gitlink + - projects + - issue + - usefixtures: gitlink_login + +common_dependence: + setup: + interface: + # 前置条件:项目内新建疑修接口 - 无附件 + - gitlink_repo_new_issue_01 + + +case_info: + - id: gitlink_repo_new_issue_journals_01 + title: 项目内新建疑修评论接口 - 一级评论, 无附件 + run: True + severity: normal + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/issues/${issue_index}/journals.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + request_type: json + payload: + notes: ${generate_words(nb=10)} + attachment_ids: [ ] # 评论附件ID 可选 + receivers_login: [ ] + files: + assert_response: + status_code: 200 + assertField: + message: 断言接口存在id + expect_value: id + assert_type: contains + assert_sql: + extract: + type_jsonpath: + journal_id: $.id + case_dependence: + + - id: gitlink_repo_new_issue_journals_02 + title: 项目内新建疑修评论接口 - 一级评论, 有附件 + run: True + severity: normal + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/issues/${issue_index}/journals.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + request_type: json + payload: + notes: ${generate_words(nb=10)} + attachment_ids: # 评论附件ID 可选 + - ${attachment_id} + receivers_login: [ ] + files: + assert_response: + status_code: 200 + assertField: + message: 断言接口存在id + expect_value: id + assert_type: contains + assert_sql: + extract: + case_dependence: + setup: + # 前置条件:上传附件,获取attachment_id + interface: gitlink_upload_file_01 + + + - id: gitlink_repo_new_issue_journals_03 + title: 项目内新建疑修评论接口 - notes为空 + run: True + severity: normal + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/issues/${issue_index}/journals.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + request_type: json + payload: + parent_id: 0 # 父评论ID 可选 + reply_id: # 回复评论ID 可选 + attachment_ids: # 评论附件ID 可选 + - ${attachment_id} + receivers_login: [ ] + files: + assert_response: + status_code: 200 + assert_status: + message: 断言接口status=-1 + expect_value: -1 + assert_type: == + type_jsonpath: $.status + assert_message: + message: 断言接口message + expect_value: Notes不能为空字符 + assert_type: == + type_jsonpath: $.message + assert_sql: + extract: + case_dependence: + setup: + # 前置条件:上传附件,获取attachment_id + interface: gitlink_upload_file_01 \ No newline at end of file diff --git a/interface/gitlink/projects/issues/test_gitlink_repo_batch_delete_issue.yaml b/interface/gitlink/projects/issues/test_gitlink_repo_batch_delete_issue.yaml index e32de67..ad3187a 100644 --- a/interface/gitlink/projects/issues/test_gitlink_repo_batch_delete_issue.yaml +++ b/interface/gitlink/projects/issues/test_gitlink_repo_batch_delete_issue.yaml @@ -4,7 +4,7 @@ case_common: allure_story: 疑修(Issue) case_markers: - gitlink - - repo + - projects - issue - usefixtures: gitlink_login @@ -14,7 +14,7 @@ case_info: title: 项目内批量删除多个疑修 run: True severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/issues/batch_destroy.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/issues/batch_destroy.json method: delete headers: Content-Type: application/json; charset=utf-8; @@ -40,6 +40,8 @@ case_info: case_dependence: setup: interface: - - gitlink_repo_new_issue_01 - - gitlink_repo_new_issue_01 - - gitlink_repo_get_issue_list_02 \ No newline at end of file + # 前置条件:连续新建多个issue + - gitlink_repo_new_issue_01 + - gitlink_repo_new_issue_01 + # 获取多个issue_ids + - gitlink_repo_get_issue_list_02 \ No newline at end of file diff --git a/interface/gitlink/projects/issues/test_gitlink_repo_batch_edit_issue.yaml b/interface/gitlink/projects/issues/test_gitlink_repo_batch_edit_issue.yaml index 25a954a..7186bdd 100644 --- a/interface/gitlink/projects/issues/test_gitlink_repo_batch_edit_issue.yaml +++ b/interface/gitlink/projects/issues/test_gitlink_repo_batch_edit_issue.yaml @@ -4,17 +4,17 @@ case_common: allure_story: 疑修(Issue) case_markers: - gitlink - - repo + - projects - issue - usefixtures: gitlink_login case_info: - id: gitlink_repo_batch_edit_issue_01 - title: 项目内批量更新一个疑修 + title: 项目内批量更新多个疑修 run: True severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/issues/batch_update.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/issues/batch_update.json method: PATCH headers: Content-Type: application/json; charset=utf-8; @@ -45,6 +45,8 @@ case_info: case_dependence: setup: interface: + # 前置条件:连续新建多个issue - gitlink_repo_new_issue_01 - gitlink_repo_new_issue_01 - - gitlink_repo_get_issue_list_01 \ No newline at end of file + # 获取多个issue_ids + - gitlink_repo_get_issue_list_02 \ No newline at end of file diff --git a/interface/gitlink/projects/issues/test_gitlink_repo_delete_issue.yaml b/interface/gitlink/projects/issues/test_gitlink_repo_delete_issue.yaml index 89c1880..0bfae8a 100644 --- a/interface/gitlink/projects/issues/test_gitlink_repo_delete_issue.yaml +++ b/interface/gitlink/projects/issues/test_gitlink_repo_delete_issue.yaml @@ -4,7 +4,7 @@ case_common: allure_story: 疑修(Issue) case_markers: - gitlink - - repo + - projects - issue - usefixtures: gitlink_login @@ -14,7 +14,7 @@ case_info: title: 项目内删除一个疑修 run: True severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/issues/${issue_index}.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/issues/${issue_index}.json method: delete headers: Content-Type: application/json; charset=utf-8; @@ -38,4 +38,5 @@ case_info: extract: case_dependence: setup: + # 前置条件:新建issue interface: gitlink_repo_new_issue_01 \ No newline at end of file diff --git a/interface/gitlink/projects/issues/test_gitlink_repo_edit_issue.yaml b/interface/gitlink/projects/issues/test_gitlink_repo_edit_issue.yaml index 3df524f..9de238d 100644 --- a/interface/gitlink/projects/issues/test_gitlink_repo_edit_issue.yaml +++ b/interface/gitlink/projects/issues/test_gitlink_repo_edit_issue.yaml @@ -4,7 +4,7 @@ case_common: allure_story: 疑修(Issue) case_markers: - gitlink - - repo + - projects - issue - usefixtures: gitlink_login @@ -14,7 +14,7 @@ case_info: title: 项目内更新一个疑修 run: True severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/issues/${issue_index}.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/issues/${issue_index}.json method: patch headers: Content-Type: application/json; charset=utf-8; @@ -44,5 +44,5 @@ case_info: extract: case_dependence: setup: - interface: - - gitlink_repo_new_issue_01 \ No newline at end of file + # 前置条件:新建issue + interface: gitlink_repo_new_issue_01 \ No newline at end of file diff --git a/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_assigner_list.yaml b/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_assigner_list.yaml index 59b2ad1..43bed84 100644 --- a/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_assigner_list.yaml +++ b/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_assigner_list.yaml @@ -4,7 +4,7 @@ case_common: allure_story: 疑修(Issue) case_markers: - gitlink - - repo + - projects - issue - usefixtures: gitlink_login @@ -14,7 +14,7 @@ case_info: title: 疑修负责人列表 run: true severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/issue_assigners.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/issue_assigners.json method: GET headers: Content-Type: application/json; charset=utf-8; diff --git a/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_author_list.yaml b/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_author_list.yaml index da08da8..eef89f6 100644 --- a/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_author_list.yaml +++ b/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_author_list.yaml @@ -4,7 +4,7 @@ case_common: allure_story: 疑修(Issue) case_markers: - gitlink - - repo + - projects - issue - usefixtures: gitlink_login @@ -14,7 +14,7 @@ case_info: title: 疑修发布人列表 run: true severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/issue_authors.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/issue_authors.json method: GET headers: Content-Type: application/json; charset=utf-8; diff --git a/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_detail.yaml b/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_detail.yaml index cfe4a98..9e99af9 100644 --- a/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_detail.yaml +++ b/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_detail.yaml @@ -4,7 +4,7 @@ case_common: allure_story: 疑修(Issue) case_markers: - gitlink - - project + - projects - issue - usefixtures: gitlink_login @@ -14,7 +14,7 @@ case_info: title: 项目内获取疑修详情接口 run: True severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/issues/${issue_index}.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/issues/${issue_index}.json method: GET headers: Content-Type: application/json; charset=utf-8; @@ -33,4 +33,5 @@ case_info: extract: case_dependence: setup: + # 前置条件:新建issue interface: gitlink_repo_new_issue_01 \ No newline at end of file diff --git a/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_list.yaml b/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_list.yaml index c7139da..7bc9771 100644 --- a/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_list.yaml +++ b/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_list.yaml @@ -4,7 +4,7 @@ case_common: allure_story: 疑修(Issue) case_markers: - gitlink - - project + - projects - issue - usefixtures: gitlink_login @@ -14,7 +14,7 @@ case_info: title: 项目内获取疑修列表接口 run: True severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/issues + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/issues method: GET headers: Content-Type: application/json; charset=utf-8; @@ -51,7 +51,7 @@ case_info: title: 项目内获取疑修列表接口 - 根据关键字搜索 run: True severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/issues + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/issues method: GET headers: Content-Type: application/json; charset=utf-8; diff --git a/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_priority_list.yaml b/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_priority_list.yaml index 8e6bbe4..27fe49d 100644 --- a/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_priority_list.yaml +++ b/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_priority_list.yaml @@ -4,7 +4,7 @@ case_common: allure_story: 疑修(Issue) case_markers: - gitlink - - repo + - projects - issue - usefixtures: gitlink_login @@ -14,7 +14,7 @@ case_info: title: 疑修优先级列表 run: true severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/issue_priorities.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/issue_priorities.json method: GET headers: Content-Type: application/json; charset=utf-8; diff --git a/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_status_list.yaml b/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_status_list.yaml index d985d64..f2b3afe 100644 --- a/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_status_list.yaml +++ b/interface/gitlink/projects/issues/test_gitlink_repo_get_issue_status_list.yaml @@ -4,7 +4,7 @@ case_common: allure_story: 疑修(Issue) case_markers: - gitlink - - repo + - projects - issue - usefixtures: gitlink_login @@ -14,7 +14,7 @@ case_info: title: 疑修状态列表 run: true severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/issue_statues.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/issue_statues.json method: GET headers: Content-Type: application/json; charset=utf-8; diff --git a/interface/gitlink/projects/issues/test_gitlink_repo_new_issue.yaml b/interface/gitlink/projects/issues/test_gitlink_repo_new_issue.yaml index a1becd7..e3b0ed2 100644 --- a/interface/gitlink/projects/issues/test_gitlink_repo_new_issue.yaml +++ b/interface/gitlink/projects/issues/test_gitlink_repo_new_issue.yaml @@ -4,7 +4,7 @@ case_common: allure_story: 疑修(Issue) case_markers: - gitlink - - repo + - projects - issue - new_issue - usefixtures: gitlink_login @@ -15,7 +15,7 @@ case_info: title: 项目内新建疑修接口 - 无附件 run: True severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/issues.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/issues.json method: POST headers: Content-Type: application/json; charset=utf-8; @@ -56,7 +56,7 @@ case_info: title: 项目内新建疑修接口 - 带附件 run: True severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/issues.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/issues.json method: POST headers: Content-Type: application/json; charset=utf-8; @@ -92,4 +92,5 @@ case_info: issue_files: $.attachments..title case_dependence: setup: + # 前置条件:上传issue附件,获取attachment_id interface: gitlink_upload_file_01 \ No newline at end of file diff --git a/interface/gitlink/projects/issues/test_gitlink_repo_new_issue_journals.yaml b/interface/gitlink/projects/issues/test_gitlink_repo_new_issue_journals.yaml deleted file mode 100644 index a72ad65..0000000 --- a/interface/gitlink/projects/issues/test_gitlink_repo_new_issue_journals.yaml +++ /dev/null @@ -1,106 +0,0 @@ -case_common: - allure_epic: GitLink接口 - allure_feature: 开源项目模块 - allure_story: 疑修(Issue) - case_markers: - - gitlink - - project - - issue - - usefixtures: gitlink_login - -case_info: -- - id: gitlink_repo_new_issue_journals_01 - title: 项目内新建疑修评论接口 - 一级评论, 无附件 - run: True - severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/issues/${issue_index}/journals.json - method: POST - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - request_type: json - payload: - notes: ${generate_words(nb=10)} - attachment_ids: [] # 评论附件ID 可选 - receivers_login: [] - files: - assert_response: - status_code: 200 - assertField: - message: 断言接口存在id - expect_value: id - assert_type: contains - assert_sql: - extract: - type_jsonpath: - journal_id: $.id - case_dependence: - setup: - interface: gitlink_repo_new_issue_01 - -- - id: gitlink_repo_new_issue_journals_02 - title: 项目内新建疑修评论接口 - 一级评论, 有附件 - run: True - severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/issues/${issue_index}/journals.json - method: POST - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - request_type: json - payload: - notes: ${generate_words(nb=10)} - attachment_ids: # 评论附件ID 可选 - - ${attachment_id} - receivers_login: [] - files: - assert_response: - status_code: 200 - assertField: - message: 断言接口存在id - expect_value: id - assert_type: contains - assert_sql: - extract: - case_dependence: - setup: - interface: gitlink_repo_new_issue_01 - - -- - id: gitlink_repo_new_issue_journals_03 - title: 项目内新建疑修评论接口 - notes为空 - run: True - severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/issues/${issue_index}/journals.json - method: POST - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - request_type: json - payload: - parent_id: 0 # 父评论ID 可选 - reply_id: # 回复评论ID 可选 - attachment_ids: # 评论附件ID 可选 - - ${attachment_id} - receivers_login: [] - files: - assert_response: - status_code: 200 - assert_status: - message: 断言接口status=-1 - expect_value: -1 - assert_type: == - type_jsonpath: $.status - assert_message: - message: 断言接口message - expect_value: Notes不能为空字符 - assert_type: == - type_jsonpath: $.message - assert_sql: - extract: - case_dependence: - setup: - interface: gitlink_repo_new_issue_01 \ No newline at end of file diff --git a/interface/gitlink/projects/milestone/test_gitlink_repo_delete_milestone.yaml b/interface/gitlink/projects/milestone/test_gitlink_repo_delete_milestone.yaml index 3c1959a..f448292 100644 --- a/interface/gitlink/projects/milestone/test_gitlink_repo_delete_milestone.yaml +++ b/interface/gitlink/projects/milestone/test_gitlink_repo_delete_milestone.yaml @@ -4,7 +4,7 @@ case_common: allure_story: 里程碑 case_markers: - gitlink - - repo + - projects - milestone - usefixtures: gitlink_login @@ -14,7 +14,7 @@ case_info: title: 删除一个里程碑 run: true severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/milestones/${milestone_id}.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/milestones/${milestone_id}.json method: delete headers: Content-Type: application/json; charset=utf-8; @@ -39,5 +39,7 @@ case_info: case_dependence: setup: interface: - - gitlink_repo_new_milestone_01 - - gitlink_repo_get_milestone_list_02 \ No newline at end of file + # 前置条件:新建一个里程碑 + - gitlink_repo_new_milestone_01 + # 前置条件:获取刚刚新建里程碑的milestone_id + - gitlink_repo_get_milestone_list_02 \ No newline at end of file diff --git a/interface/gitlink/projects/milestone/test_gitlink_repo_edit_milestone.yaml b/interface/gitlink/projects/milestone/test_gitlink_repo_edit_milestone.yaml index 2967b19..f43bf81 100644 --- a/interface/gitlink/projects/milestone/test_gitlink_repo_edit_milestone.yaml +++ b/interface/gitlink/projects/milestone/test_gitlink_repo_edit_milestone.yaml @@ -4,7 +4,7 @@ case_common: allure_story: 里程碑 case_markers: - gitlink - - repo + - projects - milestone - usefixtures: gitlink_login @@ -14,7 +14,7 @@ case_info: title: 更新一个里程碑 run: true severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/milestones/${milestone_id}.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/milestones/${milestone_id}.json method: patch headers: Content-Type: application/json; charset=utf-8; @@ -42,5 +42,7 @@ case_info: case_dependence: setup: interface: - - gitlink_repo_new_milestone_01 - - gitlink_repo_get_milestone_list_02 \ No newline at end of file + # 前置条件:新建一个里程碑 + - gitlink_repo_new_milestone_01 + # 前置条件:获取刚刚新建里程碑的milestone_id + - gitlink_repo_get_milestone_list_02 \ No newline at end of file diff --git a/interface/gitlink/projects/milestone/test_gitlink_repo_edit_milestone_status.yaml b/interface/gitlink/projects/milestone/test_gitlink_repo_edit_milestone_status.yaml index 2c46296..25fa7cc 100644 --- a/interface/gitlink/projects/milestone/test_gitlink_repo_edit_milestone_status.yaml +++ b/interface/gitlink/projects/milestone/test_gitlink_repo_edit_milestone_status.yaml @@ -4,7 +4,7 @@ case_common: allure_story: 里程碑 case_markers: - gitlink - - repo + - projects - milestone - usefixtures: gitlink_login @@ -14,7 +14,7 @@ case_info: title: 更新一个里程碑的状态 - 关闭里程碑 run: true severity: normal - url: /api/${env_repo_owner}/${env_repo_identifier}/milestones/${milestone_id}/update_status.json + url: /api/${init_repo_owner}/${init_repo_identifier}/milestones/${milestone_id}/update_status.json method: POST headers: Content-Type: application/json; charset=utf-8; @@ -22,7 +22,7 @@ case_info: request_type: json payload: id: ${milestone_id} - project_id: ${env_repo_identifier} + project_id: ${repo_identifier} status: closed files: assert_response: @@ -42,8 +42,10 @@ case_info: case_dependence: setup: interface: - - gitlink_repo_new_milestone_01 - - gitlink_repo_get_milestone_list_02 + # 前置条件:新建一个里程碑 + - gitlink_repo_new_milestone_01 + # 前置条件:获取刚刚新建里程碑的milestone_id + - gitlink_repo_get_milestone_list_02 - @@ -51,7 +53,7 @@ case_info: title: 更新一个里程碑的状态 - 开启里程碑 run: true severity: normal - url: /api/${env_repo_owner}/${env_repo_identifier}/milestones/${milestone_id}/update_status.json + url: /api/${init_repo_owner}/${init_repo_identifier}/milestones/${milestone_id}/update_status.json method: POST headers: Content-Type: application/json; charset=utf-8; @@ -59,7 +61,7 @@ case_info: request_type: json payload: id: ${milestone_id} - project_id: ${env_repo_identifier} + project_id: ${repo_identifier} status: open files: assert_response: @@ -79,5 +81,7 @@ case_info: case_dependence: setup: interface: - - gitlink_repo_new_milestone_01 - - gitlink_repo_get_milestone_list_02 \ No newline at end of file + # 前置条件:新建一个里程碑 + - gitlink_repo_new_milestone_01 + # 前置条件:获取刚刚新建里程碑的milestone_id + - gitlink_repo_get_milestone_list_02 \ No newline at end of file diff --git a/interface/gitlink/projects/milestone/test_gitlink_repo_get_milestone_list.yaml b/interface/gitlink/projects/milestone/test_gitlink_repo_get_milestone_list.yaml index 05bda0f..48e074f 100644 --- a/interface/gitlink/projects/milestone/test_gitlink_repo_get_milestone_list.yaml +++ b/interface/gitlink/projects/milestone/test_gitlink_repo_get_milestone_list.yaml @@ -4,7 +4,7 @@ case_common: allure_story: 里程碑 case_markers: - gitlink - - repo + - projects - milestone - usefixtures: gitlink_login @@ -14,7 +14,7 @@ case_info: title: 获取里程碑列表 run: true severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/milestones.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/milestones.json method: GET headers: Content-Type: application/json; charset=utf-8; @@ -45,7 +45,7 @@ case_info: title: 获取里程碑列表 - 开启状态的里程碑 run: true severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/milestones.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/milestones.json method: GET headers: Content-Type: application/json; charset=utf-8; diff --git a/interface/gitlink/projects/milestone/test_gitlink_repo_new_milestone.yaml b/interface/gitlink/projects/milestone/test_gitlink_repo_new_milestone.yaml index 3ec1e39..0368f74 100644 --- a/interface/gitlink/projects/milestone/test_gitlink_repo_new_milestone.yaml +++ b/interface/gitlink/projects/milestone/test_gitlink_repo_new_milestone.yaml @@ -4,7 +4,7 @@ case_common: allure_story: 里程碑 case_markers: - gitlink - - repo + - projects - milestone - usefixtures: gitlink_login @@ -14,7 +14,7 @@ case_info: title: 创建一个里程碑 run: true severity: normal - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/milestones.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/milestones.json method: POST headers: Content-Type: application/json; charset=utf-8; diff --git a/interface/gitlink/projects/pull_request/pull_request_journal/test_gitlink_repo_get_pull_request_journal_list.yaml b/interface/gitlink/projects/pull_request/pull_request_journal/test_gitlink_repo_get_pull_request_journal_list.yaml new file mode 100644 index 0000000..c3dab4d --- /dev/null +++ b/interface/gitlink/projects/pull_request/pull_request_journal/test_gitlink_repo_get_pull_request_journal_list.yaml @@ -0,0 +1,62 @@ +case_common: + allure_epic: GitLink接口 + allure_feature: 开源项目模块 + allure_story: 合并请求-评论 + case_markers: + - gitlink + - projects + - pr + - gitea + - usefixtures: gitlink_login + +# 前提是仓库存在2个不同的分支 +# 步骤说明 +# 1、项目开发者代码库新建文件,提交的分支新分支 +# 2、项目开发者从新分支向默认分支分支发起PR +# 3、项目开发者访问PR详情, 获取合并请求评论列表 +# 后置数据清理:项目管理员登录,删除分支 + +common_dependence: + setup: + interface: + # 前置条件:获取测试仓库的默认分支 + - gitlink_get_repo_detail_full_01 + + +case_info: +- + id: gitlink_repo_get_pull_request_journal_list_01 + title: 获取合并请求评论列表 + severity: normal + run: True + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/pulls/${pull_request_id}/journals.json + method: GET + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: params + payload: + files: + assert_response: + status_code: 200 + assertFiled: + message: 断言接口返回存在total_count + expect_value: total_count + assert_type: contains + assert_sql: + extract: + case_dependence: + setup: + # 前置条件:创建的新文件名称 + env_vars: + repo_file_path: test_${generate_words}.py + interface: + # 前置条件:代码库新建文件,提交的分支新分支 + - gitlink_repo_create_files_05 # 创建新分支,同时获取branch name + # 前置条件:发起PR + - gitlink_repo_new_pull_request_01 + teardown: + interface: + # 后置处理:删除分支 + - gitlink_repo_delete_branch_01 \ No newline at end of file diff --git a/interface/gitlink/projects/pull_request/pull_request_journal/test_gitlink_repo_new_pull_request_journal.yaml b/interface/gitlink/projects/pull_request/pull_request_journal/test_gitlink_repo_new_pull_request_journal.yaml new file mode 100644 index 0000000..33120f7 --- /dev/null +++ b/interface/gitlink/projects/pull_request/pull_request_journal/test_gitlink_repo_new_pull_request_journal.yaml @@ -0,0 +1,69 @@ +case_common: + allure_epic: GitLink接口 + allure_feature: 开源项目模块 + allure_story: 合并请求 + case_markers: + - gitlink + - projects + - pr + - gitea + - usefixtures: gitlink_login + - skip: 参数不明确,后续再补充 + +# 前提是仓库存在2个不同的分支 +# 步骤说明 +# 1、项目开发者代码库新建文件,提交的分支新分支 +# 2、项目开发者从新分支向默认分支分支发起PR +# 3、项目开发者评论PR +# 后置数据清理:项目管理员登录,删除分支 + +case_info: + - id: gitlink_repo_new_pull_request_journal_01 + title: 创建一个合并请求评论 + severity: + run: false + url: /api/${init_repo_owner}/${init_repo_identifier}/pulls/${pull_request_id}/journals.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: json + payload: + commit_id: str + diff: Diff + line_code: str + note: str + parent_id: int + path: str + review_id: str + type: str + files: + assert_response: + status_code: 200 + assertStatus: + message: 断言接口返回status=0 + expect_value: 0 + assert_type: == + type_jsonpath: $.status + assertMessage: + message: 断言接口返回message + expect_value: 响应成功 + assert_type: == + type_jsonpath: $.message + assert_sql: + extract: + case_dependence: + setup: + # 前置条件:创建的新文件名称 + env_vars: + repo_file_path: test_${generate_words}.py + interface: + # 前置条件:代码库新建文件,提交的分支新分支 + - gitlink_repo_create_files_05 # 创建新分支,同时获取branch name + # 前置条件:发起PR + - gitlink_repo_new_pull_request_01 + teardown: + interface: + # 后置处理:删除分支 + - gitlink_repo_delete_branch_01 diff --git a/interface/gitlink/projects/pull_request/test_gitlink_repo_edit_pull_request.yaml b/interface/gitlink/projects/pull_request/test_gitlink_repo_edit_pull_request.yaml index a7acbde..e2b589f 100644 --- a/interface/gitlink/projects/pull_request/test_gitlink_repo_edit_pull_request.yaml +++ b/interface/gitlink/projects/pull_request/test_gitlink_repo_edit_pull_request.yaml @@ -4,44 +4,46 @@ case_common: allure_story: 合并请求 case_markers: - gitlink + - projects - pr - gitea - usefixtures: gitlink_login # 前提是仓库存在2个不同的分支 # 步骤说明 -# 1、从master分支创建一个新的分支 -# 2、修改新分支的README.md文件,确保新分支与master分支存在差异 -# 3、从新分支向master分支发起PR -# 4、编辑合并请求 +# 1、项目开发者代码库新建文件,提交的分支新分支 +# 2、项目开发者从新分支向默认分支分支发起PR +# 3、项目开发者编辑PR +# 后置数据清理:项目管理员登录,删除分支 common_dependence: setup: - env_vars: - repo_file_path: README.md + interface: + # 前置条件:获取测试仓库的默认分支 + - gitlink_get_repo_detail_full_01 + case_info: -- - id: gitlink_repo_edit_pull_request_001 - title: 更新一个合并请求 - severity: - run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/pulls/${pull_request_id}.json - method: PUT - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - title: update PR ${generate_words()} # 合并请求标题 - body: ${generate_paragraph()} # 合并请求内容 - head: # 源分支 - base: master # 目标分支 - receivers_login: [] # @人员的login - issue_tag_ids: [] # 标记ID数组 - files: - assert_response: + - id: gitlink_repo_edit_pull_request_001 + title: 更新一个合并请求, 更新成功 + severity: + run: True + url: /api/${init_repo_owner}/${init_repo_identifier}/pulls/${pull_request_id}.json + method: PUT + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: json + payload: + title: update PR ${generate_words()} # 合并请求标题 + body: ${generate_paragraph()} # 合并请求内容 + head: ${head_branch} # 源分支 + base: ${base_branch} # 目标分支 + receivers_login: [ ] # @人员的login + issue_tag_ids: [ ] # 标记ID数组 + files: + assert_response: status_code: 200 assertStatus: message: 断言接口返回status=0 @@ -53,16 +55,21 @@ case_info: expect_value: PullRequest更新成功 assert_type: == type_jsonpath: $.message - assert_sql: - extract: - case_dependence: - setup: - interface: - - gitlink_repo_new_branch_001 # 创建新分支,同时获取branch name - - gitlink_get_repo_readme_file_02 # 获取新分支readme文件的sha - - gitlink_repo_edit_files_02 # 修改新分支的readme文件的内容 - - gitlink_repo_new_pull_request_001 # 新建合并请求 - teardown: - interface: - - gitlink_super_login_04 - - gitlink_repo_delete_branch_001 \ No newline at end of file + assert_sql: + extract: + case_dependence: + setup: + # 前置条件:创建的新文件名称 + env_vars: + repo_file_path: test_${generate_words}.py + interface: + # 前置条件:代码库新建文件,提交的分支新分支 + - gitlink_repo_create_files_05 # 创建新分支,同时获取branch name + # 前置条件:发起PR + - gitlink_repo_new_pull_request_01 + # 前置条件:获取PR详情,如源分支,目标分支 + - gitlink_repo_get_pull_request_detail_01 + teardown: + interface: + # 后置处理:删除分支 + - gitlink_repo_delete_branch_01 \ No newline at end of file diff --git a/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_commits_list.yaml b/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_commits_list.yaml index 34e3638..172ca9b 100644 --- a/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_commits_list.yaml +++ b/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_commits_list.yaml @@ -1,25 +1,32 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 合并请求 + allure_story: 合并请求-提交 case_markers: - gitlink + - projects - pr - gitea - usefixtures: gitlink_login +common_dependence: + setup: + interface: + # 前置条件:获取测试仓库的默认分支 + - gitlink_get_repo_detail_full_01 + case_info: - id: gitlink_repo_get_pull_request_commits_list_01 title: 获取一个合并请求提交列表 severity: normal run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/pulls/${pull_request_id}/commits.json + url: /api/${init_repo_owner}/${init_repo_identifier}/pulls/${pull_request_id}/commits.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: @@ -34,4 +41,15 @@ case_info: extract: case_dependence: setup: - interface: gitlink_repo_get_pull_request_list_03 \ No newline at end of file + # 前置条件:创建的新文件名称 + env_vars: + repo_file_path: test_${generate_words}.py + interface: + # 前置条件:代码库新建文件,提交的分支新分支 + - gitlink_repo_create_files_05 # 创建新分支,同时获取branch name + # 前置条件:发起PR + - gitlink_repo_new_pull_request_01 + teardown: + interface: + # 后置处理:删除分支 + - gitlink_repo_delete_branch_01 \ No newline at end of file diff --git a/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_detail.yaml b/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_detail.yaml index a569b42..d5b75e0 100644 --- a/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_detail.yaml +++ b/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_detail.yaml @@ -4,10 +4,16 @@ case_common: allure_story: 合并请求 case_markers: - gitlink + - projects - pr - gitea - usefixtures: gitlink_login +common_dependence: + setup: + interface: + # 前置条件:获取测试仓库的默认分支 + - gitlink_get_repo_detail_full_01 case_info: - @@ -15,29 +21,44 @@ case_info: title: 获取合并请求详情 severity: normal run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/pulls/${pull_request_id}.json + url: /api/${init_repo_owner}/${init_repo_identifier}/pulls/${pull_request_id}.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: files: assert_response: - status_code: 200 - assertStatus: - message: 断言接口返回status=0 - expect_value: 0 - assert_type: == - type_jsonpath: $.status - assertMessage: - message: 断言接口返回message - expect_value: 响应成功 - assert_type: == - type_jsonpath: $.message + status_code: 200 + assertStatus: + message: 断言接口返回status=0 + expect_value: 0 + assert_type: == + type_jsonpath: $.status + assertMessage: + message: 断言接口返回message + expect_value: 响应成功 + assert_type: == + type_jsonpath: $.message assert_sql: extract: + response: + type_jsonpath: + head_branch: $.pull_request.head # 源分支 + base_branch: $.pull_request.base # 目标分支 case_dependence: setup: - interface: gitlink_repo_get_pull_request_list_03 \ No newline at end of file + # 前置条件:创建的新文件名称 + env_vars: + repo_file_path: test_${generate_words}.py + interface: + # 前置条件:代码库新建文件(无父级目录),提交的分支新分支 + - gitlink_repo_create_files_05 # 创建新分支,同时获取branch name + # 前置条件:发起PR + - gitlink_repo_new_pull_request_01 + teardown: + interface: + # 后置处理:删除分支 + - gitlink_repo_delete_branch_01 \ No newline at end of file diff --git a/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_files_list.yaml b/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_files_list.yaml index 528a60e..d43a3b1 100644 --- a/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_files_list.yaml +++ b/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_files_list.yaml @@ -1,13 +1,20 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 合并请求 + allure_story: 合并请求-文件 case_markers: - gitlink + - projects - pr - gitea - usefixtures: gitlink_login +common_dependence: + setup: + interface: + # 前置条件:获取测试仓库的默认分支 + - gitlink_get_repo_detail_full_01 + case_info: - @@ -15,11 +22,11 @@ case_info: title: 获取一个合并请求变更文件列表 severity: normal run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/pulls/${pull_request_id}/files.json + url: /api/${init_repo_owner}/${init_repo_identifier}/pulls/${pull_request_id}/files.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: @@ -34,4 +41,15 @@ case_info: extract: case_dependence: setup: - interface: gitlink_repo_get_pull_request_list_03 \ No newline at end of file + # 前置条件:创建的新文件名称 + env_vars: + repo_file_path: test_${generate_words}.py + interface: + # 前置条件:代码库新建文件,提交的分支新分支 + - gitlink_repo_create_files_05 # 创建新分支,同时获取branch name + # 前置条件:发起PR + - gitlink_repo_new_pull_request_01 + teardown: + interface: + # 后置处理:删除分支 + - gitlink_repo_delete_branch_01 \ No newline at end of file diff --git a/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_journal_list.yaml b/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_journal_list.yaml deleted file mode 100644 index dc6d17e..0000000 --- a/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_journal_list.yaml +++ /dev/null @@ -1,37 +0,0 @@ -case_common: - allure_epic: GitLink接口 - allure_feature: 开源项目模块 - allure_story: 合并请求 - case_markers: - - gitlink - - pr - - gitea - - usefixtures: gitlink_login - - -case_info: -- - id: gitlink_repo_get_pull_request_journal_list_01 - title: 获取合并请求评论列表 - severity: normal - run: True - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/pulls/${pull_request_id}/journals.json - method: GET - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: params - payload: - files: - assert_response: - status_code: 200 - assertFiled: - message: 断言接口返回存在total_count - expect_value: total_count - assert_type: contains - assert_sql: - extract: - case_dependence: - setup: - interface: gitlink_repo_get_pull_request_list_03 \ No newline at end of file diff --git a/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_list.yaml b/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_list.yaml index 3357886..fbd22d8 100644 --- a/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_list.yaml +++ b/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_list.yaml @@ -4,6 +4,7 @@ case_common: allure_story: 合并请求 case_markers: - gitlink + - projects - pr - gitea - usefixtures: gitlink_login @@ -14,11 +15,11 @@ case_info: title: 获取合并请求列表 (全部状态) severity: normal run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/pulls.json + url: /api/${init_repo_owner}/${init_repo_identifier}/pulls.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: @@ -46,11 +47,11 @@ case_info: title: 获取合并请求列表 (开启中状态) severity: normal run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/pulls.json + url: /api/${init_repo_owner}/${init_repo_identifier}/pulls.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: @@ -81,11 +82,11 @@ case_info: title: 获取合并请求列表 (根据关键字搜索) severity: normal run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/pulls.json + url: /api/${init_repo_owner}/${init_repo_identifier}/pulls.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: diff --git a/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_reviews_list.yaml b/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_reviews_list.yaml index 39e93b2..615a225 100644 --- a/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_reviews_list.yaml +++ b/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_reviews_list.yaml @@ -1,13 +1,20 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 合并请求 + allure_story: 合并请求-代码评审 case_markers: - gitlink + - projects - pr - gitea - usefixtures: gitlink_login +common_dependence: + setup: + interface: + # 前置条件:获取测试仓库的默认分支 + - gitlink_get_repo_detail_full_01 + case_info: - @@ -15,11 +22,11 @@ case_info: title: 获取合并请求审查列表 severity: normal run: True - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/pulls/${pull_request_id}/reviews.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/pulls/${pull_request_id}/reviews.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: @@ -34,4 +41,15 @@ case_info: extract: case_dependence: setup: - interface: gitlink_repo_get_pull_request_list_03 \ No newline at end of file + # 前置条件:创建的新文件名称 + env_vars: + repo_file_path: test_${generate_words}.py + interface: + # 前置条件:代码库新建文件,提交的分支新分支 + - gitlink_repo_create_files_05 # 创建新分支,同时获取branch name + # 前置条件:发起PR + - gitlink_repo_new_pull_request_01 + teardown: + interface: + # 后置处理:删除分支 + - gitlink_repo_delete_branch_01 \ No newline at end of file diff --git a/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_version_diff.yaml b/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_version_diff.yaml index 71ce7e7..91ed744 100644 --- a/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_version_diff.yaml +++ b/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_version_diff.yaml @@ -1,13 +1,20 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 合并请求 + allure_story: 合并请求-代码评审 case_markers: - gitlink + - projects - pr - gitea - usefixtures: gitlink_login +common_dependence: + setup: + interface: + # 前置条件:获取测试仓库的默认分支 + - gitlink_get_repo_detail_full_01 + case_info: - @@ -15,11 +22,11 @@ case_info: title: 获取合并请求版本之间的Diff severity: normal run: True - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/pulls/${pull_request_id}/versions/${version_id}/diff.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/pulls/${pull_request_id}/versions/${version_id}/diff.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: @@ -34,6 +41,17 @@ case_info: extract: case_dependence: setup: + # 前置条件:创建的新文件名称 + env_vars: + repo_file_path: test_${generate_words}.py interface: - - gitlink_repo_get_pull_request_list_03 - - gitlink_repo_get_pull_request_versions_list_01 \ No newline at end of file + # 前置条件:代码库新建文件,提交的分支新分支 + - gitlink_repo_create_files_05 # 创建新分支,同时获取branch name + # 前置条件:发起PR + - gitlink_repo_new_pull_request_01 + # 前置条件:获取version_id + - gitlink_repo_get_pull_request_versions_list_01 + teardown: + interface: + # 后置处理:删除分支 + - gitlink_repo_delete_branch_01 \ No newline at end of file diff --git a/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_version_list.yaml b/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_version_list.yaml index 1f748b5..585a3d6 100644 --- a/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_version_list.yaml +++ b/interface/gitlink/projects/pull_request/test_gitlink_repo_get_pull_request_version_list.yaml @@ -1,13 +1,20 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 合并请求 + allure_story: 合并请求-代码评审 case_markers: - gitlink + - projects - pr - gitea - usefixtures: gitlink_login +common_dependence: + setup: + interface: + # 前置条件:获取测试仓库的默认分支 + - gitlink_get_repo_detail_full_01 + case_info: - @@ -15,11 +22,11 @@ case_info: title: 获取合并请求版本列表 severity: normal run: True - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/pulls/${pull_request_id}/versions.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/pulls/${pull_request_id}/versions.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: @@ -36,4 +43,15 @@ case_info: version_id: $.versions[0].id case_dependence: setup: - interface: gitlink_repo_get_pull_request_list_03 \ No newline at end of file + # 前置条件:创建的新文件名称 + env_vars: + repo_file_path: test_${generate_words}.py + interface: + # 前置条件:代码库新建文件,提交的分支新分支 + - gitlink_repo_create_files_05 # 创建新分支,同时获取branch name + # 前置条件:发起PR + - gitlink_repo_new_pull_request_01 + teardown: + interface: + # 后置处理:删除分支 + - gitlink_repo_delete_branch_01 \ No newline at end of file diff --git a/interface/gitlink/projects/pull_request/test_gitlink_repo_new_pull_request.yaml b/interface/gitlink/projects/pull_request/test_gitlink_repo_new_pull_request.yaml index c9cbf73..9320e00 100644 --- a/interface/gitlink/projects/pull_request/test_gitlink_repo_new_pull_request.yaml +++ b/interface/gitlink/projects/pull_request/test_gitlink_repo_new_pull_request.yaml @@ -4,51 +4,53 @@ case_common: allure_story: 合并请求 case_markers: - gitlink + - projects - pr - gitea - usefixtures: gitlink_login # 前提是仓库存在2个不同的分支 # 步骤说明 -# 1、从master分支创建一个新的分支 -# 2、修改新分支的README.md文件,确保新分支与master分支存在差异 -# 3、从新分支向master分支发起PR +# 1、项目开发者代码库新建文件,提交的分支新分支 +# 2、项目开发者从新分支向默认分支分支发起PR +# 后置数据清理:项目管理员登录,删除分支 + common_dependence: setup: - env_vars: - repo_file_path: README.md + interface: + # 前置条件:获取测试仓库的默认分支 + - gitlink_get_repo_detail_full_01 case_info: -- - id: gitlink_repo_new_pull_request_001 - title: 创建一个合并请求, 从新分支向master分支发起PR - severity: - run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/pulls.json - method: POST - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - title: New Merge - ${generate_words()} # 合并请求标题 - body: ${generate_paragraph()} # 合并请求内容 - head: ${branch_name} # 源分支 - base: master # 目标分支 - is_original: false # 是否为fork仓库发来的合并请求 - fork_project_id: # fork仓库ID - merge_project_identifier: - files_count: 1 - commits_count: 1 - receivers_login: [] # @人员的login - issue_tag_ids: [] # 标记ID数组 - assigned_to_id: # 指派人员ID - fixed_version_id: # 里程碑ID - priority_id: # 优先级ID - files: - assert_response: + - id: gitlink_repo_new_pull_request_01 + title: 创建一个合并请求, 从新分支向默认分支发起PR + severity: + run: True + url: /api/${init_repo_owner}/${init_repo_identifier}/pulls.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: json + payload: + title: New Merge - ${generate_words()} # 合并请求标题 + body: ${generate_paragraph()} # 合并请求内容 + head: ${branch_name} # 源分支 + base: ${default_branch} # 目标分支 + is_original: false # 是否为fork仓库发来的合并请求 + fork_project_id: # fork仓库ID + merge_project_identifier: + files_count: 1 + commits_count: 1 + receivers_login: [ ] # @人员的login + issue_tag_ids: [ ] # 标记ID数组 + assigned_to_id: # 指派人员ID + fixed_version_id: # 里程碑ID + priority_id: # 优先级ID + files: + assert_response: status_code: 200 assertStatus: message: 断言接口返回status=0 @@ -60,13 +62,19 @@ case_info: expect_value: 响应成功 assert_type: == type_jsonpath: $.message - assert_sql: - extract: - type_jsonpath: - pull_request_id: $.pull_request_id - case_dependence: - setup: - interface: - - gitlink_repo_new_branch_001 # 创建新分支,同时获取branch name - - gitlink_get_repo_readme_file_02 # 获取新分支readme文件的sha - - gitlink_repo_edit_files_02 # 修改新分支的readme文件的内容 + assert_sql: + extract: + type_jsonpath: + pull_request_id: $.pull_request_id + case_dependence: + setup: + # 前置条件:创建的新文件名称 + env_vars: + repo_file_path: test_${generate_words}.py + interface: + # 代码库新建文件,提交的分支新分支 + - gitlink_repo_create_files_05 # 创建新分支,同时获取branch name + teardown: + interface: + # 后置处理:删除分支 + - gitlink_repo_delete_branch_01 \ No newline at end of file diff --git a/interface/gitlink/projects/pull_request/test_gitlink_repo_new_pull_request_journal.yaml b/interface/gitlink/projects/pull_request/test_gitlink_repo_new_pull_request_journal.yaml deleted file mode 100644 index 7e52152..0000000 --- a/interface/gitlink/projects/pull_request/test_gitlink_repo_new_pull_request_journal.yaml +++ /dev/null @@ -1,55 +0,0 @@ -case_common: - allure_epic: GitLink接口 - allure_feature: 开源项目模块 - allure_story: 合并请求 - case_markers: - - gitlink - - pr - - gitea - - usefixtures: gitlink_login - - skip: 参数不明确,后续再补充 - - -case_info: -- - id: gitlink_repo_new_pull_request_journal_01 - title: 创建一个合并请求评论 - severity: - run: false - url: /api/${env_repo_owner}/${env_repo_identifier}/pulls/${pull_request_id}/journals.json - method: POST - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - commit_id: str - diff: Diff - line_code: str - note: str - parent_id: int - path: str - review_id: str - type: str - files: - assert_response: - status_code: 200 - assertStatus: - message: 断言接口返回status=0 - expect_value: 0 - assert_type: == - type_jsonpath: $.status - assertMessage: - message: 断言接口返回message - expect_value: 响应成功 - assert_type: == - type_jsonpath: $.message - assert_sql: - extract: - type_jsonpath: - pull_request_id: $.pull_request_id - case_dependence: - setup: - interface: - - gitlink_repo_get_pull_request_list_03 # diff --git a/interface/gitlink/projects/pull_request/test_gitlink_repo_pr_merge.yaml b/interface/gitlink/projects/pull_request/test_gitlink_repo_pr_merge.yaml index d200907..ef5f9f5 100644 --- a/interface/gitlink/projects/pull_request/test_gitlink_repo_pr_merge.yaml +++ b/interface/gitlink/projects/pull_request/test_gitlink_repo_pr_merge.yaml @@ -1,24 +1,20 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 合并请求 + allure_story: 合并请求-合并 case_markers: - gitlink + - projects - pr - gitea - usefixtures: gitlink_login # 前提是仓库存在2个不同的分支 # 步骤说明 -# 1、从master分支创建一个新的分支 -# 2、修改新分支的README.md文件,确保新分支与master分支存在差异 -# 3、从新分支向master分支发起PR -# 4、合并合并请求 - -common_dependence: - setup: - env_vars: - repo_file_path: README.md +# 1、项目开发者代码库新建文件,提交的分支新分支 +# 2、项目开发者从新分支向默认分支分支发起PR +# 3、项目管理员合并PR +# 后置数据清理:项目管理员登录,删除分支 case_info: @@ -27,15 +23,15 @@ case_info: title: 合并一个合并请求 severity: run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/pulls/${pull_request_id}/pr_merge.json + url: /api/${init_repo_owner}/${init_repo_identifier}/pulls/${pull_request_id}/pr_merge.json method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${admin_cookies} cookies: request_type: json payload: - project_id: ${env_repo_identifier} # 项目标识 + project_id: ${init_repo_identifier} # 项目标识 id: ${pull_request_id} # 合并请求id do: merge title: ${generate_words()} @@ -57,12 +53,16 @@ case_info: extract: case_dependence: setup: + # 前置条件:创建的新文件名称 + env_vars: + repo_file_path: test_${generate_words}.py interface: - - gitlink_repo_new_branch_001 # 创建新分支,同时获取branch name - - gitlink_get_repo_readme_file_02 # 获取新分支readme文件的sha - - gitlink_repo_edit_files_02 # 修改新分支的readme文件的内容 - - gitlink_repo_new_pull_request_001 # 新建合并请求 + # 前置条件:代码库新建文件,提交的分支新分支 + - gitlink_repo_create_files_05 # 创建新分支,同时获取branch name + # 前置条件:发起PR + - gitlink_repo_new_pull_request_01 teardown: interface: - - gitlink_super_login_04 - - gitlink_repo_delete_branch_001 + # 后置处理:删除分支 + - gitlink_repo_delete_branch_01 + diff --git a/interface/gitlink/projects/pull_request/test_gitlink_repo_refuse_merge.yaml b/interface/gitlink/projects/pull_request/test_gitlink_repo_refuse_merge.yaml index dff4cd7..2449d1a 100644 --- a/interface/gitlink/projects/pull_request/test_gitlink_repo_refuse_merge.yaml +++ b/interface/gitlink/projects/pull_request/test_gitlink_repo_refuse_merge.yaml @@ -1,41 +1,37 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 合并请求 + allure_story: 合并请求-拒绝 case_markers: - gitlink + - projects - pr - gitea - usefixtures: gitlink_login # 前提是仓库存在2个不同的分支 # 步骤说明 -# 1、从master分支创建一个新的分支 -# 2、修改新分支的README.md文件,确保新分支与master分支存在差异 -# 3、从新分支向master分支发起PR -# 4、拒绝合并请求 +# 1、项目开发者代码库新建文件,提交的分支新分支 +# 2、项目开发者从新分支向默认分支分支发起PR +# 3、项目管理员拒绝PR +# 后置数据清理:项目管理员登录,删除分支 -common_dependence: - setup: - env_vars: - repo_file_path: README.md case_info: -- - id: gitlink_repo_refuse_merge_001 - title: 拒绝一个合并请求 - severity: - run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/pulls/${pull_request_id}/refuse_merge.json - method: POST - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - files: - assert_response: + - id: gitlink_repo_refuse_merge_001 + title: 项目管理员拒绝一个合并请求, 拒绝成功 + severity: + run: True + url: /api/${init_repo_owner}/${init_repo_identifier}/pulls/${pull_request_id}/refuse_merge.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${admin_cookies} + cookies: + request_type: json + payload: + files: + assert_response: status_code: 200 assertStatus: message: 断言接口返回status=1 @@ -47,16 +43,19 @@ case_info: expect_value: 已拒绝 assert_type: == type_jsonpath: $.message - assert_sql: - extract: - case_dependence: - setup: - interface: - - gitlink_repo_new_branch_001 # 创建新分支,同时获取branch name - - gitlink_get_repo_readme_file_02 # 获取新分支readme文件的sha - - gitlink_repo_edit_files_02 # 修改新分支的readme文件的内容 - - gitlink_repo_new_pull_request_001 # 新建合并请求 - teardown: - interface: - - gitlink_super_login_04 - - gitlink_repo_delete_branch_001 + assert_sql: + extract: + case_dependence: + setup: + # 前置条件:创建的新文件名称 + env_vars: + repo_file_path: test_${generate_words}.py + interface: + # 前置条件:代码库新建文件,提交的分支新分支 + - gitlink_repo_create_files_05 # 创建新分支,同时获取branch name + # 前置条件:发起PR + - gitlink_repo_new_pull_request_01 + teardown: + interface: + # 后置处理:删除分支 + - gitlink_repo_delete_branch_01 diff --git a/interface/gitlink/projects/releases/test_gitlink_repo_delete_releases.yaml b/interface/gitlink/projects/releases/test_gitlink_repo_delete_releases.yaml index 01d30d5..b4fb47e 100644 --- a/interface/gitlink/projects/releases/test_gitlink_repo_delete_releases.yaml +++ b/interface/gitlink/projects/releases/test_gitlink_repo_delete_releases.yaml @@ -4,21 +4,22 @@ case_common: allure_story: 发行版 case_markers: - gitlink + - projects - release - gitea - usefixtures: gitlink_login case_info: - - id: gitlink_repo_delete_release_001 + id: gitlink_repo_delete_release_01 title: 删除发行版 severity: critical run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/releases/${release_id}.json + url: /api/${init_repo_owner}/${init_repo_identifier}/releases/${release_id}.json method: DELETE headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: @@ -40,5 +41,11 @@ case_info: case_dependence: setup: interface: - - gitlink_repo_new_release_001 - - gitlink_repo_get_release_list_001 + # 前置条件:创建发行版 + - gitlink_repo_new_release_01 + # 前置条件:获取发行版的相关信息, 如:release_id + - gitlink_repo_get_release_list_01 + teardown: + interface: + # 后置处理:删除标记 + - gitlink_repo_delete_tag_01 diff --git a/interface/gitlink/projects/releases/test_gitlink_repo_edit_releases.yaml b/interface/gitlink/projects/releases/test_gitlink_repo_edit_releases.yaml index 6de9ff5..09a38c9 100644 --- a/interface/gitlink/projects/releases/test_gitlink_repo_edit_releases.yaml +++ b/interface/gitlink/projects/releases/test_gitlink_repo_edit_releases.yaml @@ -4,31 +4,31 @@ case_common: allure_story: 发行版 case_markers: - gitlink + - projects - release - gitea - usefixtures: gitlink_login case_info: - - id: gitlink_repo_edit_release_001 - title: 编辑发行版 + id: gitlink_repo_edit_release_01 + title: 编辑发行版, 编辑成功 severity: critical run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/releases/${release_id}.json + url: /api/${init_repo_owner}/${init_repo_identifier}/releases/${release_id}.json method: PUT headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: - tag_name: ${generate_identifier()} # 标签 + tag_name: ${release_tag_name} # 标签 name: ${generate_words()} # 发行版标题 body: ${generate_words()} # 发行版描述 - target_commitish: master # 分支 + target_commitish: ${release_target_commitish} # 分支 prerelease: false # 是否为预发布版 attachment_ids: # 附件ID数组 - - ${attachment_id} files: assert_response: status_code: 200 @@ -47,9 +47,13 @@ case_info: case_dependence: setup: interface: - - gitlink_repo_new_release_001 - - gitlink_repo_get_release_list_001 - - gitlink_upload_file_01 + # 前置条件:创建发行版 + - gitlink_repo_new_release_01 + # 前置条件:获取发行版的相关信息, 如:release_id + - gitlink_repo_get_release_list_01 teardown: interface: - - gitlink_repo_delete_release_001 + # 后置处理:删除发行版 + - gitlink_repo_delete_release_01 + # 后置处理:删除标记 + - gitlink_repo_delete_tag_01 diff --git a/interface/gitlink/projects/releases/test_gitlink_repo_get_releases_detail.yaml b/interface/gitlink/projects/releases/test_gitlink_repo_get_releases_detail.yaml index ec44fbd..717f139 100644 --- a/interface/gitlink/projects/releases/test_gitlink_repo_get_releases_detail.yaml +++ b/interface/gitlink/projects/releases/test_gitlink_repo_get_releases_detail.yaml @@ -10,15 +10,15 @@ case_common: case_info: - - id: gitlink_repo_get_release_detail_001 + id: gitlink_repo_get_release_detail_01 title: 获取发行版详情 severity: normal run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/releases/${release_id}.json + url: /api/${init_repo_owner}/${init_repo_identifier}/releases/${release_id}.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: @@ -35,8 +35,13 @@ case_info: case_dependence: setup: interface: - - gitlink_repo_new_release_001 - - gitlink_repo_get_release_list_001 + # 前置条件:创建发行版 + - gitlink_repo_new_release_01 + # 前置条件:获取发行版的相关信息, 如:release_id + - gitlink_repo_get_release_list_01 teardown: interface: - - gitlink_repo_delete_release_001 + # 后置处理:删除发行版 + - gitlink_repo_delete_release_01 + # 后置处理:删除标记 + - gitlink_repo_delete_tag_01 \ No newline at end of file diff --git a/interface/gitlink/projects/releases/test_gitlink_repo_get_releases_list.yaml b/interface/gitlink/projects/releases/test_gitlink_repo_get_releases_list.yaml index 1e8def0..d3ea311 100644 --- a/interface/gitlink/projects/releases/test_gitlink_repo_get_releases_list.yaml +++ b/interface/gitlink/projects/releases/test_gitlink_repo_get_releases_list.yaml @@ -4,21 +4,22 @@ case_common: allure_story: 发行版 case_markers: - gitlink + - projects - release - gitea - usefixtures: gitlink_login case_info: - - id: gitlink_repo_get_release_list_001 + id: gitlink_repo_get_release_list_01 title: 获取发行版列表 severity: normal run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/releases.json + url: /api/${init_repo_owner}/${init_repo_identifier}/releases.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: @@ -38,4 +39,6 @@ case_info: assert_sql: extract: type_jsonpath: - release_id: $.releases[0].version_id + release_id: $.releases[?(@.name =='${release_name}')].version_id + release_target_commitish: $.releases[?(@.name =='${release_name}')].target_commitish + release_tag_name: $.releases[?(@.name =='${release_name}')].tag_name diff --git a/interface/gitlink/projects/releases/test_gitlink_repo_new_releases.yaml b/interface/gitlink/projects/releases/test_gitlink_repo_new_releases.yaml index 67572e9..c6c8140 100644 --- a/interface/gitlink/projects/releases/test_gitlink_repo_new_releases.yaml +++ b/interface/gitlink/projects/releases/test_gitlink_repo_new_releases.yaml @@ -4,28 +4,35 @@ case_common: allure_story: 发行版 case_markers: - gitlink + - projects - release - gitea - usefixtures: gitlink_login +common_dependence: + setup: + interface: + # 前置条件:获取测试仓库的默认分支 + - gitlink_get_repo_detail_full_01 + case_info: - - id: gitlink_repo_new_release_001 - title: 创建发行版 - severity: critial + id: gitlink_repo_new_release_01 + title: 在默认分支创建发行版(无附件),创建成功 + severity: critical run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/releases.json + url: /api/${init_repo_owner}/${init_repo_identifier}/releases.json method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: tag_name: ${generate_identifier()} # 标签 name: ${generate_words()} # 发行版标题 body: ${generate_words()} # 发行版描述 - target_commitish: master # 分支 + target_commitish: ${default_branch} # 分支,可选,默认为master draft: false # 是否为草稿 prerelease: false # 是否为预发布版 attachment_ids: # 附件ID数组 @@ -44,8 +51,68 @@ case_info: type_jsonpath: $.message assert_sql: extract: + case: + type_jsonpath: + release_name: $.payload.name + tag_name: $.payload.tag_name case_dependence: teardown: interface: - - gitlink_repo_get_release_list_001 - - gitlink_repo_delete_release_001 + # 后置处理:获取刚刚创建的发行版id + - gitlink_repo_get_release_list_01 + # 后置处理:删除发行版 + - gitlink_repo_delete_release_01 + +- + id: gitlink_repo_new_release_01 + title: 在默认分支创建发行版(有附件),创建成功 + severity: critical + run: True + url: /api/${init_repo_owner}/${init_repo_identifier}/releases.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: json + payload: + tag_name: ${generate_identifier()} # 标签 + name: ${generate_words()} # 发行版标题 + body: ${generate_words()} # 发行版描述 + target_commitish: ${default_branch} # 分支,可选,默认为master + draft: false # 是否为草稿 + prerelease: false # 是否为预发布版 + attachment_ids: # 附件ID数组 + - ${attachment_id} + files: + assert_response: + status_code: 200 + assertStatus: + message: 断言接口返回status=0 + expect_value: 0 + assert_type: == + type_jsonpath: $.status + assertMessage: + message: 断言接口返回message + expect_value: 发布成功 + assert_type: == + type_jsonpath: $.message + assert_sql: + extract: + case: + type_jsonpath: + release_name: $.payload.name + tag_name: $.payload.tag_name + case_dependence: + setup: + interface: + # 前置条件:上传附件,获取attachment_id + - gitlink_upload_file_01 + teardown: + interface: + # 后置处理:获取刚刚创建的发行版id + - gitlink_repo_get_release_list_01 + # 后置处理:删除发行版 + - gitlink_repo_delete_release_01 + # 后置处理:删除标记 + - gitlink_repo_delete_tag_01 diff --git a/interface/gitlink/projects/repository/test_gitlink_get_repo_detail_full.yaml b/interface/gitlink/projects/repository/test_gitlink_get_repo_detail_full.yaml index a6e9e12..51416db 100644 --- a/interface/gitlink/projects/repository/test_gitlink_get_repo_detail_full.yaml +++ b/interface/gitlink/projects/repository/test_gitlink_get_repo_detail_full.yaml @@ -4,7 +4,8 @@ case_common: allure_story: 代码库 case_markers: - gitlink - - project_detail + - projects + - repo - gitea - usefixtures: gitlink_login @@ -12,13 +13,13 @@ case_info: - id: gitlink_get_repo_detail_full_01 title: 项目详情 - severity: + severity: critical run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/detail.json + url: /api/${init_repo_owner}/${init_repo_identifier}/detail.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: @@ -34,4 +35,5 @@ case_info: type_jsonpath: repo_project_name: $.name repo_private: $.private + default_branch: $.default_branch diff --git a/interface/gitlink/projects/repository/test_gitlink_get_repo_entries.yaml b/interface/gitlink/projects/repository/test_gitlink_get_repo_entries.yaml index e0f171c..b78b4e1 100644 --- a/interface/gitlink/projects/repository/test_gitlink_get_repo_entries.yaml +++ b/interface/gitlink/projects/repository/test_gitlink_get_repo_entries.yaml @@ -4,35 +4,41 @@ case_common: allure_story: 代码库 case_markers: - gitlink - - repo_entries + - projects + - repo - gitea - usefixtures: gitlink_login +common_dependence: + setup: + interface: + # 前置条件:获取测试仓库的默认分支 + - gitlink_get_repo_detail_full_01 + case_info: -- - id: gitlink_get_repo_entries_01 - title: 获取master项目代码目录 - severity: - run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/entries.json - method: GET - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: params - payload: - ref: master - files: - assert_response: + - id: gitlink_get_repo_entries_01 + title: 获取项目默认分支的代码目录 + severity: critical + run: True + url: /api/${init_repo_owner}/${init_repo_identifier}/entries.json + method: GET + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: params + payload: + ref: ${default_branch} + files: + assert_response: status_code: 200 assertAutor: message: 断言接口返回存在entries字段 assert_type: contains expect_value: entries - assert_sql: - extract: - type_jsonpath: - get_repo_file_path: $.entries[?(@.type =='file')].path - get_repo_file_sha: $.entries[?(@.type =='file')].sha - get_repo_dir_name: $.entries[?(@.type =='dir')].name + assert_sql: + extract: + type_jsonpath: + get_repo_file_path: $.entries[?(@.type =='file')].path + get_repo_file_sha: $.entries[?(@.type =='file')].sha + get_repo_dir_name: $.entries[?(@.type =='dir')].name diff --git a/interface/gitlink/projects/repository/test_gitlink_get_repo_readme_file.yaml b/interface/gitlink/projects/repository/test_gitlink_get_repo_readme_file.yaml index efec226..53f7985 100644 --- a/interface/gitlink/projects/repository/test_gitlink_get_repo_readme_file.yaml +++ b/interface/gitlink/projects/repository/test_gitlink_get_repo_readme_file.yaml @@ -4,65 +4,77 @@ case_common: allure_story: 代码库 case_markers: - gitlink - - project_detail + - projects + - repo - gitea - usefixtures: gitlink_login + +common_dependence: + setup: + interface: + # 前置条件:获取测试仓库的默认分支 + - gitlink_get_repo_detail_full_01 + + case_info: -- - id: gitlink_get_repo_readme_file_01 - title: 获取项目README文件 - master分支 - severity: normal - run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/readme.json - method: GET - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: params - payload: - files: - assert_response: + - id: gitlink_get_repo_default_branch_readme_file_01 + title: 获取项目README文件 - 默认分支 + severity: normal + run: True + url: /api/${init_repo_owner}/${init_repo_identifier}/readme.json + method: GET + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: params + payload: + files: + assert_response: status_code: 200 assertName: message: 断言接口name assert_type: == expect_value: README.md type_jsonpath: $.name - assert_sql: - extract: - type_jsonpath: - repo_file_sha: $.sha + assert_sql: + extract: + type_jsonpath: + repo_readme_sha: $.sha -- - id: gitlink_get_repo_readme_file_02 - title: 获取项目README文件 - 指定分支 - severity: normal - run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/readme.json - method: GET - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: params - payload: - ref: ${branch_name} - files: - assert_response: + - id: gitlink_get_repo_other_branch_readme_file_02 + title: 获取项目README文件 - 指定分支 + severity: normal + run: True + url: /api/${init_repo_owner}/${init_repo_identifier}/readme.json + method: GET + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: params + payload: + ref: ${branch_name} + files: + assert_response: status_code: 200 assertName: message: 断言接口name assert_type: == expect_value: README.md type_jsonpath: $.name - assert_sql: - extract: - type_jsonpath: - repo_file_sha: $.sha - case_dependence: - setup: - interface: - - gitlink_get_repo_branches_by_keyword_01 + assert_sql: + extract: + type_jsonpath: + repo_readme_sha: $.sha + case_dependence: + setup: + interface: + # 前置条件:新建分支 + - gitlink_repo_new_branch_01 + teardown: + interface: + # 后置处理:删除分支 + - gitlink_repo_delete_branch_01 diff --git a/interface/gitlink/projects/repository/test_gitlink_get_repo_simple.yaml b/interface/gitlink/projects/repository/test_gitlink_get_repo_simple.yaml index 854f484..c4bfe09 100644 --- a/interface/gitlink/projects/repository/test_gitlink_get_repo_simple.yaml +++ b/interface/gitlink/projects/repository/test_gitlink_get_repo_simple.yaml @@ -4,7 +4,8 @@ case_common: allure_story: 代码库 case_markers: - gitlink - - project_simple + - projects + - repo - gitea - usefixtures: gitlink_login @@ -12,13 +13,13 @@ case_info: - id: gitlink_get_repo_simple_01 title: 项目详情(简版) - severity: + severity: critical run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/simple.json + url: /api/${init_repo_owner}/${init_repo_identifier}/simple.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: diff --git a/interface/gitlink/projects/repository/test_gitlink_get_repo_sub_entries.yaml b/interface/gitlink/projects/repository/test_gitlink_get_repo_sub_entries.yaml index db3e9f0..4fe5228 100644 --- a/interface/gitlink/projects/repository/test_gitlink_get_repo_sub_entries.yaml +++ b/interface/gitlink/projects/repository/test_gitlink_get_repo_sub_entries.yaml @@ -4,26 +4,34 @@ case_common: allure_story: 代码库 case_markers: - gitlink - - repo_sub_entries + - projects + - repo - gitea - usefixtures: gitlink_login +common_dependence: + setup: + interface: + # 前置条件:获取测试仓库的默认分支 + - gitlink_get_repo_detail_full_01 + case_info: - - id: gitlink_get_repo_sub_entries_001 - title: 获取项目代码子目录或者文件 - severity: + id: gitlink_get_repo_sub_entries_01 + title: 获取项目默认分支的代码子目录或者文件 + severity: critical run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/sub_entries.json + url: /api/${init_repo_owner}/${init_repo_identifier}/sub_entries.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: - ref: master - filepath: ${${get_repo_dir_name}[0]} # 必填参数 + ref: ${default_branch} + filepath: ${repo_file_path} # 必填参数 + type: dir # dir表示目录 files: assert_response: status_code: 200 @@ -35,72 +43,49 @@ case_info: extract: case_dependence: setup: + # 前置条件:初始化文件目录 env_vars: - repo_file_path: ${generate_words}_${generate_identifier}/login_demo.yaml - local_file_path: login_demo.yaml + repo_file_dir: ${generate_words}_${generate_identifier} interface: - - gitlink_repo_create_files_02 - - gitlink_get_repo_entries_01 + # 前置条件:代码库上传文件(有父级目录),提交的分支是默认分支 + - gitlink_repo_upload_files_02 teardown: + # 后置处理:删除默认分支分支文件(无父级目录) + interface: gitlink_repo_delete_files_02 + + +- + id: gitlink_get_repo_sub_entries_02 + title: 获取项目默认分支的某个文件信息 + severity: critical + run: True + url: /api/${init_repo_owner}/${init_repo_identifier}/sub_entries.json + method: GET + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: params + payload: + ref: ${default_branch} + filepath: ${repo_file_name} # 必填参数 + type: file # file表示文件 + files: + assert_response: + status_code: 200 + assertAutor: + message: 断言接口返回存在entries字段 + assert_type: contains + expect_value: entries + assert_sql: + extract: + type_jsonpath: + repo_file_sha: $.entries.sha + case_dependence: + setup: + interface: + # 前置条件:代码库上传文件(无父级目录),提交的分支是默认分支 + - gitlink_repo_upload_files_01 + teardown: + # 后置处理:删除默认分支分支文件(无父级目录) interface: gitlink_repo_delete_files_01 - - -- - id: gitlink_get_repo_sub_entries_002 - title: 获取某个文件信息 - severity: - run: False - url: /api/${env_repo_owner}/${env_repo_identifier}/sub_entries.json - method: GET - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: params - payload: - ref: master - filepath: ${repo_file_path} # 必填参数 - type: file - files: - assert_response: - status_code: 200 - assertAutor: - message: 断言接口返回存在entries字段 - assert_type: contains - expect_value: entries - assert_sql: - extract: - type_jsonpath: - repo_file_sha: $.entries.sha - case_dependence: - - -- - id: gitlink_get_repo_sub_entries_003 - title: 获取替换后的文件信息 - severity: - run: False - url: /api/${env_repo_owner}/${env_repo_identifier}/sub_entries.json - method: GET - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: params - payload: - ref: master - filepath: ${replace_file_path} # 必填参数 - type: file - files: - assert_response: - status_code: 200 - assertAutor: - message: 断言接口返回存在entries字段 - assert_type: contains - expect_value: entries - assert_sql: - extract: - type_jsonpath: - repo_file_sha: $.entries.sha - repo_file_path: $.entries.path - case_dependence: diff --git a/interface/gitlink/projects/repository/test_gitlink_repo_contributors.yaml b/interface/gitlink/projects/repository/test_gitlink_repo_contributors.yaml index 45b0759..4897d45 100644 --- a/interface/gitlink/projects/repository/test_gitlink_repo_contributors.yaml +++ b/interface/gitlink/projects/repository/test_gitlink_repo_contributors.yaml @@ -4,21 +4,22 @@ case_common: allure_story: 代码库 case_markers: - gitlink - - repo_contributors + - projects + - repo - gitea - usefixtures: gitlink_login case_info: - - id: gitlink_repo_contributors_001 + id: gitlink_repo_contributors_01 title: 获取项目贡献者列表 - severity: + severity: critical run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/contributors.json + url: /api/${init_repo_owner}/${init_repo_identifier}/contributors.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: diff --git a/interface/gitlink/projects/repository/test_gitlink_repo_create_files.yaml b/interface/gitlink/projects/repository/test_gitlink_repo_create_files.yaml index 86eec5b..0eb5105 100644 --- a/interface/gitlink/projects/repository/test_gitlink_repo_create_files.yaml +++ b/interface/gitlink/projects/repository/test_gitlink_repo_create_files.yaml @@ -1,33 +1,78 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 代码库 + allure_story: 代码库新建文件/上传文件 case_markers: - gitlink - - create_files + - projects + - repo - gitea - usefixtures: gitlink_login +common_dependence: + setup: + interface: + # 前置条件:获取测试仓库的默认分支 + - gitlink_get_repo_detail_full_01 + case_info: - - id: gitlink_repo_create_files_01 - title: 代码库上传文件(无父级目录),提交的分支是默认分支master - severity: + id: gitlink_repo_upload_files_01 + title: 代码库上传文件(无父级目录),提交的分支是默认分支 + severity: Critical run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/create_file.json + url: /api/${init_repo_owner}/${init_repo_identifier}/create_file.json method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: - filepath: ${repo_file_path} - base64_filepath: ${get_base64_content('${repo_file_path}')} # 文件路径(base64加密后) - branch: master # 提交的分支, 输入不存在的分支会自动新建一个 - content: ${get_file_base64('${local_file_path}')} # 文件内容(Base64加密后) - message: 上传文件 - ${repo_file_path} # commit信息 + filepath: 第1章 软件测试基础.pdf + base64_filepath: ${get_base64_content('第1章 软件测试基础.pdf')} # 文件路径(base64加密后) + branch: ${default_branch} + content: ${get_file_base64('第1章 软件测试基础.pdf')} # 文件内容(Base64加密后) + message: 代码库上传文件(无父级目录),提交的分支是默认分支 - 第1章 软件测试基础.pdf # commit信息 + files: + wait_seconds: 12 + assert_response: + status_code: 200 + assertAutor: + message: 断言提交者是当前登录用户 + assert_type: == + expect_value: ${login} + type_jsonpath: $.commit.author.name + assert_sql: + extract: + type_jsonpath: + repo_file_sha: $.sha + repo_file_name: $.name + case_dependence: + teardown: + # 后置处理:删除默认分支分支文件(无父级目录) + interface: gitlink_repo_delete_files_01 + + +- + id: gitlink_repo_upload_files_02 + title: 代码库上传文件(有父级目录),提交的分支是默认分支 + severity: Critical + run: True + url: /api/${init_repo_owner}/${init_repo_identifier}/create_file.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: json + payload: + filepath: ${repo_file_dir}/login_demo.yaml + base64_filepath: ${get_base64_content('${repo_file_dir}/login_demo.yaml')} # 文件路径(base64加密后) + branch: ${default_branch} + content: ${get_file_base64('login_demo.yaml')} # 文件内容(Base64加密后) + message: 代码库上传文件(有父级目录),提交的分支是默认分支 - login_demo.yaml # commit信息 files: assert_response: status_code: 200 @@ -40,73 +85,38 @@ case_info: extract: type_jsonpath: repo_file_sha: $.sha + repo_file_name: $.name + case: + type_jsonpath: + repo_file_path: $.payload.filepath case_dependence: setup: + # 前置条件:初始化文件目录 env_vars: - repo_file_path: demo_get_apply_information.yml - local_file_path: demo_get_apply_information.yml + repo_file_dir: ${generate_words}_${generate_identifier} teardown: - interface: gitlink_repo_delete_files_01 + # 后置处理:删除默认分支分支文件(有父级目录) + interface: gitlink_repo_delete_files_02 - - id: gitlink_repo_create_files_02 - title: 代码库上传文件(有父级目录),提交的分支是默认分支master - severity: + id: gitlink_repo_upload_files_03 + title: 代码库上传文件(无父级目录),提交的分支是新的分支 + severity: Critical run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/create_file.json + url: /api/${init_repo_owner}/${init_repo_identifier}/create_file.json method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: - filepath: ${repo_file_path} - base64_filepath: ${get_base64_content('${repo_file_path}')} # 文件路径(base64加密后) - branch: master # 提交的分支, 输入不存在的分支会自动新建一个 - content: ${get_file_base64('${local_file_path}')} # 文件内容(Base64加密后) - message: 上传文件 - ${repo_file_path} # commit信息 - files: - assert_response: - status_code: 200 - assertAutor: - message: 断言提交者是当前登录用户 - assert_type: == - expect_value: ${login} - type_jsonpath: $.commit.author.name - assert_sql: - extract: - type_jsonpath: - repo_file_sha: $.sha - case_dependence: - setup: - env_vars: - repo_file_path: ${generate_words}_${generate_identifier}/login_demo.yaml - local_file_path: login_demo.yaml - teardown: - interface: gitlink_repo_delete_files_01 - - - -- - id: gitlink_repo_create_files_03 - title: 代码库上传文件,提交的分支是新的分支 - severity: - run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/create_file.json - method: POST - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - filepath: ${repo_file_path} - base64_filepath: ${get_base64_content('${repo_file_path}')} # 文件路径(base64加密后) - content: ${get_file_base64('${local_file_path}')} # 文件内容(Base64加密后) - message: 上传文件 - ${repo_file_path} # commit信息 - branch: master + filepath: demo_test_upload.yaml + base64_filepath: ${get_base64_content('demo_test_upload.yaml')} # 文件路径(base64加密后) + content: ${get_file_base64('demo_test_upload.yaml')} # 文件内容(Base64加密后) + message: 代码库上传文件(无父级目录),提交的分支是新的分支 - demo_test_upload.yaml # commit信息 + branch: ${default_branch} new_branch: ${generate_words} # 新的分支名称 files: assert_response: @@ -120,31 +130,37 @@ case_info: extract: type_jsonpath: repo_file_sha: $.sha + repo_file_name: $.name + case: + type_jsonpath: + branch_name: $.payload.new_branch case_dependence: - setup: - env_vars: - repo_file_path: demo_test_upload.yaml - local_file_path: demo_test_upload.yaml + teardown: + interface: + # 后置处理:删除指定分支文件(无父级目录),删除成功 + - gitlink_repo_delete_files_03 + # 后置处理:删除分支 + - gitlink_repo_delete_branch_01 - id: gitlink_repo_create_files_04 - title: 代码库新建文件,提交的分支默认分支master - severity: + title: 代码库新建文件(无父级目录),提交的分支默认分支 + severity: Critical run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/create_file.json + url: /api/${init_repo_owner}/${init_repo_identifier}/create_file.json method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: filepath: ${repo_file_path} base64_filepath: ${get_base64_content('${repo_file_path}')} # 文件路径(base64加密后) - content: print("ok") # 文件内容(Base64加密后) - message: 新建文件 - ${repo_file_path} # commit信息 - branch: master + content: print('ok') # 文件内容(Base64加密后) + message: 代码库新建文件(无父级目录),提交的分支默认分支 - ${repo_file_path} # commit信息 + branch: ${default_branch} files: assert_response: status_code: 200 @@ -157,9 +173,59 @@ case_info: extract: type_jsonpath: repo_file_sha: $.sha + repo_file_name: $.name case_dependence: setup: env_vars: repo_file_path: test_${generate_words}.py teardown: - interface: gitlink_repo_delete_files_01 \ No newline at end of file + # 后置处理:删除默认分支分支文件(无父级目录) + interface: gitlink_repo_delete_files_01 + + +- + id: gitlink_repo_create_files_05 + title: 代码库新建文件(无父级目录),提交的分支新分支 + severity: Critical + run: True + url: /api/${init_repo_owner}/${init_repo_identifier}/create_file.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: json + payload: + filepath: ${repo_file_path} + base64_filepath: ${get_base64_content('${repo_file_path}')} # 文件路径(base64加密后) + content: print("ok") # 文件内容(Base64加密后) + message: 代码库新建文件(无父级目录),提交的分支新分支 - ${repo_file_path} # commit信息 + branch: ${default_branch} + new_branch: ${generate_words} # 新的分支名称 + files: + assert_response: + status_code: 200 + assertAutor: + message: 断言提交者是当前登录用户 + assert_type: == + expect_value: ${login} + type_jsonpath: $.commit.author.name + assert_sql: + extract: + type_jsonpath: + repo_file_sha: $.sha + repo_file_name: $.name + case: + type_jsonpath: + branch_name: $.payload.new_branch + case_dependence: + setup: + # 前置条件:创建的新文件名称 + env_vars: + repo_file_path: test_${generate_words}.py + teardown: + interface: + # 后置处理:删除指定分支分支文件(无父级目录) + - gitlink_repo_delete_files_03 + # 后置处理:删除分支 + - gitlink_repo_delete_branch_01 \ No newline at end of file diff --git a/interface/gitlink/projects/repository/test_gitlink_repo_delete_files.yaml b/interface/gitlink/projects/repository/test_gitlink_repo_delete_files.yaml index 835406d..93396e8 100644 --- a/interface/gitlink/projects/repository/test_gitlink_repo_delete_files.yaml +++ b/interface/gitlink/projects/repository/test_gitlink_repo_delete_files.yaml @@ -1,47 +1,117 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 代码库 + allure_story: 代码库删除文件 case_markers: - gitlink - - create_files + - projects + - repo - gitea - usefixtures: gitlink_login common_dependence: setup: - env_vars: - repo_file_path: demo_test_upload.yaml - local_file_path: demo_test_upload.yaml + interface: + # 前置条件:获取测试仓库的默认分支 + - gitlink_get_repo_detail_full_01 case_info: -- - id: gitlink_repo_delete_files_01 - title: 删除master分支文件 - severity: - run: true - url: /api/${env_repo_owner}/${env_repo_identifier}/delete_file.json - method: delete - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: params - payload: - filepath: ${repo_file_path} - branch: master # 分支名称 - sha: ${repo_file_sha} # 文件提交标识 - files: - assert_response: + - id: gitlink_repo_delete_files_01 + title: 删除默认分支文件(无父级目录) + severity: + run: true + url: /api/${init_repo_owner}/${init_repo_identifier}/delete_file.json + method: delete + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: params + payload: + filepath: ${repo_file_name} + branch: ${default_branch} # 分支名称 + sha: ${repo_file_sha} # 文件提交标识 + files: + assert_response: status_code: 200 assertAutor: message: 断言message assert_type: == expect_value: 文件删除成功 type_jsonpath: $.message - assert_sql: - extract: - case_dependence: - setup: - interface: - - gitlink_repo_create_files_01 \ No newline at end of file + assert_sql: + extract: + case_dependence: + setup: + env_vars: + # 环境变量, 创建文件的名称 + repo_file_path: test_${generate_words}.py + interface: + # 前置条件:代码库新建文件(无父级目录),提交的分支默认分支 + - gitlink_repo_create_files_04 + + + - id: gitlink_repo_delete_files_02 + title: 删除默认分支分支文件(有父级目录) + severity: + run: true + url: /api/${init_repo_owner}/${init_repo_identifier}/delete_file.json + method: delete + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: params + payload: + filepath: ${repo_file_path} + branch: ${default_branch} # 分支名称 + sha: ${repo_file_sha} # 文件提交标识 + files: + assert_response: + status_code: 200 + assertAutor: + message: 断言message + assert_type: == + expect_value: 文件删除成功 + type_jsonpath: $.message + assert_sql: + extract: + case_dependence: + setup: + interface: + # 前置条件:代码库上传文件(有父级目录),提交的分支是默认分支 + - gitlink_repo_upload_files_02 + + - id: gitlink_repo_delete_files_03 + title: 删除指定分支文件(无父级目录),删除成功 + severity: + run: true + url: /api/${init_repo_owner}/${init_repo_identifier}/delete_file.json + method: delete + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: params + payload: + filepath: ${repo_file_name} + branch: ${branch_name} # 分支名称 + sha: ${repo_file_sha} # 文件提交标识 + files: + assert_response: + status_code: 200 + assertAutor: + message: 断言message + assert_type: == + expect_value: 文件删除成功 + type_jsonpath: $.message + assert_sql: + extract: + case_dependence: + setup: + # 前置条件:创建的新文件名称 + env_vars: + repo_file_path: test_${generate_words}.py + interface: + # 前置条件:代码库新建文件(无父级目录),提交的分支新分支 + - gitlink_repo_create_files_05 \ No newline at end of file diff --git a/interface/gitlink/projects/repository/test_gitlink_repo_edit_files.yaml b/interface/gitlink/projects/repository/test_gitlink_repo_edit_files.yaml deleted file mode 100644 index aa13b93..0000000 --- a/interface/gitlink/projects/repository/test_gitlink_repo_edit_files.yaml +++ /dev/null @@ -1,94 +0,0 @@ -case_common: - allure_epic: GitLink接口 - allure_feature: 开源项目模块 - allure_story: 代码库 - case_markers: - - gitlink - - create_files - - gitea - - usefixtures: gitlink_login - -common_dependence: - setup: - env_vars: - repo_file_path: README.md - -case_info: -- - id: gitlink_repo_edit_files_01 - title: 修改master分支文件 - README.md - severity: critical - run: true - url: /api/${env_repo_owner}/${env_repo_identifier}/update_file.json - method: PUT - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - filepath: ${repo_file_path} - base64_filepath: ${get_base64_content('${repo_file_path}')} # 文件路径(base64加密后) - content: ${generate_paragraph(nb=10)} # 文件内容(Base64加密后) - message: auto update - ${repo_file_path} # commit信息 - branch: master - sha: ${repo_file_sha} - files: - assert_response: - status_code: 200 - assertMessage: - message: 断言message - assert_type: == - expect_value: 更新成功 - type_jsonpath: $.message - assertStatus: - message: 断言status - assert_type: == - expect_value: 1 - type_jsonpath: $.status - assert_sql: - extract: - case_dependence: - setup: - interface: - - gitlink_get_repo_readme_file_01 - -- - id: gitlink_repo_edit_files_02 - title: 修改指定分支文件 - README.md - severity: critical - run: true - url: /api/${env_repo_owner}/${env_repo_identifier}/update_file.json - method: PUT - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - filepath: ${repo_file_path} - base64_filepath: ${get_base64_content('${repo_file_path}')} # 文件路径(base64加密后) - content: ${generate_paragraph(nb=10)} # 文件内容(Base64加密后) - message: auto update - ${repo_file_path} # commit信息 - branch: ${branch_name} - sha: ${repo_file_sha} - files: - assert_response: - status_code: 200 - assertMessage: - message: 断言message - assert_type: == - expect_value: 更新成功 - type_jsonpath: $.message - assertStatus: - message: 断言status - assert_type: == - expect_value: 1 - type_jsonpath: $.status - assert_sql: - extract: - case_dependence: - setup: - interface: - - gitlink_get_repo_branches_by_keyword_01 - - gitlink_get_repo_readme_file_02 \ No newline at end of file diff --git a/interface/gitlink/projects/repository/test_gitlink_repo_replace_files.yaml b/interface/gitlink/projects/repository/test_gitlink_repo_replace_files.yaml index 6eab93d..36087ea 100644 --- a/interface/gitlink/projects/repository/test_gitlink_repo_replace_files.yaml +++ b/interface/gitlink/projects/repository/test_gitlink_repo_replace_files.yaml @@ -1,10 +1,11 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 代码库 + allure_story: 代码库替换文件 case_markers: - gitlink - - create_files + - projects + - repo - gitea - usefixtures: gitlink_login @@ -14,52 +15,54 @@ case_common: common_dependence: setup: - env_vars: - repo_file_path: 第1章 软件测试基础.pdf - local_file_path: 第1章 软件测试基础.pdf interface: - - gitlink_repo_create_files_01 # 上传一个不支持预览的 可替换文件 + # 前置条件:获取测试仓库的默认分支 + - gitlink_get_repo_detail_full_01 + # 前置条件:# 上传一个不支持预览的 可替换文件 + - gitlink_repo_upload_files_01 + teardown: + interface: + # 后置处理:删除刚刚替换后的文件 + - gitlink_repo_delete_files_01 case_info: -- - id: gitlink_repo_replace_files_01 - title: 替换文件 - severity: - run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/replace_file.json - method: POST - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - filepath: ${replace_file_path} - base64_filepath: ${get_base64_content('${replace_file_path}')} - branch: master # 提交的分支, 输入不存在的分支会自动新建一个 - content: ${get_file_base64('${local_file_path}')} # 文件内容(Base64加密后) - message: 替换文件 - ${replace_file_path} # commit信息 - delete_file: - filepath: ${repo_file_path} - base64_filepath: ${get_base64_content('${repo_file_path}')} # 文件路径(base64加密后) - branch: master - sha: ${repo_file_sha} - files: - assert_response: + - id: gitlink_repo_replace_files_01 + title: 在默认分支替换文件,替换成功 + severity: + run: True + url: /api/${init_repo_owner}/${init_repo_identifier}/replace_file.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: json + payload: + filepath: demo_get_apply_information.yml + base64_filepath: ${get_base64_content('demo_get_apply_information.yml')} + branch: ${default_branch} # 提交的分支, 输入不存在的分支会自动新建一个 + content: ${get_file_base64('demo_get_apply_information.yml')} # 文件内容(Base64加密后) + message: 替换文件 - demo_get_apply_information.yml # commit信息 + delete_file: + filepath: ${repo_file_name} + base64_filepath: ${get_base64_content('${repo_file_name}')} # 文件路径(base64加密后) + branch: ${default_branch} + sha: ${repo_file_sha} + files: + assert_response: status_code: 200 assertAutor: message: 断言message assert_type: == expect_value: 替换成功 type_jsonpath: $.message - assert_sql: - extract: - case_dependence: - setup: - env_vars: - replace_file_path: demo_get_apply_information.yml - local_file_path: demo_get_apply_information.yml - teardown: - interface: - - gitlink_get_repo_sub_entries_003 - - gitlink_repo_delete_files_01 \ No newline at end of file + assert_sql: + extract: + case: + type_jsonpath: + repo_file_name: $.payload.filepath + case_dependence: + teardown: + interface: + # 获取项目默认分支的某个文件信息 + - gitlink_get_repo_sub_entries_02 \ No newline at end of file diff --git a/interface/gitlink/projects/repository/test_gitlink_repo_update_files.yaml b/interface/gitlink/projects/repository/test_gitlink_repo_update_files.yaml index 4734917..dd3291f 100644 --- a/interface/gitlink/projects/repository/test_gitlink_repo_update_files.yaml +++ b/interface/gitlink/projects/repository/test_gitlink_repo_update_files.yaml @@ -1,53 +1,103 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 代码库 + allure_story: 代码库更新文件 case_markers: - gitlink - - update_files + - projects + - repo - gitea - usefixtures: gitlink_login common_dependence: setup: - env_vars: - repo_file_path: demo_get_apply_information.yml - local_file_path: demo_get_apply_information.yml interface: - - gitlink_repo_create_files_01 + # 前置条件:获取测试仓库的默认分支 + - gitlink_get_repo_detail_full_01 + + case_info: -- - id: gitlink_repo_update_files_01 - title: 代码库更新文件 - severity: - run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/update_file.json - method: PUT - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - sha: ${repo_file_sha} # 要更新的文件的sha值 - filepath: ${repo_file_path} - base64_filepath: ${get_base64_content('${repo_file_path}')} # 选填,文件路径(base64加密后) - branch: master # 提交的分支, 输入不存在的分支会自动新建一个 - content: ${generate_paragraph(nb=10)} # 文件内容(Base64加密后) - message: 更新文件 - ${repo_file_path} # commit信息 - files: - assert_response: + - id: gitlink_repo_update_files_01 + title: 修改默认分支文件 - README.md + severity: critical + run: true + url: /api/${init_repo_owner}/${init_repo_identifier}/update_file.json + method: PUT + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: json + payload: + filepath: README.md + base64_filepath: ${get_base64_content('README.md')} # 文件路径(base64加密后) + content: ${generate_paragraph(nb=10)} # 文件内容(Base64加密后) + message: auto update - ${repo_file_path} # commit信息 + branch: ${default_branch} + sha: ${repo_readme_sha} + files: + assert_response: status_code: 200 - assertAutor: + assertMessage: message: 断言message assert_type: == expect_value: 更新成功 type_jsonpath: $.message - assert_sql: - extract: - case_dependence: - teardown: - interface: - - gitlink_get_repo_sub_entries_002 - - gitlink_repo_delete_files_01 \ No newline at end of file + assertStatus: + message: 断言status + assert_type: == + expect_value: 1 + type_jsonpath: $.status + assert_sql: + extract: + case_dependence: + setup: + interface: + # 前置条件:获取默认分支的readme文件的sha + - gitlink_get_repo_default_branch_readme_file_01 + + - id: gitlink_repo_edit_files_02 + title: 修改指定分支文件 - README.md + severity: critical + run: true + url: /api/${init_repo_owner}/${init_repo_identifier}/update_file.json + method: PUT + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: json + payload: + filepath: README.md + base64_filepath: ${get_base64_content('README.md')} # 文件路径(base64加密后) + content: ${generate_paragraph(nb=10)} # 文件内容(Base64加密后) + message: auto update - README.md # commit信息 + branch: ${branch_name} + sha: ${repo_readme_sha} + files: + assert_response: + status_code: 200 + assertMessage: + message: 断言message + assert_type: == + expect_value: 更新成功 + type_jsonpath: $.message + assertStatus: + message: 断言status + assert_type: == + expect_value: 1 + type_jsonpath: $.status + assert_sql: + extract: + case_dependence: + setup: + interface: + # 前置条件:新建分支 + - gitlink_repo_new_branch_01 + # 前置条件:获取新分支readme的sha + - gitlink_get_repo_other_branch_readme_file_02 + teardown: + interface: + # 后置处理:删除分支 + - gitlink_repo_delete_branch_01 \ No newline at end of file diff --git a/interface/gitlink/projects/settings/test_gitlink_cancel_transfer_repo.yaml b/interface/gitlink/projects/settings/test_gitlink_cancel_transfer_repo.yaml index 7be940e..a7a54dd 100644 --- a/interface/gitlink/projects/settings/test_gitlink_cancel_transfer_repo.yaml +++ b/interface/gitlink/projects/settings/test_gitlink_cancel_transfer_repo.yaml @@ -4,8 +4,8 @@ case_common: allure_story: 仓库设置 case_markers: - gitlink + - projects - gitea - - debug - usefixtures: gitlink_login # 仅仓库管理员及以上角色才有权限 @@ -26,7 +26,7 @@ case_info: method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: @@ -42,5 +42,5 @@ case_info: case_dependence: setup: interface: - # 仓库申请转移 + # 前置条件:仓库申请转移 - gitlink_transfer_repo_01 diff --git a/interface/gitlink/projects/settings/test_gitlink_get_repo_setting.yaml b/interface/gitlink/projects/settings/test_gitlink_get_repo_setting.yaml index a817451..f28b8f0 100644 --- a/interface/gitlink/projects/settings/test_gitlink_get_repo_setting.yaml +++ b/interface/gitlink/projects/settings/test_gitlink_get_repo_setting.yaml @@ -4,27 +4,22 @@ case_common: allure_story: 仓库设置 case_markers: - gitlink + - projects - gitea - usefixtures: gitlink_login # 仅仓库管理员及以上角色才有权限 -common_dependence: - setup: - # 新建私有仓库 - interface: gitlink_projects_new_project_02 - teardown: - interface: gitlink_projects_delete_project_01 case_info: - id: gitlink_get_repo_setting_01 title: 获取仓库基本设置 severity: critical run: True - url: /api/${repo_owner}/${repo_identifier}/edit.json + url: /api/${init_repo_owner}/${init_repo_identifier}/edit.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${admin_cookies} cookies: request_type: json payload: diff --git a/interface/gitlink/projects/settings/test_gitlink_transfer_repo.yaml b/interface/gitlink/projects/settings/test_gitlink_transfer_repo.yaml index a4b0f50..d90e5f9 100644 --- a/interface/gitlink/projects/settings/test_gitlink_transfer_repo.yaml +++ b/interface/gitlink/projects/settings/test_gitlink_transfer_repo.yaml @@ -4,8 +4,8 @@ case_common: allure_story: 仓库设置 case_markers: - gitlink + - projects - gitea - - debug - usefixtures: gitlink_login # 仅仓库管理员及以上角色才有权限 @@ -26,7 +26,7 @@ case_info: method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: diff --git a/interface/gitlink/projects/settings/test_gitlink_update_private_repo_setting.yaml b/interface/gitlink/projects/settings/test_gitlink_update_private_repo_setting.yaml index b2c4c4a..687f0af 100644 --- a/interface/gitlink/projects/settings/test_gitlink_update_private_repo_setting.yaml +++ b/interface/gitlink/projects/settings/test_gitlink_update_private_repo_setting.yaml @@ -4,15 +4,17 @@ case_common: allure_story: 仓库设置 case_markers: - gitlink + - projects - gitea - usefixtures: gitlink_login # 仅仓库管理员及以上角色才有权限 common_dependence: setup: - # 新建私有仓库 + # 前置条件:新建私有项目 interface: gitlink_projects_new_project_02 teardown: + # 后置处理:删除项目 interface: gitlink_projects_delete_project_01 @@ -26,12 +28,12 @@ case_info: method: PATCH headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: name: update-name-${generate_words} # 项目名称 - identifier: ${repo_identifier} # 项目标识 + identifier: ${repo_identifier} files: assert_response: status_code: 200 @@ -47,10 +49,11 @@ case_info: type_jsonpath: $.is_public assert_sql: extract: + response: + type_jsonpath: + repo_identifier: $.identifier + repo_name: $.name case_dependence: - setup: - interface: - - gitlink_get_repo_setting_01 - id: gitlink_update_repo_setting_02 @@ -61,11 +64,11 @@ case_info: method: PATCH headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: - name: ${repo_name} # 项目名称 + name: ${repo_name} identifier: update_${generate_identifier()}_${generate_identifier()} # 项目标识 files: assert_response: @@ -82,12 +85,11 @@ case_info: type_jsonpath: $.is_public assert_sql: extract: - type_jsonpath: - repo_identifier: $.identifier + response: + type_jsonpath: + repo_identifier: $.identifier + repo_name: $.name case_dependence: - setup: - interface: - - gitlink_get_repo_setting_01 - id: gitlink_update_repo_setting_03 @@ -98,13 +100,13 @@ case_info: method: PATCH headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: - name: ${repo_name} # 项目名称 + name: ${repo_name} + identifier: ${repo_identifier} project_category_id: ${random.choice(${repo_category_ids})} # 项目类别ID - identifier: ${repo_identifier} # 项目标识 files: assert_response: status_code: 200 @@ -120,11 +122,15 @@ case_info: type_jsonpath: $.is_public assert_sql: extract: + response: + type_jsonpath: + repo_identifier: $.identifier + repo_name: $.name case_dependence: setup: interface: - - gitlink_get_repo_category_01 - - gitlink_get_repo_setting_01 + # 前置条件:获取项目类别列表 + - gitlink_get_repo_category_01 - id: gitlink_update_repo_setting_04 @@ -135,13 +141,13 @@ case_info: method: PATCH headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: - name: ${repo_name} # 项目名称 + name: ${repo_name} + identifier: ${repo_identifier} project_language_id: ${random.choice(${repo_language_ids})} # 项目语言ID - identifier: ${repo_identifier} # 项目标识 files: assert_response: status_code: 200 @@ -157,11 +163,15 @@ case_info: type_jsonpath: $.is_public assert_sql: extract: + response: + type_jsonpath: + repo_identifier: $.identifier + repo_name: $.name case_dependence: setup: interface: - - gitlink_get_repo_language_01 - - gitlink_get_repo_setting_01 + # 前置条件:获取项目语言列表 + - gitlink_get_repo_language_01 - @@ -173,13 +183,13 @@ case_info: method: PATCH headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: - name: ${repo_project_name} # 项目名称 + name: ${repo_name} + identifier: ${repo_identifier} private: False # 项目是否为私有项目 - identifier: ${repo_identifier} # 项目标识 files: assert_response: status_code: 200 @@ -195,8 +205,9 @@ case_info: type_jsonpath: $.is_public assert_sql: extract: + response: + type_jsonpath: + repo_identifier: $.identifier + repo_name: $.name case_dependence: - setup: - interface: - - gitlink_get_repo_setting_01 diff --git a/interface/gitlink/projects/settings/test_gitlink_update_project_unit.yaml b/interface/gitlink/projects/settings/test_gitlink_update_project_unit.yaml new file mode 100644 index 0000000..24d4523 --- /dev/null +++ b/interface/gitlink/projects/settings/test_gitlink_update_project_unit.yaml @@ -0,0 +1,57 @@ +case_common: + allure_epic: GitLink接口 + allure_feature: 开源项目模块 + allure_story: 仓库设置 + case_markers: + - gitlink + - projects + - gitea + - usefixtures: gitlink_login + +# 仅仓库管理员及以上角色才有权限 +common_dependence: + setup: + # 新建公开仓库 + interface: gitlink_projects_new_project_01 + teardown: + interface: gitlink_projects_delete_project_01 + + +case_info: +- + id: gitlink_update_project_unit_01 + title: 更新仓库基本设置 - 更新项目导航栏 + severity: critical + run: true + url: /api/${repo_owner}/${repo_identifier}/project_units.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: json + payload: + unit_types: + - issues + - pulls + - wiki + - devops + - versions + - services + - dataset + files: + assert_response: + status_code: 200 + assertStatus: + message: 断言接口返回status=0 + expect_value: 0 + assert_type: == + type_jsonpath: $.status + assertMessage: + message: 断言接口返回message + expect_value: success + assert_type: == + type_jsonpath: $.message + assert_sql: + extract: + case_dependence: \ No newline at end of file diff --git a/interface/gitlink/projects/settings/test_gitlink_update_public_repo_setting.yaml b/interface/gitlink/projects/settings/test_gitlink_update_public_repo_setting.yaml index 065eaa1..e2b2643 100644 --- a/interface/gitlink/projects/settings/test_gitlink_update_public_repo_setting.yaml +++ b/interface/gitlink/projects/settings/test_gitlink_update_public_repo_setting.yaml @@ -4,15 +4,17 @@ case_common: allure_story: 仓库设置 case_markers: - gitlink + - projects - gitea - usefixtures: gitlink_login # 仅仓库管理员及以上角色才有权限 common_dependence: setup: - # 新建公开仓库 + # 前置条件:新建公开仓库 interface: gitlink_projects_new_project_01 teardown: + # 后置处理:删除项目 interface: gitlink_projects_delete_project_01 @@ -26,12 +28,12 @@ case_info: method: PATCH headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: name: update-name-${generate_words} # 项目名称 - identifier: ${repo_identifier} # 项目标识 + identifier: ${repo_identifier} files: assert_response: status_code: 200 @@ -47,10 +49,11 @@ case_info: type_jsonpath: $.is_public assert_sql: extract: + response: + type_jsonpath: + repo_identifier: $.identifier + repo_name: $.name case_dependence: - setup: - interface: - - gitlink_get_repo_setting_01 - id: gitlink_update_repo_setting_02 @@ -61,12 +64,12 @@ case_info: method: PATCH headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: - name: ${repo_name} # 项目名称 identifier: update_${generate_identifier()}_${generate_identifier()} # 项目标识 + name: ${repo_name} files: assert_response: status_code: 200 @@ -82,12 +85,11 @@ case_info: type_jsonpath: $.is_public assert_sql: extract: - type_jsonpath: - repo_identifier: $.identifier + response: + type_jsonpath: + repo_identifier: $.identifier + repo_name: $.name case_dependence: - setup: - interface: - - gitlink_get_repo_setting_01 - id: gitlink_update_repo_setting_03 @@ -98,7 +100,7 @@ case_info: method: PATCH headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: @@ -120,11 +122,15 @@ case_info: type_jsonpath: $.is_public assert_sql: extract: + response: + type_jsonpath: + repo_identifier: $.identifier + repo_name: $.name case_dependence: setup: interface: - - gitlink_get_repo_category_01 - - gitlink_get_repo_setting_01 + # 前置条件:获取项目类别列表 + - gitlink_get_repo_category_01 - id: gitlink_update_repo_setting_04 @@ -135,7 +141,7 @@ case_info: method: PATCH headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: @@ -157,11 +163,15 @@ case_info: type_jsonpath: $.is_public assert_sql: extract: + response: + type_jsonpath: + repo_identifier: $.identifier + repo_name: $.name case_dependence: setup: interface: - - gitlink_get_repo_language_01 - - gitlink_get_repo_setting_01 + # 前置条件:获取项目语言列表 + - gitlink_get_repo_language_01 - id: gitlink_update_repo_setting_05 @@ -172,7 +182,7 @@ case_info: method: PATCH headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: @@ -194,7 +204,8 @@ case_info: type_jsonpath: $.is_public assert_sql: extract: - case_dependence: - setup: - interface: - - gitlink_get_repo_setting_01 \ No newline at end of file + response: + type_jsonpath: + repo_identifier: $.identifier + repo_name: $.name + case_dependence: \ No newline at end of file diff --git a/interface/gitlink/projects/tags/test_gitlink_repo_delete_tag.yaml b/interface/gitlink/projects/tags/test_gitlink_repo_delete_tag.yaml index 6b12a60..0a66087 100644 --- a/interface/gitlink/projects/tags/test_gitlink_repo_delete_tag.yaml +++ b/interface/gitlink/projects/tags/test_gitlink_repo_delete_tag.yaml @@ -12,21 +12,20 @@ case_common: # 通过发行版新建标签,删除标签之前需要先删除发行版 case_info: -- - id: gitlink_repo_delete_tag_001 - title: 删除标签 - 当前标签无关联发行版,删除成功 - severity: normal - run: True - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/tags/${tag_name}.json - method: DELETE - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - files: - assert_response: + - id: gitlink_repo_delete_tag_01 + title: 删除标签 - 当前标签无关联发行版,删除成功 + severity: normal + run: True + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/tags/${tag_name}.json + method: DELETE + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: json + payload: + files: + assert_response: status_code: 200 assertStatus: message: 断言接口返回status=0 @@ -38,31 +37,33 @@ case_info: expect_value: success assert_type: == type_jsonpath: $.message - assert_sql: - extract: - case_dependence: - setup: - interface: - - gitlink_repo_new_release_001 - - gitlink_repo_get_tags_list_001 - - gitlink_repo_get_release_list_001 - - gitlink_repo_delete_release_001 + assert_sql: + extract: + case_dependence: + setup: + interface: + # 前置条件:创建发行版 + - gitlink_repo_new_release_01 + # 前置条件:获取发行版的相关信息, 如:release_id + - gitlink_repo_get_release_list_01 + # 前置处理:删除发行版 + - gitlink_repo_delete_release_01 -- - id: gitlink_repo_delete_tag_002 - title: 删除标签 - 当前标签关联了发行版,将发行失败 - severity: normal - run: True - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/tags/${tag_name}.json - method: DELETE - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - files: - assert_response: + + - id: gitlink_repo_delete_tag_002 + title: 删除标签 - 当前标签关联了发行版,将发行失败 + severity: normal + run: True + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/tags/${tag_name}.json + method: DELETE + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: json + payload: + files: + assert_response: status_code: 200 assertStatus: message: 断言接口返回status=-1 @@ -74,15 +75,18 @@ case_info: expect_value: 请先删除发行版! assert_type: == type_jsonpath: $.message - assert_sql: - extract: - case_dependence: - setup: - interface: - - gitlink_repo_new_release_001 - - gitlink_repo_get_tags_list_001 - teardown: - interface: - - gitlink_repo_get_release_list_001 - - gitlink_repo_delete_release_001 - + assert_sql: + extract: + case_dependence: + setup: + interface: + # 前置条件:创建发行版 + - gitlink_repo_new_release_01 + # 前置条件:获取发行版的相关信息, 如:release_id + - gitlink_repo_get_release_list_01 + teardown: + interface: + # 数据清理:删除发行版 + - gitlink_repo_delete_release_01 + # 数据清理:删除标签 + - gitlink_repo_delete_tag_01 diff --git a/interface/gitlink/projects/tags/test_gitlink_repo_get_tags_detail.yaml b/interface/gitlink/projects/tags/test_gitlink_repo_get_tags_detail.yaml index 702f012..a3f1267 100644 --- a/interface/gitlink/projects/tags/test_gitlink_repo_get_tags_detail.yaml +++ b/interface/gitlink/projects/tags/test_gitlink_repo_get_tags_detail.yaml @@ -4,21 +4,22 @@ case_common: allure_story: 标签 case_markers: - gitlink + - projects - tags - gitea - usefixtures: gitlink_login case_info: - - id: gitlink_repo_get_tags_detail_001 + id: gitlink_repo_get_tags_detail_01 title: 获取项目标签详情 severity: normal run: True - url: /api/v1/${env_repo_owner}/${env_repo_identifier}/tags/${tag_name}.json + url: /api/v1/${init_repo_owner}/${init_repo_identifier}/tags/${tag_name}.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: @@ -35,10 +36,14 @@ case_info: case_dependence: setup: interface: - - gitlink_repo_new_release_001 - - gitlink_repo_get_tags_list_001 + # 前置条件:创建发行版 + - gitlink_repo_new_release_01 + # 前置条件:获取发行版的相关信息, 如:release_id + - gitlink_repo_get_release_list_01 teardown: interface: - - gitlink_repo_get_release_list_001 - - gitlink_repo_delete_release_001 + # 后置处理:删除发行版 + - gitlink_repo_delete_release_01 + # 后置处理:删除标记 + - gitlink_repo_delete_tag_01 diff --git a/interface/gitlink/projects/tags/test_gitlink_repo_get_tags_list.yaml b/interface/gitlink/projects/tags/test_gitlink_repo_get_tags_list.yaml index 68783ad..b7931ef 100644 --- a/interface/gitlink/projects/tags/test_gitlink_repo_get_tags_list.yaml +++ b/interface/gitlink/projects/tags/test_gitlink_repo_get_tags_list.yaml @@ -4,21 +4,22 @@ case_common: allure_story: 标签 case_markers: - gitlink + - projects - tags - gitea - usefixtures: gitlink_login case_info: - - id: gitlink_repo_get_tags_list_001 + id: gitlink_repo_get_tags_list_01 title: 获取项目标签列表 severity: normal run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/tags.json + url: /api/${init_repo_owner}/${init_repo_identifier}/tags.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: @@ -37,15 +38,15 @@ case_info: tag_name: $.tags[0].name - - id: gitlink_repo_get_tags_list_all_002 + id: gitlink_repo_get_tags_list_all_02 title: 获取项目标签列表(无分页) severity: normal run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/tags.json + url: /api/${init_repo_owner}/${init_repo_identifier}/tags.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: diff --git a/interface/gitlink/projects/test_gitlink_delete_project.yaml b/interface/gitlink/projects/test_gitlink_delete_project.yaml index d0adc76..67f3bdc 100644 --- a/interface/gitlink/projects/test_gitlink_delete_project.yaml +++ b/interface/gitlink/projects/test_gitlink_delete_project.yaml @@ -1,7 +1,7 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 项目 + allure_story: 删除项目 case_markers: - gitlink - projects @@ -19,8 +19,7 @@ case_info: method: DELETE headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: + cookies: ${cookies} request_type: json payload: files: @@ -41,4 +40,5 @@ case_info: case_dependence: setup: interface: + # 前置条件:新建项目(仅输入必填参数) - gitlink_projects_new_project_01 \ No newline at end of file diff --git a/interface/gitlink/projects/test_gitlink_follow_project.yaml b/interface/gitlink/projects/test_gitlink_follow_project.yaml index 8ec8ead..78e0123 100644 --- a/interface/gitlink/projects/test_gitlink_follow_project.yaml +++ b/interface/gitlink/projects/test_gitlink_follow_project.yaml @@ -1,7 +1,7 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 项目 + allure_story: 关注项目 case_markers: - gitlink - projects @@ -12,9 +12,11 @@ case_common: common_dependence: setup: interface: + # 前置条件:新建项目(仅输入必填参数) - gitlink_projects_new_project_01 teardown: interface: + # 后置处理:删除项目 - gitlink_projects_delete_project_01 case_info: @@ -27,7 +29,7 @@ case_info: method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: @@ -65,7 +67,7 @@ case_info: method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: @@ -98,7 +100,7 @@ case_info: method: DELETE headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: diff --git a/interface/gitlink/projects/test_gitlink_fork_project.yaml b/interface/gitlink/projects/test_gitlink_fork_project.yaml index c40dc2c..2d9bfec 100644 --- a/interface/gitlink/projects/test_gitlink_fork_project.yaml +++ b/interface/gitlink/projects/test_gitlink_fork_project.yaml @@ -1,7 +1,7 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 项目 + allure_story: 复刻(Fork)项目 case_markers: - gitlink - projects @@ -9,30 +9,27 @@ case_common: - fork_project - usefixtures: gitlink_login + common_dependence: - setup: - env_vars: - repo_owner: ${env_login} - teardown: - interface: - - gitlink_projects_delete_project_01 + interface: + # 删除刚刚fork成功的项目 + - projects_delete_project_01 case_info: -- - id: gitlink_projects_fork_project_01 - title: fork项目 - severity: critical - run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/forks.json - method: POST - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - files: - assert_response: + - id: gitlink_projects_fork_project_01 + title: fork项目 + severity: critical + run: True + url: /api/${init_repo_owner}/${init_repo_identifier}/forks.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: json + payload: + files: + assert_response: status_code: 200 assertStatus: message: 断言接口返回status=0 @@ -44,28 +41,31 @@ case_info: expect_value: fork项目成功 assert_type: == type_jsonpath: $.message - assert_sql: - extract: - type_jsonpath: - repo_id: $.id - repo_identifier: $.identifier - case_dependence: + assert_sql: + extract: + response: + type_jsonpath: + fork_identifier: $.identifier + case_dependence: + teardown: + env_vars: + repo_owner: ${env_login} + repo_identifier: ${fork_identifier} -- - id: gitlink_projects_fork_project_02 - title: fork项目 - 已经fork过了继续fork - severity: critical - run: True - url: /api/${env_repo_owner}/${env_repo_identifier}/forks.json - method: POST - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - files: - assert_response: + - id: gitlink_projects_fork_project_02 + title: fork项目 - 已经fork过了继续fork + severity: critical + run: True + url: /api/${init_repo_owner}/${init_repo_identifier}/forks.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: json + payload: + files: + assert_response: status_code: 200 assertStatus: message: 断言接口返回status=0 @@ -74,9 +74,9 @@ case_info: type_jsonpath: $.status assertMessage: message: 断言接口返回message - expect_value: fork失败,你已拥有了这个项目 autotest + expect_value: fork失败,你已拥有了这个项目 ${repo_identifier} assert_type: == type_jsonpath: $.message - assert_sql: - extract: - case_dependence: \ No newline at end of file + assert_sql: + extract: + case_dependence: \ No newline at end of file diff --git a/interface/gitlink/projects/test_gitlink_get_repo_category.yaml b/interface/gitlink/projects/test_gitlink_get_repo_category.yaml index 372dab0..7332b8a 100644 --- a/interface/gitlink/projects/test_gitlink_get_repo_category.yaml +++ b/interface/gitlink/projects/test_gitlink_get_repo_category.yaml @@ -1,10 +1,10 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 仓库设置 + allure_story: 获取项目基础数据 case_markers: - gitlink - - gitea + - projects - usefixtures: gitlink_login @@ -19,7 +19,7 @@ case_info: method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: diff --git a/interface/gitlink/projects/test_gitlink_get_repo_ignores.yaml b/interface/gitlink/projects/test_gitlink_get_repo_ignores.yaml index 69bc2c2..cdbe5be 100644 --- a/interface/gitlink/projects/test_gitlink_get_repo_ignores.yaml +++ b/interface/gitlink/projects/test_gitlink_get_repo_ignores.yaml @@ -1,9 +1,10 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 项目 + allure_story: 获取项目基础数据 case_markers: - gitlink + - projects - usefixtures: gitlink_login # 用例数据 @@ -17,7 +18,7 @@ case_info: method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: diff --git a/interface/gitlink/projects/test_gitlink_get_repo_language.yaml b/interface/gitlink/projects/test_gitlink_get_repo_language.yaml index 361373d..843b357 100644 --- a/interface/gitlink/projects/test_gitlink_get_repo_language.yaml +++ b/interface/gitlink/projects/test_gitlink_get_repo_language.yaml @@ -1,10 +1,10 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 仓库设置 + allure_story: 获取项目基础数据 case_markers: - gitlink - - gitea + - projects - usefixtures: gitlink_login @@ -19,7 +19,7 @@ case_info: method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: diff --git a/interface/gitlink/projects/test_gitlink_get_repo_licenses.yaml b/interface/gitlink/projects/test_gitlink_get_repo_licenses.yaml index f3d95e2..e0732cd 100644 --- a/interface/gitlink/projects/test_gitlink_get_repo_licenses.yaml +++ b/interface/gitlink/projects/test_gitlink_get_repo_licenses.yaml @@ -1,9 +1,11 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 项目 + allure_story: 获取项目基础数据 case_markers: - gitlink + - gitea + - projects - usefixtures: gitlink_login # 用例数据 @@ -17,7 +19,7 @@ case_info: method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: diff --git a/interface/gitlink/projects/test_gitlink_like_project.yaml b/interface/gitlink/projects/test_gitlink_like_project.yaml index fd02ed4..6d03ddd 100644 --- a/interface/gitlink/projects/test_gitlink_like_project.yaml +++ b/interface/gitlink/projects/test_gitlink_like_project.yaml @@ -9,13 +9,14 @@ case_common: - like_project - usefixtures: gitlink_login -# 放置公共依赖 common_dependence: setup: interface: + # 前置条件:新建项目(仅输入必填参数) - gitlink_projects_new_project_01 teardown: interface: + # 后置处理:删除项目 - gitlink_projects_delete_project_01 case_info: @@ -27,7 +28,7 @@ case_info: method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: @@ -61,7 +62,7 @@ case_info: method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: @@ -90,7 +91,7 @@ case_info: method: DELETE headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: diff --git a/interface/gitlink/projects/test_gitlink_new_project.yaml b/interface/gitlink/projects/test_gitlink_new_project.yaml index 6023a0f..411c62d 100644 --- a/interface/gitlink/projects/test_gitlink_new_project.yaml +++ b/interface/gitlink/projects/test_gitlink_new_project.yaml @@ -1,7 +1,7 @@ case_common: allure_epic: GitLink接口 allure_feature: 开源项目模块 - allure_story: 项目 + allure_story: 新建项目 case_markers: - gitlink - projects @@ -13,170 +13,174 @@ case_common: common_dependence: setup: interface: + # 获取开源许可证 - gitlink_get_repo_licenses_01 + # 获取gitignore - gitlink_get_repo_ignores_01 + # 获取项目类别 - gitlink_get_repo_category_01 + # 获取项目语言 - gitlink_get_repo_language_01 case_info: -- - id: gitlink_projects_new_project_01 - title: 正确输入各项必填参数,新建公开项目成功 - severity: critical - run: True - url: /api/projects.json - method: POST - headers: - Content-Type: application/json; charset=utf-8; + - id: gitlink_projects_new_project_01 + title: 正确输入各项必填参数,新建公开项目成功 + severity: critical + run: True + url: /api/projects.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${cookies} + cookies: + request_type: json + payload: + user_id: ${user_id} + name: test_${generate_words()}_${generate_identifier()} + repository_name: ${generate_identifier()}_test + files: + assert_response: + status_code: 200 + assertId: + message: 断言接口返回的存在id + expect_value: id + assert_type: contains + assert_sql: + extract: + type_jsonpath: + project_id: $.id # 项目id + repo_name: $.name + repo_owner: $.login + repo_identifier: $.identifier + case_dependence: + teardown: + interface: + # 清理数据:删除项目 + - gitlink_projects_delete_project_01 + + - id: gitlink_projects_new_project_02 + title: 正确输入各项必填参数,新建私有项目成功 + run: true + url: /api/projects.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; cookies: ${cookies} - cookies: - request_type: json - payload: - user_id: ${user_id} - name: test_${generate_catch_phrase()} - repository_name: ${generate_identifier()}_test - files: - assert_response: + request_type: json + payload: + user_id: ${user_id} + name: test_${generate_words()}_${generate_identifier()} + repository_name: ${generate_identifier()}_test + private: true + files: + assert_response: status_code: 200 login: message: 断言接口返回的login expect_value: ${login} assert_type: == type_jsonpath: $.login - assert_sql: - extract: - type_jsonpath: - project_id: $.id # 项目id - repo_name: $.name - repo_owner: $.login - repo_identifier: $.identifier - case_dependence: - teardown: - interface: - - gitlink_projects_delete_project_01 + assert_sql: + extract: + type_jsonpath: + repo_id: $.id + repo_name: $.name + repo_owner: $.login + repo_identifier: $.identifier + case_dependence: + teardown: + interface: + # 清理数据:删除项目 + - gitlink_projects_delete_project_01 -- - id: gitlink_projects_new_project_02 - title: 正确输入各项必填参数,新建私有项目成功 - run: true - url: /api/projects.json - method: POST - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - request_type: json - payload: - user_id: ${user_id} - name: 测试_${generate_catch_phrase()} - repository_name: ${generate_identifier()}_test - private: true - files: - assert_response: + - id: gitlink_projects_new_project_03 + title: 输入所有参数,新建项目成功 + run: true + url: /api/projects.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + request_type: json + payload: + user_id: ${user_id} + name: test_${generate_words()}_${generate_identifier()} + repository_name: ${generate_identifier()}_test + description: ${generate_paragraph()} + private: true + ignoreFlag: true + ignore_id: ${ignores_id} + ignore: ${ignores_name} + licenseFlag: true + license_id: ${licenses_id} + license: ${licenses_name} + categoreFlag: true + project_category_id: ${repo_category_id} + project_category: ${repo_category_name} + languageFlag: true + project_language_id: ${repo_language_id} + project_language: ${repo_language_name} + # blockchain: false + # blockchain_token_all: 10000 + # blockchain_init_token: + files: + assert_response: status_code: 200 login: message: 断言接口返回的login expect_value: ${login} assert_type: == type_jsonpath: $.login - assert_sql: - extract: - type_jsonpath: - repo_id: $.id - repo_name: $.name - repo_owner: $.login - repo_identifier: $.identifier - case_dependence: - teardown: - interface: - - gitlink_projects_delete_project_01 + assert_sql: + extract: + type_jsonpath: + repo_id: $.id + repo_name: $.name + repo_owner: $.login + repo_identifier: $.identifier + case_dependence: + teardown: + interface: + # 清理数据:删除项目 + - gitlink_projects_delete_project_01 -- - id: gitlink_projects_new_project_03 - title: 输入所有参数,新建项目成功 - run: true - url: /api/projects.json - method: POST - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - request_type: json - payload: - user_id: ${user_id} - name: test_${generate_catch_phrase()} - repository_name: ${generate_identifier()}_test - description: ${generate_paragraph()} - private: true - ignoreFlag: true - ignore_id: ${ignores_id} - ignore: ${ignores_name} - licenseFlag: true - license_id: ${licenses_id} - license: ${licenses_name} - categoreFlag: true - project_category_id: ${repo_category_id} - project_category: ${repo_category_name} - languageFlag: true - project_language_id: ${repo_language_id} - project_language: ${repo_language_name} -# blockchain: false -# blockchain_token_all: 10000 -# blockchain_init_token: - files: - assert_response: + - id: gitlink_projects_new_project_04 + title: 正确输入各项必填参数,新建项目成功(校验数据库) + severity: normal + run: false + url: /api/projects.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: ${cookies} + request_type: json + payload: + user_id: ${user_id} + name: test_${generate_words()}_${generate_identifier()} + repository_name: ${generate_identifier()}_test + files: + assert_response: status_code: 200 login: message: 断言接口返回的login expect_value: ${login} assert_type: == type_jsonpath: $.login - assert_sql: - extract: - type_jsonpath: - repo_id: $.id - repo_name: $.name - repo_owner: $.login - repo_identifier: $.identifier - case_dependence: - teardown: - interface: - - gitlink_projects_delete_project_01 -- - id: gitlink_projects_new_project_04 - title: 正确输入各项必填参数,新建项目成功(校验数据库) - severity: normal - run: false - url: /api/projects.json - method: POST - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - request_type: json - payload: - user_id: ${user_id} - name: test_${generate_catch_phrase()} - repository_name: ${generate_identifier()}_test - files: - assert_response: - status_code: 200 - login: - message: 断言接口返回的login - expect_value: ${login} - assert_type: == - type_jsonpath: $.login - assert_sql: - eq: - sql: select id,`name`, identifier from projects where user_id=${user_id} ORDER BY created_on DESC; - $.id: ${pms_project_id} - $.name: ${project_name} - $.identifier: ${project_identifier} - extract: - type_jsonpath: - repo_id: $.id - repo_name: $.name - repo_owner: $.login - repo_identifier: $.identifier - case_dependence: - teardown: - interface: - - gitlink_projects_delete_project_01 + assert_sql: + eq: + sql: select id,`name`, identifier from projects where user_id=${user_id} ORDER BY created_on DESC; + $.id: ${pms_project_id} + $.name: ${project_name} + $.identifier: ${project_identifier} + extract: + type_jsonpath: + repo_id: $.id + repo_name: $.name + repo_owner: $.login + repo_identifier: $.identifier + case_dependence: + teardown: + interface: + # 清理数据:删除项目 + - gitlink_projects_delete_project_01 diff --git a/interface/gitlink/projects/test_gitlink_upload_files.yaml b/interface/gitlink/projects/test_gitlink_upload_files.yaml index 52a4636..cdcfa14 100644 --- a/interface/gitlink/projects/test_gitlink_upload_files.yaml +++ b/interface/gitlink/projects/test_gitlink_upload_files.yaml @@ -10,76 +10,46 @@ case_common: # 用例数据 case_info: -- - id: gitlink_upload_file_01 - title: 正常上传文件 - severity: - run: true - url: /api/attachments.json - method: POST - headers: - cookies: ${cookie} - Content-Type: application/json; charset=utf-8; - cookies: - request_type: file - payload: - files: TOC出库订单导入模板(2).xlsx - assert_response: + - id: gitlink_upload_file_01 + title: 正常上传文件 + severity: + run: true + url: /api/attachments.json + method: POST + headers: + Cookie: ${cookies} + Content-Type: application/json; charset=utf-8; + cookies: + request_type: file + payload: + files: TOC出库订单导入模板(2).xlsx + assert_response: status_code: 200 asserFileName: message: 断言接口返回的filename expect_value: TOC出库订单导入模板(2).xlsx assert_type: == type_jsonpath: $.title - assert_sql: - extract: - type_jsonpath: - attachment_id: $.id + assert_sql: + extract: + type_jsonpath: + attachment_id: $.id -- - id: gitlink_upload_file_02 - title: file为空,文件上传失败 - severity: - run: true - url: /api/attachments.json - method: POST - headers: - cookies: ${cookie} - Content-Type: application/json; charset=utf-8; - cookies: - request_type: file - payload: - files: - assert_response: - status_code: 200 - assertStatus: - message: 断言接口返回的status - expect_value: -1 - assert_type: == - type_jsonpath: $.status - assertMessage: - message: 断言接口返回的message - expect_value: 未上传文件 - assert_type: == - type_jsonpath: $.message - assert_sql: - extract: -# 由于requests采用的是session方式,fixture执行了login后会产生cookies, session会记录cookies。因此下述用例虽然没用传登录cookies,但是实际有,会上传成功。暂时还没想好如何解决这一问题 -- - id: gitlink_upload_file_03 - title: 无用户登录信息上传文件,提示用户先登录 - severity: - run: False - url: /api/attachments.json - method: POST - headers: - Content-Type: application/json; charset=utf-8; - cookies: - request_type: file - payload: - files: TOC出库订单导入模板(2).xlsx - assert_response: + # 由于requests采用的是session方式,fixture执行了login后会产生cookies, session会记录cookies。因此下述用例虽然没用传登录cookies,但是实际有,会上传成功。暂时还没想好如何解决这一问题 + - id: gitlink_upload_file_02 + title: 无用户登录信息上传文件,提示用户先登录 + severity: + run: True + url: /api/attachments.json + method: POST + headers: + Content-Type: application/json; charset=utf-8; + cookies: + request_type: file + payload: + files: TOC出库订单导入模板(2).xlsx + assert_response: status_code: 200 assertStatus: message: 断言接口返回的status @@ -91,5 +61,5 @@ case_info: expect_value: 请登录后再操作 assert_type: == type_jsonpath: $.message - assert_sql: - extract: + assert_sql: + extract: diff --git a/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_detail.yaml b/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_detail.yaml index 390c381..8aa193d 100644 --- a/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_detail.yaml +++ b/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_detail.yaml @@ -4,20 +4,12 @@ case_common: allure_story: Webhook case_markers: - gitlink + - projects - gitea - webhook - usefixtures: gitlink_login # 前提条件:仅仓库管理员及以上角色才有权限,当前仓库存在webhook -common_dependence: - setup: - interface: - # 新建私有仓库 - - gitlink_projects_new_project_02 - teardown: - interface: - # 删除仓库 - - gitlink_projects_delete_project_01 case_info: - @@ -25,11 +17,11 @@ case_info: title: 仓库管理员获取Webhook详情,获取成功 severity: normal run: True - url: /api/${repo_owner}/${repo_identifier}/webhooks/${repo_webhook_id}/edit.json + url: /api/${init_repo_owner}/${init_repo_identifier}/webhooks/${repo_webhook_id}/edit.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${admin_cookies} cookies: request_type: params payload: @@ -46,8 +38,8 @@ case_info: setup: interface: # 新建webhook - - gitlink_get_repo_add_webhook_03 + - gitlink_repo_add_webhook_03 teardown: interface: # 删除webhook - - gitlink_get_repo_delete_webhook_01 + - gitlink_repo_delete_webhook_01 diff --git a/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_history_list.yaml b/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_history_list.yaml index 0d9f13b..95f0bc1 100644 --- a/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_history_list.yaml +++ b/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_history_list.yaml @@ -4,54 +4,45 @@ case_common: allure_story: Webhook case_markers: - gitlink + - projects - gitea - webhook - usefixtures: gitlink_login # 前提条件:仅仓库管理员及以上角色才有权限,当前仓库存在webhook -common_dependence: - setup: - interface: - # 新建私有仓库 - - gitlink_projects_new_project_02 - teardown: - interface: - # 删除仓库 - - gitlink_projects_delete_project_01 case_info: -- - id: gitlink_get_repo_webhook_history_list_01 - title: 仓库管理员获取Webhook历史推送列表,获取成功 - severity: normal - run: True - url: /api/${repo_owner}/${repo_identifier}/webhooks/${repo_webhook_id}/tasks.json - method: GET - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: params - payload: - page: 1 - limit: 10 - files: - assert_response: + - id: gitlink_get_repo_webhook_history_list_01 + title: 仓库管理员获取Webhook历史推送列表,获取成功 + severity: normal + run: True + url: /api/${init_repo_owner}/${init_repo_identifier}/webhooks/${repo_webhook_id}/tasks.json + method: GET + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${admin_cookies} + cookies: + request_type: params + payload: + page: 1 + limit: 10 + files: + assert_response: status_code: 200 assertMessage: message: 断言接口返回包括字段total_count expect_value: total_count assert_type: contains - assert_sql: - extract: - case_dependence: - setup: - interface: - # 新建webhook - - gitlink_get_repo_add_webhook_03 - # 测试推送 - - gitlink_get_repo_webhook_test_01 - teardown: - interface: - # 删除webhook - - gitlink_get_repo_delete_webhook_01 \ No newline at end of file + assert_sql: + extract: + case_dependence: + setup: + interface: + # 新建webhook + - gitlink_repo_add_webhook_03 + # 测试推送 + - gitlink_repo_webhook_test_01 + teardown: + interface: + # 删除webhook + - gitlink_repo_delete_webhook_01 \ No newline at end of file diff --git a/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_list.yaml b/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_list.yaml index c0f5161..b4ff814 100644 --- a/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_list.yaml +++ b/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_list.yaml @@ -4,20 +4,12 @@ case_common: allure_story: Webhook case_markers: - gitlink + - projects - gitea - webhook - usefixtures: gitlink_login # 前提条件:仅仓库管理员及以上角色才有权限,当前仓库存在webhook -common_dependence: - setup: - interface: - # 新建私有仓库 - - gitlink_projects_new_project_02 - teardown: - interface: - # 删除仓库 - - gitlink_projects_delete_project_01 case_info: - @@ -25,11 +17,11 @@ case_info: title: 仓库管理员获取Webhook列表,获取成功 severity: normal run: True - url: /api/${repo_owner}/${repo_identifier}/webhooks.json + url: /api/${init_repo_owner}/${init_repo_identifier}/webhooks.json method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${admin_cookies} cookies: request_type: json payload: diff --git a/interface/gitlink/projects/webhook/test_gitlink_get_repo_add_webhook.yaml b/interface/gitlink/projects/webhook/test_gitlink_repo_add_webhook.yaml similarity index 86% rename from interface/gitlink/projects/webhook/test_gitlink_get_repo_add_webhook.yaml rename to interface/gitlink/projects/webhook/test_gitlink_repo_add_webhook.yaml index fc6b6a7..6bb19e7 100644 --- a/interface/gitlink/projects/webhook/test_gitlink_get_repo_add_webhook.yaml +++ b/interface/gitlink/projects/webhook/test_gitlink_repo_add_webhook.yaml @@ -4,32 +4,24 @@ case_common: allure_story: Webhook case_markers: - gitlink + - projects - gitea - webhook - usefixtures: gitlink_login # 仅仓库管理员及以上角色才有权限 -common_dependence: - setup: - interface: - # 新建私有仓库 - - gitlink_projects_new_project_02 - teardown: - interface: - # 删除仓库 - - gitlink_projects_delete_project_01 case_info: - - id: gitlink_get_repo_add_webhook_01 + - id: gitlink_repo_add_webhook_01 title: 仓库管理员创建Webhook(push事件),创建成功 severity: normal run: True - url: /api/${repo_owner}/${repo_identifier}/webhooks.json + url: /api/${init_repo_owner}/${init_repo_identifier}/webhooks.json method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${admin_cookies} cookies: request_type: json payload: @@ -52,18 +44,24 @@ case_info: assert_type: contains assert_sql: extract: + type_jsonpath: + repo_webhook_id: $.id case_dependence: + teardown: + interface: + # 后置处理:删除webhook + - gitlink_repo_delete_webhook_01 - - id: gitlink_get_repo_add_webhook_02 + - id: gitlink_repo_add_webhook_02 title: 仓库管理员创建Webhook(所有事件),创建成功 severity: normal run: True - url: /api/${repo_owner}/${repo_identifier}/webhooks.json + url: /api/${init_repo_owner}/${init_repo_identifier}/webhooks.json method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${admin_cookies} cookies: request_type: json payload: @@ -94,17 +92,21 @@ case_info: type_jsonpath: repo_webhook_id: $.id case_dependence: + teardown: + interface: + # 后置处理:删除webhook + - gitlink_repo_delete_webhook_01 - - id: gitlink_get_repo_add_webhook_03 + - id: gitlink_repo_add_webhook_03 title: 仓库管理员创建Webhook(所有自定义事件),创建成功 severity: normal run: True - url: /api/${repo_owner}/${repo_identifier}/webhooks.json + url: /api/${init_repo_owner}/${init_repo_identifier}/webhooks.json method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${admin_cookies} cookies: request_type: json payload: @@ -139,16 +141,20 @@ case_info: type_jsonpath: repo_webhook_id: $.id case_dependence: + teardown: + interface: + # 后置处理:删除webhook + - gitlink_repo_delete_webhook_01 - - id: gitlink_get_repo_add_webhook_04 + - id: gitlink_repo_add_webhook_04 title: 非仓库管理员创建Webhook(所有自定义事件),创建成功 severity: normal run: false - url: /api/${env_repo_owner}/${env_repo_identifier}/webhooks.json + url: /api/${init_repo_owner}/${init_repo_identifier}/webhooks.json method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: diff --git a/interface/gitlink/projects/webhook/test_gitlink_get_repo_delete_webhook.yaml b/interface/gitlink/projects/webhook/test_gitlink_repo_delete_webhook.yaml similarity index 69% rename from interface/gitlink/projects/webhook/test_gitlink_get_repo_delete_webhook.yaml rename to interface/gitlink/projects/webhook/test_gitlink_repo_delete_webhook.yaml index d3c2d48..be25564 100644 --- a/interface/gitlink/projects/webhook/test_gitlink_get_repo_delete_webhook.yaml +++ b/interface/gitlink/projects/webhook/test_gitlink_repo_delete_webhook.yaml @@ -4,32 +4,25 @@ case_common: allure_story: Webhook case_markers: - gitlink + - projects - gitea - webhook - usefixtures: gitlink_login # 前提条件:仅仓库管理员及以上角色才有权限,当前仓库存在webhook -common_dependence: - setup: - interface: - # 新建私有仓库 - - gitlink_projects_new_project_02 - teardown: - interface: - # 删除仓库 - - gitlink_projects_delete_project_01 + case_info: - - id: gitlink_get_repo_delete_webhook_01 + id: gitlink_repo_delete_webhook_01 title: 仓库管理员删除Webhook,删除成功 severity: normal run: True - url: /api/${repo_owner}/${repo_identifier}/webhooks/${repo_webhook_id}.json + url: /api/${init_repo_owner}/${init_repo_identifier}/webhooks/${repo_webhook_id}.json method: DELETE headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${admin_cookies} cookies: request_type: params payload: @@ -51,5 +44,5 @@ case_info: case_dependence: setup: interface: - # 新建webhook - - gitlink_get_repo_add_webhook_03 + # 前置条件:新建webhook + - gitlink_repo_add_webhook_03 diff --git a/interface/gitlink/projects/webhook/test_gitlink_get_repo_update_webhook.yaml b/interface/gitlink/projects/webhook/test_gitlink_repo_update_webhook.yaml similarity index 82% rename from interface/gitlink/projects/webhook/test_gitlink_get_repo_update_webhook.yaml rename to interface/gitlink/projects/webhook/test_gitlink_repo_update_webhook.yaml index 35b8fad..7c817ac 100644 --- a/interface/gitlink/projects/webhook/test_gitlink_get_repo_update_webhook.yaml +++ b/interface/gitlink/projects/webhook/test_gitlink_repo_update_webhook.yaml @@ -4,20 +4,12 @@ case_common: allure_story: Webhook case_markers: - gitlink + - projects - gitea - webhook - usefixtures: gitlink_login # 前提条件:仅仓库管理员及以上角色才有权限,当前仓库存在webhook -common_dependence: - setup: - interface: - # 新建私有仓库 - - gitlink_projects_new_project_02 - teardown: - interface: - # 删除仓库 - - gitlink_projects_delete_project_01 case_info: - @@ -25,11 +17,11 @@ case_info: title: 仓库管理员更新Webhook,更新成功 severity: normal run: True - url: /api/${repo_owner}/${repo_identifier}/webhooks/${repo_webhook_id}.json + url: /api/${init_repo_owner}/${init_repo_identifier}/webhooks/${repo_webhook_id}.json method: PATCH headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${admin_cookies} cookies: request_type: json payload: @@ -60,8 +52,8 @@ case_info: setup: interface: # 新建webhook - - gitlink_get_repo_add_webhook_03 + - gitlink_repo_add_webhook_03 teardown: interface: # 删除webhook - - gitlink_get_repo_delete_webhook_01 \ No newline at end of file + - gitlink_repo_delete_webhook_01 \ No newline at end of file diff --git a/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_test.yaml b/interface/gitlink/projects/webhook/test_gitlink_repo_webhook_test.yaml similarity index 69% rename from interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_test.yaml rename to interface/gitlink/projects/webhook/test_gitlink_repo_webhook_test.yaml index 9c61267..1704ed8 100644 --- a/interface/gitlink/projects/webhook/test_gitlink_get_repo_webhook_test.yaml +++ b/interface/gitlink/projects/webhook/test_gitlink_repo_webhook_test.yaml @@ -4,32 +4,25 @@ case_common: allure_story: Webhook case_markers: - gitlink + - projects - gitea - webhook - usefixtures: gitlink_login # 前提条件:仅仓库管理员及以上角色才有权限,当前仓库存在webhook -common_dependence: - setup: - interface: - # 新建私有仓库 - - gitlink_projects_new_project_02 - teardown: - interface: - # 删除仓库 - - gitlink_projects_delete_project_01 + case_info: - - id: gitlink_get_repo_webhook_test_01 + id: gitlink_repo_webhook_test_01 title: 仓库管理员测试Webhook推送,请求成功 severity: normal run: True - url: /api/${repo_owner}/${repo_identifier}/webhooks/${repo_webhook_id}/test.json + url: /api/${init_repo_owner}/${init_repo_identifier}/webhooks/${repo_webhook_id}/test.json method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${admin_cookies} cookies: request_type: json payload: @@ -52,8 +45,8 @@ case_info: setup: interface: # 新建webhook - - gitlink_get_repo_add_webhook_03 + - gitlink_repo_add_webhook_03 teardown: interface: # 删除webhook - - gitlink_get_repo_delete_webhook_01 + - gitlink_repo_delete_webhook_01 diff --git a/interface/gitlink/projects/wiki/test_gitlink_repo_delete_wiki.yaml b/interface/gitlink/projects/wiki/test_gitlink_repo_delete_wiki.yaml index 177d877..d6f5137 100644 --- a/interface/gitlink/projects/wiki/test_gitlink_repo_delete_wiki.yaml +++ b/interface/gitlink/projects/wiki/test_gitlink_repo_delete_wiki.yaml @@ -12,9 +12,13 @@ case_common: common_dependence: setup: - env_vars: - env_page_title: 新页面_${generate_words()} - env_page_content: ${generate_paragraph} + interface: + # 前置条件:新建项目 + - gitlink_projects_new_project_01 + teardown: + interface: + # 后置处理:删除项目 + - gitlink_projects_delete_project_01 case_info: - @@ -22,17 +26,17 @@ case_info: title: 删除wiki页面 severity: critical run: True - url: ${wiki_host}/api/wiki/deleteWiki + url: ${wiki_host}/api/wiki/open/deleteWiki method: DELETE headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: - owner: ${env_repo_owner} # 必填,仓库拥有者标识 - repo: ${env_repo_identifier} # 必填,仓库标识 - projectId: ${env_project_id} # 必填 gitlink项目id + owner: ${init_repo_owner} # 必填,仓库拥有者标识 + repo: ${init_repo_identifier} # 必填,仓库标识 + projectId: ${project_id} # 必填 gitlink项目id pageName: ${env_page_title} # 必填,当前页标题 files: assert_response: @@ -46,4 +50,8 @@ case_info: extract: case_dependence: setup: + env_vars: + page_title: 新页面_${generate_words()} + page_content: ${generate_paragraph} + # 前置条件:新建wiki页面 interface: gitlink_repo_new_wiki_01 diff --git a/interface/gitlink/projects/wiki/test_gitlink_repo_export_wiki.yaml b/interface/gitlink/projects/wiki/test_gitlink_repo_export_wiki.yaml index a532629..c21eb8f 100644 --- a/interface/gitlink/projects/wiki/test_gitlink_repo_export_wiki.yaml +++ b/interface/gitlink/projects/wiki/test_gitlink_repo_export_wiki.yaml @@ -25,13 +25,13 @@ case_info: method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: - owner: ${env_repo_owner} # 必填,仓库拥有者标识 - repoName: ${env_repo_identifier} # 必填,仓库标识 - projectId: ${env_project_id} # 必填 gitlink项目id + owner: ${init_repo_owner} # 必填,仓库拥有者标识 + repoName: ${init_repo_identifier} # 必填,仓库标识 + projectId: ${project_id} # 必填 gitlink项目id projectName: ${repo_project_name} # 必填,项目名称 type: pdf # 类型,pdf or markdown or html files: @@ -51,13 +51,13 @@ case_info: method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: - owner: ${env_repo_owner} # 必填,仓库拥有者标识 - repoName: ${env_repo_identifier} # 必填,仓库标识 - projectId: ${env_project_id} # 必填 gitlink项目id + owner: ${init_repo_owner} # 必填,仓库拥有者标识 + repoName: ${init_repo_identifier} # 必填,仓库标识 + projectId: ${project_id} # 必填 gitlink项目id projectName: ${repo_project_name} # 必填,项目名称 type: markdown # 类型,pdf or markdown or html files: @@ -76,13 +76,13 @@ case_info: method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: - owner: ${env_repo_owner} # 必填,仓库拥有者标识 - repoName: ${env_repo_identifier} # 必填,仓库标识 - projectId: ${env_project_id} # 必填 gitlink项目id + owner: ${init_repo_owner} # 必填,仓库拥有者标识 + repoName: ${init_repo_identifier} # 必填,仓库标识 + projectId: ${project_id} # 必填 gitlink项目id projectName: ${repo_project_name} # 必填,项目名称 type: html # 类型,pdf or markdown or html files: diff --git a/interface/gitlink/projects/wiki/test_gitlink_repo_get_wiki_detail.yaml b/interface/gitlink/projects/wiki/test_gitlink_repo_get_wiki_detail.yaml index 622c3d4..ad3c340 100644 --- a/interface/gitlink/projects/wiki/test_gitlink_repo_get_wiki_detail.yaml +++ b/interface/gitlink/projects/wiki/test_gitlink_repo_get_wiki_detail.yaml @@ -26,17 +26,17 @@ case_info: title: 获取wiki页面详情 severity: normal run: True - url: ${wiki_host}/api/wiki/getWiki + url: ${wiki_host}/api/wiki/open/getWiki method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: - owner: ${env_repo_owner} # 必填,仓库拥有者标识 - repo: ${env_repo_identifier} # 必填,仓库标识 - projectId: ${env_project_id} # 必填 gitlink项目id + owner: ${init_repo_owner} # 必填,仓库拥有者标识 + repo: ${init_repo_identifier} # 必填,仓库标识 + projectId: ${project_id} # 必填 gitlink项目id pageName: ${wiki_page_sub_url} # 必填,当前页标题 (特殊字符处理后的标题) files: assert_response: diff --git a/interface/gitlink/projects/wiki/test_gitlink_repo_get_wiki_page.yaml b/interface/gitlink/projects/wiki/test_gitlink_repo_get_wiki_page.yaml index 365abb5..a6bb76e 100644 --- a/interface/gitlink/projects/wiki/test_gitlink_repo_get_wiki_page.yaml +++ b/interface/gitlink/projects/wiki/test_gitlink_repo_get_wiki_page.yaml @@ -16,17 +16,17 @@ case_info: title: 获取wiki库所有页面 severity: normal run: True - url: ${wiki_host}/api/wiki/wikiPages + url: ${wiki_host}/api/wiki/open/wikiPages method: GET headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: params payload: - owner: ${env_repo_owner} # 必填,仓库拥有者标识 - repo: ${env_repo_identifier} # 必填,仓库标识 - projectId: ${env_project_id} # 必填 gitlink项目id + owner: ${init_repo_owner} # 必填,仓库拥有者标识 + repo: ${init_repo_identifier} # 必填,仓库标识 + projectId: ${project_id} # 必填 gitlink项目id files: assert_response: status_code: 200 diff --git a/interface/gitlink/projects/wiki/test_gitlink_repo_get_wiki_sidebar.yaml b/interface/gitlink/projects/wiki/test_gitlink_repo_get_wiki_sidebar.yaml index f19a4fb..da620af 100644 --- a/interface/gitlink/projects/wiki/test_gitlink_repo_get_wiki_sidebar.yaml +++ b/interface/gitlink/projects/wiki/test_gitlink_repo_get_wiki_sidebar.yaml @@ -6,8 +6,6 @@ case_common: - gitlink - repo_wiki - gitea - - usefixtures: gitlink_login - - skip: 暂时跳过 case_info: @@ -15,27 +13,32 @@ case_info: id: gitlink_repo_get_wiki_sidebar_01 title: 获取wiki库的sidebar信息 severity: normal - run: True - url: ${wiki_host}/api/wiki/getWiki + run: False + url: ${wiki_host}/api/wiki/open/getWiki method: GET headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Content-Type: application/json + Cookie: ${cookies} cookies: request_type: params payload: - owner: ${env_repo_owner} # 必填,仓库拥有者标识 - repo: ${env_repo_identifier} # 必填,仓库标识 - projectId: ${env_project_id} # 必填 gitlink项目id + owner: ${init_repo_owner} # 必填,仓库拥有者标识 + repo: ${init_repo_identifier} # 必填,仓库标识 + projectId: ${project_id} # 必填 gitlink项目id pageName: _Sidebar files: assert_response: status_code: 200 assertMessage: message: 断言接口返回的message + expect_value: 操作成功 + assert_type: == + type_jsonpath: $.msg + assertCode: + message: 断言接口返回的code expect_value: 200 assert_type: == - type_jsonpath: $.message + type_jsonpath: $.code assert_sql: extract: type_jsonpath: diff --git a/interface/gitlink/projects/wiki/test_gitlink_repo_import_wiki.yaml b/interface/gitlink/projects/wiki/test_gitlink_repo_import_wiki.yaml index db3f2c3..bbbd142 100644 --- a/interface/gitlink/projects/wiki/test_gitlink_repo_import_wiki.yaml +++ b/interface/gitlink/projects/wiki/test_gitlink_repo_import_wiki.yaml @@ -7,21 +7,33 @@ case_common: - repo_wiki - gitea - usefixtures: gitlink_login - - skip: 暂时跳过 # 仅支持txt, markdown文件的导入 +common_dependence: + setup: + env_vars: + page_title: 新页面_${generate_words()} + page_content: ${generate_paragraph} + interface: + # 前置条件:新建项目 + - gitlink_projects_new_project_01 + teardown: + interface: + # 后置处理:删除项目 + - gitlink_projects_delete_project_01 + case_info: - id: gitlink_repo_import_wiki_01 title: 导入wiki页面(txt文件), 导入成功 severity: critical run: True - url: ${wiki_host}/api/wikiExport/uploadWiki/${env_repo_owner}/${env_repo_identifier}/${env_project_id} + url: ${wiki_host}/api/wiki/open/uploadWiki/${repo_owner}/${repo_identifier}/${project_id} method: POST headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Content-Type: application/json + Cookie: ${cookies} cookies: request_type: file payload: @@ -33,14 +45,13 @@ case_info: message: 断言接口返回的message expect_value: 201 assert_type: == - type_jsonpath: $.message + type_jsonpath: $.code assert_sql: extract: + response: + type_re: + wiki_page_name: case_dependence: - teardown: - env_vars: - env_page_title: GitLink,新一代开源创新服务平台 - interface: gitlink_repo_delete_wiki_01 - @@ -48,11 +59,11 @@ case_info: title: 导入wiki页面(md文件), 导入成功 severity: critical run: True - url: ${wiki_host}/api/wikiExport/uploadWiki/${env_repo_owner}/${env_repo_identifier}/${env_project_id} + url: ${wiki_host}/api/wiki/open/uploadWiki/${repo_owner}/${repo_identifier}/${project_id} method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: file payload: @@ -64,12 +75,8 @@ case_info: message: 断言接口返回的message expect_value: 201 assert_type: == - type_jsonpath: $.message + type_jsonpath: $.code assert_sql: extract: case_dependence: - teardown: - env_vars: - env_page_title: GitLink编程夏令营(GLCC) - interface: gitlink_repo_delete_wiki_01 diff --git a/interface/gitlink/projects/wiki/test_gitlink_repo_new_wiki.yaml b/interface/gitlink/projects/wiki/test_gitlink_repo_new_wiki.yaml index ab722c5..30d656a 100644 --- a/interface/gitlink/projects/wiki/test_gitlink_repo_new_wiki.yaml +++ b/interface/gitlink/projects/wiki/test_gitlink_repo_new_wiki.yaml @@ -6,51 +6,50 @@ case_common: - gitlink - repo_wiki - gitea - - new_wiki - usefixtures: gitlink_login common_dependence: setup: env_vars: - env_page_title: 新页面_${generate_words()} - env_page_content: ${generate_paragraph} + page_title: 新页面_${generate_words()} + page_content: ${generate_paragraph} + interface: + # 前置条件:新建项目 + - gitlink_projects_new_project_01 + teardown: + interface: + # 后置处理:删除项目 + - gitlink_projects_delete_project_01 case_info: -- - id: gitlink_repo_new_wiki_01 - title: 新建wiki页面 - severity: critical - run: True - url: ${wiki_host}/api/wiki/createWiki - method: POST - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - cookies: - request_type: json - payload: - owner: ${env_repo_owner} # 必填,仓库拥有者标识 - repo: ${env_repo_identifier} # 必填,仓库标识 - projectId: ${env_project_id} # 必填 gitlink项目id - pageName: ${env_page_title} # 必填,当前页标题 - title: ${env_page_title} # 必填,标题 - message: # 选填,提交信息 - content_base64: ${string_to_base64('${env_page_content}')} # 必填,wiki内容 - files: - assert_response: + - id: gitlink_repo_new_wiki_01 + title: 新建wiki页面, 新建成功 + severity: critical + run: True + url: ${wiki_host}/api/wiki/open/createWiki + method: POST + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${admin_cookies} + cookies: + request_type: json + payload: + owner: ${repo_owner} # 必填,仓库拥有者标识 + repo: ${repo_identifier} # 必填,仓库标识 + projectId: ${project_id} # 必填 gitlink项目id + pageName: ${page_title} # 必填,当前页标题 + title: ${page_title} # 必填,标题 + message: # 选填,提交信息 + content_base64: ${string_to_base64('${page_content}')} # 必填,wiki内容 + files: + assert_response: status_code: 200 - assertMessage: - message: 断言接口返回的message + assertCode: + message: 断言接口返回的code expect_value: 201 assert_type: == - type_jsonpath: $.message - assert_sql: - extract: - case_dependence: - setup: - interface: gitlink_repo_get_wiki_sidebar_01 - teardown: - interface: - - gitlink_repo_update_wiki_sidebar_01 -# - gitlink_repo_delete_wiki_01 + type_jsonpath: $.code + assert_sql: + extract: + case_dependence: diff --git a/interface/gitlink/projects/wiki/test_gitlink_repo_new_wiki_sidebar.yaml b/interface/gitlink/projects/wiki/test_gitlink_repo_new_wiki_sidebar.yaml new file mode 100644 index 0000000..cca86d8 --- /dev/null +++ b/interface/gitlink/projects/wiki/test_gitlink_repo_new_wiki_sidebar.yaml @@ -0,0 +1,42 @@ +case_common: + allure_epic: GitLink接口 + allure_feature: 开源项目模块 + allure_story: Wiki + case_markers: + - gitlink + - repo_wiki + - gitea + + + +case_info: + - id: gitlink_repo_new_wiki_sidebar_01 + title: 新建wiki sibebar, 新建成功 + severity: critical + run: False + url: ${wiki_host}/api/wiki/open/createWiki + method: POST + headers: + Content-Type: application/json; charset=utf-8; + Cookie: ${admin_cookies} + cookies: + request_type: json + payload: + owner: ${init_repo_owner} + repo: ${init_repo_identifier} + projectId: ${project_id} + pageName: _Sidebar + title: _Sidebar + message: + content_base64: + files: + assert_response: + status_code: 200 + assertCode: + message: 断言接口返回的code + expect_value: 201 + assert_type: == + type_jsonpath: $.code + assert_sql: + extract: + case_dependence: diff --git a/interface/gitlink/projects/wiki/test_gitlink_repo_update_wiki.yaml b/interface/gitlink/projects/wiki/test_gitlink_repo_update_wiki.yaml index 60d029f..14467a0 100644 --- a/interface/gitlink/projects/wiki/test_gitlink_repo_update_wiki.yaml +++ b/interface/gitlink/projects/wiki/test_gitlink_repo_update_wiki.yaml @@ -16,11 +16,17 @@ case_common: common_dependence: setup: env_vars: - env_page_title: 新页面_${generate_words()} - env_page_content: ${generate_paragraph} - interface: gitlink_repo_new_wiki_01 + page_title: 新页面_${generate_words()} + page_content: ${generate_paragraph} + interface: + # 前置条件:新建项目 + - gitlink_projects_new_project_01 + # 前置条件:新建wiki页面 + - gitlink_repo_new_wiki_01 teardown: - interface: gitlink_repo_delete_wiki_01 + interface: + # 后置处理:删除项目 + - gitlink_projects_delete_project_01 case_info: - @@ -28,17 +34,17 @@ case_info: title: 编辑wiki页面 severity: critical run: True - url: ${wiki_host}/api/wiki/updateWiki + url: ${wiki_host}/api/wiki/open/updateWiki method: PUT headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: - owner: ${env_repo_owner} # 必填,仓库拥有者标识 - repo: ${env_repo_identifier} # 必填,仓库标识 - projectId: ${env_project_id} # 必填 gitlink项目id + owner: ${repo_owner} # 必填,仓库拥有者标识 + repo: ${repo_identifier} # 必填,仓库标识 + projectId: ${project_id} # 必填 gitlink项目id pageName: ${env_page_title} # 必填,当前页标题 title: ${env_page_title} # 必填,标题 message: # 选填,提交信息 @@ -54,3 +60,7 @@ case_info: assert_sql: extract: case_dependence: + setup: + env_vars: + page_title: 更新页面_${generate_words()} + page_content: ${generate_paragraph} diff --git a/interface/gitlink/projects/wiki/test_gitlink_repo_update_wiki_sidebar.yaml b/interface/gitlink/projects/wiki/test_gitlink_repo_update_wiki_sidebar.yaml index fbbc630..58eab5c 100644 --- a/interface/gitlink/projects/wiki/test_gitlink_repo_update_wiki_sidebar.yaml +++ b/interface/gitlink/projects/wiki/test_gitlink_repo_update_wiki_sidebar.yaml @@ -6,8 +6,6 @@ case_common: - gitlink - repo_wiki - gitea - - usefixtures: gitlink_login - - skip: 暂时跳过 # 前提条件:新建wiki页面是需要同步更新sidebar @@ -17,18 +15,18 @@ case_info: id: gitlink_repo_update_wiki_sidebar_01 title: 更新wiki库的sidebar severity: critical - run: false - url: ${wiki_host}/api/wiki/updateWiki + run: False + url: ${wiki_host}/api/wiki/open/updateWiki method: PUT headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: - owner: ${env_repo_owner} # 必填,仓库拥有者标识 - repo: ${env_repo_identifier} # 必填,仓库标识 - projectId: ${env_project_id} # 必填 gitlink项目id + owner: ${init_repo_owner} # 必填,仓库拥有者标识 + repo: ${init_repo_identifier} # 必填,仓库标识 + projectId: ${project_id} # 必填 gitlink项目id pageName: _Sidebar title: _Sidebar message: 更新sidebar文件 # 选填,提交信息 @@ -36,11 +34,11 @@ case_info: files: assert_response: status_code: 200 - assertMessage: - message: 断言接口返回的message + assertCode: + message: 断言接口返回的code expect_value: 200 assert_type: == - type_jsonpath: $.message + type_jsonpath: $.code assert_sql: extract: case_dependence: diff --git a/interface/gitlink/test_gitlink_login.yaml b/interface/gitlink/test_gitlink_login.yaml index c08580c..972f99e 100644 --- a/interface/gitlink/test_gitlink_login.yaml +++ b/interface/gitlink/test_gitlink_login.yaml @@ -144,5 +144,8 @@ case_info: type_jsonpath: $.login assert_sql: extract: - type_response: - cookies: response.cookies + response: + type_response: + admin_cookies: response.cookies + type_jsonpath: + user_id: $.user_id diff --git a/interface/gitlink/users/test_gitlink_user_change_email.yaml b/interface/gitlink/users/test_gitlink_user_change_email.yaml index c2e0183..7c0943e 100644 --- a/interface/gitlink/users/test_gitlink_user_change_email.yaml +++ b/interface/gitlink/users/test_gitlink_user_change_email.yaml @@ -20,7 +20,7 @@ case_info: method: PATCH headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: diff --git a/interface/gitlink/users/test_gitlink_user_change_password.yaml b/interface/gitlink/users/test_gitlink_user_change_password.yaml index 44b7a5b..7270346 100644 --- a/interface/gitlink/users/test_gitlink_user_change_password.yaml +++ b/interface/gitlink/users/test_gitlink_user_change_password.yaml @@ -20,7 +20,7 @@ case_info: method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: @@ -53,7 +53,7 @@ case_info: method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: diff --git a/interface/gitlink/users/test_gitlink_user_change_phone.yaml b/interface/gitlink/users/test_gitlink_user_change_phone.yaml index 8eca2df..190fb21 100644 --- a/interface/gitlink/users/test_gitlink_user_change_phone.yaml +++ b/interface/gitlink/users/test_gitlink_user_change_phone.yaml @@ -19,7 +19,7 @@ case_info: method: PATCH headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: diff --git a/interface/gitlink/users/test_gitlink_user_register.yaml b/interface/gitlink/users/test_gitlink_user_register.yaml index 8dc8e44..7183189 100644 --- a/interface/gitlink/users/test_gitlink_user_register.yaml +++ b/interface/gitlink/users/test_gitlink_user_register.yaml @@ -20,8 +20,8 @@ case_info: cookies: request_type: json payload: - namespace: ${generate_identifier} - login: ${generate_email()} + namespace: test${generate_identifier} + login: test${generate_email()} password: ${env_password} password_confirmation: ${env_password} code: ${green_code} @@ -43,7 +43,7 @@ case_info: cookies: request_type: json payload: - namespace: ${generate_identifier} + namespace: test${generate_identifier} login: ${generate_phone(lan='zh')} password: ${env_password} password_confirmation: ${env_password} diff --git a/interface/glcc/test_glcc_get_apply_information.yaml b/interface/glcc/test_glcc_get_apply_information.yaml index d8cd08e..54ae3a6 100644 --- a/interface/glcc/test_glcc_get_apply_information.yaml +++ b/interface/glcc/test_glcc_get_apply_information.yaml @@ -3,7 +3,6 @@ case_common: allure_feature: 开源夏令营模块 allure_story: 获取项目列表接口 case_markers: - - gitlink - glcc - skip: 跳过执行该用例 @@ -16,7 +15,7 @@ case_info: url: ${glcc_host}/api/applyInformation/list method: GET headers: - Content-Type": application/json; charset=utf-8; + Content-Type: application/json; charset=utf-8; cookies: request_type: params payload: @@ -36,7 +35,8 @@ case_info: run: True url: ${glcc_host}/api/applyInformation/taskList method: GET - headers: {"Content-Type": "application/json; charset=utf-8;"} + headers: + Content-Type: application/json; charset=utf-8; cookies: request_type: params payload: diff --git a/interface/glcc/test_glcc_get_project_category_list.yml b/interface/glcc/test_glcc_get_project_category_list.yml index 2e92d67..cff5571 100644 --- a/interface/glcc/test_glcc_get_project_category_list.yml +++ b/interface/glcc/test_glcc_get_project_category_list.yml @@ -3,7 +3,6 @@ case_common: allure_feature: 项目报名 allure_story: 获取项目列表接口 case_markers: - - gitlink - glcc case_info: @@ -15,7 +14,7 @@ case_info: url: /api/project_categories/pinned_index.json method: GET headers: - Content-Type": application/json; charset=utf-8; + Content-Type: application/json; charset=utf-8; cookies: request_type: params payload: diff --git a/interface/glcc/test_glcc_get_project_reward_list.yaml b/interface/glcc/test_glcc_get_project_reward_list.yaml index 2a67dd5..8081a3a 100644 --- a/interface/glcc/test_glcc_get_project_reward_list.yaml +++ b/interface/glcc/test_glcc_get_project_reward_list.yaml @@ -3,7 +3,6 @@ case_common: allure_feature: 项目报名 allure_story: 获取课题奖励方式列表 case_markers: - - gitlink - glcc @@ -16,7 +15,7 @@ case_info: url: ${glcc_host}/api/glccSettings/settingList method: GET headers: - Content-Type": application/json; charset=utf-8; + Content-Type: application/json; charset=utf-8; cookies: request_type: params payload: diff --git a/interface/glcc/test_glcc_teacher_apply_project.yaml b/interface/glcc/test_glcc_teacher_apply_project.yaml index 4173107..9f591f4 100644 --- a/interface/glcc/test_glcc_teacher_apply_project.yaml +++ b/interface/glcc/test_glcc_teacher_apply_project.yaml @@ -23,7 +23,7 @@ case_info: url: ${glcc_host}/api/applyInformation/create method: POST headers: - Content-Type": application/json; charset=utf-8; + Content-Type: application/json; charset=utf-8; cookies: request_type: json payload: diff --git a/interface/glcc/test_glcc_upload_files.yaml b/interface/glcc/test_glcc_upload_files.yaml index 78ab70f..c4b0302 100644 --- a/interface/glcc/test_glcc_upload_files.yaml +++ b/interface/glcc/test_glcc_upload_files.yaml @@ -18,7 +18,7 @@ case_info: url: /api/attachments.json method: POST headers: - cookies: ${cookie} + Cookie: ${cookie} Content-Type: application/json; charset=utf-8; cookies: request_type: file diff --git a/interface/pms/open_close_enterprise/test_pms_open_enterprise.yaml b/interface/pms/open_close_enterprise/test_pms_open_enterprise.yaml index b9a5365..851ca65 100644 --- a/interface/pms/open_close_enterprise/test_pms_open_enterprise.yaml +++ b/interface/pms/open_close_enterprise/test_pms_open_enterprise.yaml @@ -32,7 +32,7 @@ case_info: userId: ${env_user_id} roleKey: pms_org_admin files: - wait_seconds: 6 + wait_seconds: 20 assert_response: status_code: 200 assertMessage: diff --git a/interface/pms/products/product_module/test_pms_edit_product_module.yaml b/interface/pms/products/product_module/test_pms_edit_product_module.yaml index 6254f5e..3a50bfc 100644 --- a/interface/pms/products/product_module/test_pms_edit_product_module.yaml +++ b/interface/pms/products/product_module/test_pms_edit_product_module.yaml @@ -142,36 +142,3 @@ case_info: interface: - pms_delete_product_children_module_02 - -- - id: pms_edit_product_module_05 - title: 产品下编辑子级模块接口 - 模块名称重复,更新失败 - run: True - severity: normal - url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProductModule - method: PUT - headers: - Content-Type: application/json; charset=utf-8; - cookies: ${cookies} - request_type: json - payload: - id: ${product_module_children_id} - moduleName: ${product_module_name} - parentId: ${product_module_id} - files: - assert_response: - status_code: 200 - assertMessage: - type_jsonpath: $.msg - expect_value: 该模块名称已存在 - assert_type: contains - assert_sql: - extract: - case_dependence: - setup: - interface: - - pms_get_product_module_detail_01 - - pms_new_product_module_children_02 - teardown: - interface: - - pms_delete_product_children_module_02 \ No newline at end of file diff --git a/interface/pms/products/product_module/test_pms_new_product_module.yaml b/interface/pms/products/product_module/test_pms_new_product_module.yaml index c402609..e343ced 100644 --- a/interface/pms/products/product_module/test_pms_new_product_module.yaml +++ b/interface/pms/products/product_module/test_pms_new_product_module.yaml @@ -70,6 +70,9 @@ case_info: extract: type_jsonpath: product_module_children_id: $.data + case: + type_jsonpath: + product_module_name: $.payload.moduleName case_dependence: setup: interface: pms_new_product_module_01 @@ -151,7 +154,7 @@ case_info: status_code: 200 assertMessage: type_jsonpath: $.msg - expect_value: 该模块名称已存在 + expect_value: 父模块下已存在该模块名称 assert_type: contains assert_sql: extract: diff --git a/interface/pms/products/product_requirement_journal/test_pms_delete_journal.yaml b/interface/pms/products/product_requirement_journal/test_pms_delete_journal.yaml index 1de6bfc..aa5840a 100644 --- a/interface/pms/products/product_requirement_journal/test_pms_delete_journal.yaml +++ b/interface/pms/products/product_requirement_journal/test_pms_delete_journal.yaml @@ -41,7 +41,7 @@ case_info: case_dependence: setup: interface: - - pms_upload_file_01 + - pms_upload_file_product_01 - pms_add_journal_01 - @@ -68,9 +68,9 @@ case_info: case_dependence: setup: interface: - - pms_upload_file_01 + - pms_upload_file_product_01 - pms_add_journal_01 - - pms_upload_file_01 + - pms_upload_file_product_01 - pms_get_journal_list_01 - pms_add_journal_reply_02 - pms_get_journal_list_01 \ No newline at end of file diff --git a/interface/pms/products/product_requirement_journal/test_pms_edit_journal.yaml b/interface/pms/products/product_requirement_journal/test_pms_edit_journal.yaml index 453b673..e9dd020 100644 --- a/interface/pms/products/product_requirement_journal/test_pms_edit_journal.yaml +++ b/interface/pms/products/product_requirement_journal/test_pms_edit_journal.yaml @@ -44,9 +44,9 @@ case_info: case_dependence: setup: interface: - - pms_upload_file_01 + - pms_upload_file_product_01 - pms_add_journal_01 - - pms_upload_file_01 + - pms_upload_file_product_01 - id: pms_edit_journal_reply_02 @@ -75,10 +75,10 @@ case_info: case_dependence: setup: interface: - - pms_upload_file_01 + - pms_upload_file_product_01 - pms_add_journal_01 - - pms_upload_file_01 + - pms_upload_file_product_01 - pms_get_journal_list_01 - pms_add_journal_reply_02 - - pms_upload_file_01 + - pms_upload_file_product_01 - pms_get_journal_list_01 \ No newline at end of file diff --git a/interface/pms/projects/project/test_pms_edit_project.yaml b/interface/pms/projects/project/test_pms_edit_project.yaml index 7fcd911..ca1ef56 100644 --- a/interface/pms/projects/project/test_pms_edit_project.yaml +++ b/interface/pms/projects/project/test_pms_edit_project.yaml @@ -69,8 +69,8 @@ case_info: - id: pms_edit_project_03 - title: 组织下编辑项目接口 - 项目名称长度51,编辑失败 - run: True + title: 组织下编辑项目接口 - 项目名称长度51,编辑失败(开发说无法校验长度) + run: False severity: normal url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProject method: PUT @@ -123,8 +123,8 @@ case_info: - id: pms_edit_project_05 - title: 组织下编辑项目接口 - 项目简介长度201,编辑失败 - run: True + title: 组织下编辑项目接口 - 项目简介长度201,编辑失败(开发说无法校验长度) + run: False severity: normal url: ${pms_host}/api/pms/${env_enterprise_identifier}/pmsProject method: PUT diff --git a/interface/pms/repository/test_pms_delete_repo.yaml b/interface/pms/repository/test_pms_delete_repo.yaml index 1e89442..5cafa50 100644 --- a/interface/pms/repository/test_pms_delete_repo.yaml +++ b/interface/pms/repository/test_pms_delete_repo.yaml @@ -21,7 +21,7 @@ case_info: method: delete headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: diff --git a/interface/pms/repository/test_pms_new_repo.yaml b/interface/pms/repository/test_pms_new_repo.yaml index 61e03d9..9a8c2f6 100644 --- a/interface/pms/repository/test_pms_new_repo.yaml +++ b/interface/pms/repository/test_pms_new_repo.yaml @@ -21,14 +21,15 @@ case_info: method: POST headers: Content-Type: application/json; charset=utf-8; - cookies: ${cookies} + Cookie: ${cookies} cookies: request_type: json payload: - user_id: ${env_organization_id} + user_id: ${env_gitlink_org_id} name: test_${generate_identifier()}_${generate_identifier()} repository_name: ${generate_identifier()}_test description: + private: true files: assert_response: status_code: 200 diff --git a/interface/pms/settings/tag_setting/product_requirement_tag/test_pms_deletet_product_requirement_tag.yaml b/interface/pms/settings/tag_setting/product_requirement_tag/test_pms_deletet_product_requirement_tag.yaml index a43dd9d..d9391bf 100644 --- a/interface/pms/settings/tag_setting/product_requirement_tag/test_pms_deletet_product_requirement_tag.yaml +++ b/interface/pms/settings/tag_setting/product_requirement_tag/test_pms_deletet_product_requirement_tag.yaml @@ -36,7 +36,7 @@ case_info: interface: # 新建产品需求标记 - pms_new_product_requirement_tag_01 - - # 获取产品需求标记id + # 获取产品需求标记id - pms_get_product_requirement_tag_list_by_name_02 - id: pms_delete_product_requirement_tag_02 diff --git a/interface/pms/settings/tag_setting/product_requirement_tag/test_pms_edit_product_requirement_tag.yaml b/interface/pms/settings/tag_setting/product_requirement_tag/test_pms_edit_product_requirement_tag.yaml index c309a09..c70d214 100644 --- a/interface/pms/settings/tag_setting/product_requirement_tag/test_pms_edit_product_requirement_tag.yaml +++ b/interface/pms/settings/tag_setting/product_requirement_tag/test_pms_edit_product_requirement_tag.yaml @@ -40,7 +40,7 @@ case_info: interface: # 新建产品需求标记 - pms_new_product_requirement_tag_01 - - # 获取产品需求标记id + # 获取产品需求标记id - pms_get_product_requirement_tag_list_by_name_02 teardown: interface: diff --git a/interface/pms/settings/tag_setting/work_item_tag/test_pms_get_work_item_tag_list.yaml b/interface/pms/settings/tag_setting/work_item_tag/test_pms_get_work_item_tag_list.yaml index ea0030c..e20fed7 100644 --- a/interface/pms/settings/tag_setting/work_item_tag/test_pms_get_work_item_tag_list.yaml +++ b/interface/pms/settings/tag_setting/work_item_tag/test_pms_get_work_item_tag_list.yaml @@ -22,7 +22,7 @@ case_info: cookies: ${cookies} request_type: params payload: - organizationId: ${env_organization_id} + organizationId: ${env_gitlink_org_id} files: assert_response: status_code: 200 @@ -47,7 +47,7 @@ case_info: cookies: ${cookies} request_type: params payload: - organizationId: 105 + organizationId: ${env_gitlink_org_id} tagName: 新标记 files: assert_response: diff --git a/interface/pms/settings/tag_setting/work_item_tag/test_pms_new_work_item_tag.yaml b/interface/pms/settings/tag_setting/work_item_tag/test_pms_new_work_item_tag.yaml index 716ade6..7cd6e77 100644 --- a/interface/pms/settings/tag_setting/work_item_tag/test_pms_new_work_item_tag.yaml +++ b/interface/pms/settings/tag_setting/work_item_tag/test_pms_new_work_item_tag.yaml @@ -22,7 +22,7 @@ case_info: cookies: ${cookies} request_type: json payload: - organizationId: ${env_organization_id} + organizationId: ${env_gitlink_org_id} name: 新标记-${generate_words}_${generate_words} description: ${generate_paragraph} color: ${faker.hex_color()} @@ -49,7 +49,7 @@ case_info: cookies: ${cookies} request_type: json payload: - organizationId: ${env_organization_id} + organizationId: ${env_gitlink_org_id} description: ${generate_paragraph} color: ${faker.hex_color()} files: diff --git a/interface/pms/test_pms_upload_files.yaml b/interface/pms/test_pms_upload_files.yaml index 01d0814..c3de600 100644 --- a/interface/pms/test_pms_upload_files.yaml +++ b/interface/pms/test_pms_upload_files.yaml @@ -62,7 +62,7 @@ case_info: - id: pms_upload_file_org_doc_03 - title: 上传附件(type=pms) - 组织知识库/项目知识库 + title: 上传附件(type=pms) - 组织知识库 severity: run: true url: ${pms_host}/api/file/common/upload?type=pms&hierarchy=${env_enterprise_identifier}/docs/0 @@ -91,7 +91,7 @@ case_info: title: 上传附件(type=pms) - 项目知识库 severity: run: true - url: ${pms_host}/api/file/common/upload?type=pms&hierarchy=${env_enterprise_identifier}/docs/${project_id} + url: ${pms_host}/api/file/common/upload?type=pms&hierarchy=${env_enterprise_identifier}/docs/${pms_project_id} method: POST headers: Content-Type: application/json; charset=utf-8; diff --git a/test_case/conftest.py b/test_case/conftest.py index d070c0d..845efac 100644 --- a/test_case/conftest.py +++ b/test_case/conftest.py @@ -78,3 +78,69 @@ def get_oauth_token(): key="gitlink_login_oauth_token_01", global_var=GLOBAL_VARS) GLOBAL_VARS.update(res) + + +@pytest.fixture(scope="session", autouse=True) +def init_data(): + """ + 运行测试之前,初始化数据 + """ + logger.info("Start ----- 开始初始化数据...") + with (allure.step("平台管理员登录")): + admin_cookies = RequestControl().api_request_flow( + api_file_path=os.path.join(GITLINK_DIR, "test_gitlink_login.yaml"), + key="gitlink_super_login_04", global_var=GLOBAL_VARS) + GLOBAL_VARS.update(admin_cookies) + GLOBAL_VARS.update({"cookies": admin_cookies["admin_cookies"]}) + + with allure.step("新建公开项目"): + GLOBAL_VARS["user_id"] = GLOBAL_VARS["env_super_user_id"] + GLOBAL_VARS["repo_owner"] = GLOBAL_VARS["env_super_login"] + project_info = RequestControl().api_request_flow( + api_file_path=os.path.join(GITLINK_DIR, "projects", "test_gitlink_new_project.yaml"), + key="gitlink_projects_new_project_01", global_var=GLOBAL_VARS) + GLOBAL_VARS.update(project_info) + # 保留初始的项目拥有者和项目标识,方便测试结束后删除项目 + GLOBAL_VARS.update({"init_repo_owner": project_info["repo_owner"]}) + GLOBAL_VARS.update({"init_repo_identifier": project_info["repo_identifier"]}) + + with allure.step("添加测试账号作为项目成员-开发者"): + GLOBAL_VARS["added_user_id"] = GLOBAL_VARS["env_user_id"] + RequestControl().api_request_flow( + api_file_path=os.path.join(GITLINK_DIR, "projects", "collaborators", + "test_gitlink_add_repo_collaborator.yaml"), + key="gitlink_add_repo_collaborator_01", global_var=GLOBAL_VARS) + + with allure.step("开启数据集导航栏"): + RequestControl().api_request_flow( + api_file_path=os.path.join(GITLINK_DIR, "projects", "settings", + "test_gitlink_update_project_unit.yaml"), + key="gitlink_update_project_unit_01", global_var=GLOBAL_VARS) + + with allure.step("创建数据集"): + # 获取开源许可证 + licence_info = RequestControl().api_request_flow( + api_file_path=os.path.join(GITLINK_DIR, "projects", + "test_gitlink_get_repo_licenses.yaml"), + key="gitlink_get_repo_licenses_01", global_var=GLOBAL_VARS) + + GLOBAL_VARS.update(licence_info) + + # 创建数据集 + RequestControl().api_request_flow( + api_file_path=os.path.join(GITLINK_DIR, "projects", "dataset", + "test_gitlink_repo_new_dataset.yaml"), + key="gitlink_repo_new_dataset_01", global_var=GLOBAL_VARS) + + GLOBAL_VARS.pop("user_id") + + logger.info("End ----- 初始化数据完成!") + yield + with allure.step("删除测试项目"): + GLOBAL_VARS.update({"cookies": GLOBAL_VARS["admin_cookies"]}) + # 获取初始的项目拥有者和项目标识,重新赋值,便于删除项目 + GLOBAL_VARS.update({"repo_owner": GLOBAL_VARS["init_repo_owner"]}) + GLOBAL_VARS.update({"repo_identifier": GLOBAL_VARS["init_repo_identifier"]}) + RequestControl().api_request_flow(api_file_path=os.path.join(GITLINK_DIR, "projects", + "test_gitlink_delete_project.yaml"), + key="gitlink_projects_delete_project_01", global_var=GLOBAL_VARS) diff --git a/utils/data_utils/data_handle.py b/utils/data_utils/data_handle.py index d0c3b88..288089f 100644 --- a/utils/data_utils/data_handle.py +++ b/utils/data_utils/data_handle.py @@ -9,11 +9,7 @@ import random # 导包不能移除,否则random.choice这种就不能处理 import json import re, uuid import copy -import os -import base64 -from datetime import datetime, timedelta # 第三方库导入 -from loguru import logger from string import Template from requests.cookies import RequestsCookieJar from requests.utils import dict_from_cookiejar @@ -21,8 +17,6 @@ from requests.utils import dict_from_cookiejar from utils.data_utils.faker_handle import FakerData from utils.data_utils.eval_data_handle import eval_data from utils.data_utils.data_tools import * -from utils.files_utils.files_handle import file_to_base64, filepath_to_base64, get_files -from config.path_config import FILES_DIR class DataHandle: @@ -33,22 +27,22 @@ class DataHandle: self.method_list = [method for method in dir(FakerData) if callable(getattr(FakerData, method)) and not method.startswith("__")] - def process_cookie_jar(self, data): + def process_cookie_jar(self, _data): """ 将任意数据里的RequestsCookieJar,转成dict,再转换成JSON 格式的字符串(序列化) - :param data: 待处理的数据 + :param _data: 待处理的数据 """ - if isinstance(data, dict): - for key, value in data.items(): - data[key] = self.process_cookie_jar(value) - elif isinstance(data, list): - for i, item in enumerate(data): - data[i] = self.process_cookie_jar(item) - elif isinstance(data, RequestsCookieJar): - data = json.dumps(dict_from_cookiejar(data)) - return data + if isinstance(_data, dict): + for key, value in _data.items(): + _data[key] = self.process_cookie_jar(value) + elif isinstance(_data, list): + for i, item in enumerate(_data): + _data[i] = self.process_cookie_jar(item) + elif isinstance(_data, RequestsCookieJar): + data = json.dumps(dict_from_cookiejar(_data)) + return _data - def replace_and_store_placeholders(self, pattern, text, resultAsDict=True): + def replace_and_store_placeholders(self, pattern, text, result_as_dict=True): """ 提取字符串中符合正则表达式的元素,同时用一个唯一的uuid来替换原有字符串 例如: @@ -69,7 +63,7 @@ class DataHandle: text = replaced_text replaced_text = re.sub(pattern, replace, text, count=1) - if resultAsDict: + if result_as_dict: return replaced_text, placeholders else: # 构造结果字符串 @@ -95,7 +89,7 @@ class DataHandle: # 处理一下source,检测到里面存在RequestsCookieJar,转成dict,再转换成JSON 格式的字符串(序列化)。 # 避免传递过来一个RequestsCookieJar,替换后变成了'RequestsCookieJar',导致cookies无法使用的问题 - source = self.process_cookie_jar(data=source) + source = self.process_cookie_jar(_data=source) # 如果进来的是字符串,先将各种类型的表达式处理完 if isinstance(obj, str): @@ -185,158 +179,6 @@ class DataHandle: return obj -def get_file_content(file_name): - """ - 获取文件二进制内容 - :param file_name: 文件名称 - :return: - """ - file_path = os.path.join(FILES_DIR, file_name) - if os.path.exists(file_path): - # 如果文件是一个真实存在的路径,则返回文件二进制内容 - return file_to_base64(file_path=file_path) - else: - # 若文件不存在,则尝试以文件扩展名随机选择一个文件 - logger.warning(f"图片不存在,将获取传入文件名后缀,随机取对应类型的文件, 路径:{file_path}") - file_extension = os.path.splitext(file_name)[1] - files = get_files(target=FILES_DIR, end=file_extension) - if files: - # 返回文件二进制内容 - return file_to_base64(file_path=random.choice(files)) - else: - logger.warning(f"找不到该文件后缀对应的同类型文件,将返回空, 传入的文件名:{file_name}") - return None - - -def list_to_str(target): - """ - 将列表中的元素转换为字符串,并用逗号分隔。 - - :param target: 要转换为字符串的列表。 - :return: 以逗号分隔的字符串。 - """ - if isinstance(target, list) and target: - # 过滤掉列表中的None值 - filtered_list = [str(item) for item in target if item is not None] - # 使用逗号连接字符串 - return ",".join(filtered_list) - else: - return None - - -def string_to_base64(input_string: str): - """ - 将字符串转换为Base64格式 - """ - base64_bytes = base64.b64encode(input_string.encode('utf-8')) - base64_string = base64_bytes.decode('utf-8') - return base64_string - - -def str_to_list(target): - """ - 将字符串转换为列表,字符串中以逗号分隔的元素将转换为列表中的元素。 - """ - if isinstance(target, str): - return [target] - else: - return target - - -def none_to_null(target): - """ - 将'None'转成空字符串 - """ - if target == 'None': - return "" - else: - return target - - -def get_file_base64(file_name): - """ - 返回文文件内容的base64编码 - """ - file_path = os.path.join(FILES_DIR, file_name) - if os.path.exists(file_path): - # 如果文件是一个真实存在的路径,则返回base64编码内容 - return file_to_base64(file_path=file_path) - else: - logger.warning(f"找不到该文件,将返回空, 传入的文件名:{file_name}") - return None - - -def get_filepath_base64(file_name): - """ - 返回文件路径的base64编码 - """ - file_path = os.path.join(FILES_DIR, file_name) - if os.path.exists(file_path): - # 如果文件是一个真实存在的路径,则返回base64编码内容 - return filepath_to_base64(file_path=file_path) - - else: - logger.warning(f"找不到该文件,将返回空, 传入的文件名:{file_name}") - return None - - -def get_base64_content(input_string: str): - """ - 获取base64编码内容 - """ - byte_string = input_string.encode('utf-8') - base64_bytes = base64.b64encode(byte_string) - base64_string = base64_bytes.decode('utf-8') - return base64_string - - -def base64_decode(encoded_string): - try: - decoded_bytes = base64.b64decode(encoded_string) - decoded_string = decoded_bytes.decode('utf-8') - return decoded_string - except Exception as e: - return f"Error decoding: {str(e)}" - - -def update_wiki_sidebar(sidebar_content, new_page_name): - """ - 获取wiki sideber的base64编码内容,将新页面追加到后面,再重新编码返回 - """ - _sidebar_content = base64_decode(sidebar_content) - new_sidebar_content = _sidebar_content + f"\n[[{new_page_name}]]" - return string_to_base64(new_sidebar_content) - - -def get_current_week(start_or_end="start"): - """ - 获取当前日期,并根据参数返回本周的开始或结束日期。 - - 参数: - - start_or_end: 字符串,指定返回本周的开始日期("start")还是结束日期("end")。 - - 返回: - - 本周开始或结束日期的字符串表示,格式为"月日"(例如:"01月01日")。 - """ - # 获取当前日期 - today = datetime.today() - # 计算今天是本周的第几天(0代表周一,1代表周二,以此类推) - current_weekday = today.weekday() - - if start_or_end == "start": - # 计算本周的周一 - res = today - timedelta(days=current_weekday) - elif start_or_end == "end": - # 计算本周的周日 - res = today - timedelta(days=current_weekday) + timedelta(days=6) - else: - # 如果参数非法,返回当前日期的周一 - logger.error(f"Invalid value for start_or_end: {start_or_end}. Defaulting to 'start'.") - res = today - timedelta(days=current_weekday) - - return res.strftime("%m月%d日") - - # 声明data_handle方法,这样外部就可以直接import data_handle来使用了 data_handle = DataHandle().data_handle diff --git a/utils/data_utils/data_tools.py b/utils/data_utils/data_tools.py index 75ce3d4..dd0ec9c 100644 --- a/utils/data_utils/data_tools.py +++ b/utils/data_utils/data_tools.py @@ -6,7 +6,15 @@ # @Desc: # 标准库导入 -import random +import random # 导包不能移除,否则random.choice这种就不能处理了 +import os +import base64 +from datetime import datetime, timedelta +# 第三方库导入 +from loguru import logger +# 本地应用/模块导入 +from utils.files_utils.files_handle import file_to_base64, filepath_to_base64, get_files +from config.path_config import FILES_DIR def zip_test_step(step_id, step_status_id=None): @@ -17,3 +25,176 @@ def zip_test_step(step_id, step_status_id=None): return [{'id': id, 'stepStatus': execResult} for id, execResult in zip(step_id, step_status_id)] else: return [{'id': id, 'stepStatus': random.choice([0, 1, 2, 3, 4])} for id in step_id] + + +def get_file_content(file_name): + """ + 获取文件二进制内容 + :param file_name: 文件名称 + :return: + """ + file_path = os.path.join(FILES_DIR, file_name) + if os.path.exists(file_path): + # 如果文件是一个真实存在的路径,则返回文件二进制内容 + return file_to_base64(file_path=file_path) + else: + # 若文件不存在,则尝试以文件扩展名随机选择一个文件 + logger.warning(f"图片不存在,将获取传入文件名后缀,随机取对应类型的文件, 路径:{file_path}") + file_extension = os.path.splitext(file_name)[1] + files = get_files(target=FILES_DIR, end=file_extension) + if files: + # 返回文件二进制内容 + return file_to_base64(file_path=random.choice(files)) + else: + logger.warning(f"找不到该文件后缀对应的同类型文件,将返回空, 传入的文件名:{file_name}") + return None + + +def list_to_str(target): + """ + 将列表中的元素转换为字符串,并用逗号分隔。 + + :param target: 要转换为字符串的列表。 + :return: 以逗号分隔的字符串。 + """ + if isinstance(target, list) and target: + # 过滤掉列表中的None值 + filtered_list = [str(item) for item in target if item is not None] + # 使用逗号连接字符串 + return ",".join(filtered_list) + elif isinstance(target, str) and target: + return target + else: + return None + + +def string_to_base64(input_string: str): + """ + 将字符串转换为Base64格式 + """ + base64_bytes = base64.b64encode(input_string.encode('utf-8')) + base64_string = base64_bytes.decode('utf-8') + return base64_string + + +def str_to_list(target): + """ + 将字符串转换为列表,字符串中以逗号分隔的元素将转换为列表中的元素。 + """ + if isinstance(target, str): + return [target] + else: + return target + + +def none_to_null(target): + """ + 将'None'转成空字符串 + """ + if target == 'None': + return "" + else: + return target + + +def get_file_base64(file_name): + """ + 返回文文件内容的base64编码 + """ + file_path = os.path.join(FILES_DIR, file_name) + if os.path.exists(file_path): + # 如果文件是一个真实存在的路径,则返回base64编码内容 + return file_to_base64(file_path=file_path) + else: + logger.warning(f"找不到该文件,将返回空, 传入的文件名:{file_name}") + return None + + +def get_filepath_base64(file_name): + """ + 返回文件路径的base64编码 + """ + file_path = os.path.join(FILES_DIR, file_name) + if os.path.exists(file_path): + # 如果文件是一个真实存在的路径,则返回base64编码内容 + return filepath_to_base64(file_path=file_path) + + else: + logger.warning(f"找不到该文件,将返回空, 传入的文件名:{file_name}") + return None + + +def get_base64_content(input_string: str): + """ + 获取base64编码内容 + """ + byte_string = input_string.encode('utf-8') + base64_bytes = base64.b64encode(byte_string) + base64_string = base64_bytes.decode('utf-8') + return base64_string + + +def base64_decode(encoded_string): + try: + decoded_bytes = base64.b64decode(encoded_string) + decoded_string = decoded_bytes.decode('utf-8') + return decoded_string + except Exception as e: + return f"Error decoding: {str(e)}" + + +def update_wiki_sidebar(sidebar_content, new_page_name): + """ + 获取wiki sideber的base64编码内容,将新页面追加到后面,再重新编码返回 + """ + _sidebar_content = base64_decode(sidebar_content) + new_sidebar_content = _sidebar_content + f"\n[[{new_page_name}]]" + return string_to_base64(new_sidebar_content) + + +def get_current_week(start_or_end="start"): + """ + 获取当前日期,并根据参数返回本周的开始或结束日期。 + + 参数: + - start_or_end: 字符串,指定返回本周的开始日期("start")还是结束日期("end")。 + + 返回: + - 本周开始或结束日期的字符串表示,格式为"月日"(例如:"01月01日")。 + """ + # 获取当前日期 + today = datetime.today() + # 计算今天是本周的第几天(0代表周一,1代表周二,以此类推) + current_weekday = today.weekday() + + if start_or_end == "start": + # 计算本周的周一 + res = today - timedelta(days=current_weekday) + elif start_or_end == "end": + # 计算本周的周日 + res = today - timedelta(days=current_weekday) + timedelta(days=6) + else: + # 如果参数非法,返回当前日期的周一 + logger.error(f"Invalid value for start_or_end: {start_or_end}. Defaulting to 'start'.") + res = today - timedelta(days=current_weekday) + + return res.strftime("%m月%d日") + + +def split_data(target: str, split_char: str, start_index: int, end_index: int = None): + """ + 切割数据,返回指定索引范围内的切割结果 + :param target: 要切割的字符串 + :param split_char: 切割的方式 + :param start_index: 切割结果的起始索引。假如end_index为空,则返回指定索引值 + :param end_index: 切割结果的结束索引(可选,默认为 None) + :return: 指定索引范围内的切割结果 + """ + # 参数类型检查 + if not isinstance(target, str): + raise ValueError("target must be a string") + + if start_index and end_index: + return target.split(split_char)[start_index:end_index] + else: + return target.split(split_char)[start_index] diff --git a/utils/data_utils/extract_data_handle.py b/utils/data_utils/extract_data_handle.py index e7c2582..7efa602 100644 --- a/utils/data_utils/extract_data_handle.py +++ b/utils/data_utils/extract_data_handle.py @@ -10,9 +10,10 @@ import re # 第三方库导入 from jsonpath import jsonpath from loguru import logger -from requests import Response +from requests import Response, cookies, utils + + # 本地应用/模块导入 -from utils.data_utils.data_handle import data_handle def json_extractor(obj, expr: str = '.'): @@ -24,11 +25,10 @@ def json_extractor(obj, expr: str = '.'): """ try: result = jsonpath(obj, expr)[0] if len(jsonpath(obj, expr)) == 1 else jsonpath(obj, expr) - result = data_handle(obj=result) logger.debug(f"\n提取对象:{obj}\n" f"提取表达式: {expr} \n" f"提取值类型: {type(result)}\n" - f"提取值:{result}\n") + f"提取结果:{result}\n") return result except Exception as e: logger.debug(f"\n提取对象:{obj}\n" @@ -48,11 +48,10 @@ def re_extract(obj: str, expr: str = '.'): # 如果提取后的数据长度为1,则取第一个元素(返回str),否则返回列表 result = re.findall(expr, obj)[0] if len(re.findall(expr, obj)) == 1 else re.findall(expr, obj) # 由于提取出来的数据都是str格式,将eval一样,还原数据格式 - result = data_handle(obj=result) logger.debug(f"\n提取对象:{obj}\n" f"提取表达式: {expr}\n" f"提取值类型: {type(result)}\n" - f"提取值:{result}\n") + f"提取结果:{result}\n") return result except Exception as e: logger.debug(f"\n提取对象:{obj}\n" @@ -72,7 +71,10 @@ def response_extract(response: Response, expr: str = '.'): result = eval(expr) logger.debug(f"\n提取表达式: {expr}\n" f"提取值类型: {type(result)}\n" - f"提取值:{result}\n") + f"提取结果:{result}\n") + # 将从Response对象提取的cookiejar对象转换为dict格式, 避免后续使用cookies的时候出现类型错误 + if isinstance(result, cookies.RequestsCookieJar): + result = utils.dict_from_cookiejar(result) return result except Exception as e: logger.debug(f"\n提取表达式: {expr}\n" diff --git a/utils/requests_utils/base_request.py b/utils/requests_utils/base_request.py index 5eba39d..29ecf02 100644 --- a/utils/requests_utils/base_request.py +++ b/utils/requests_utils/base_request.py @@ -20,7 +20,7 @@ class BaseRequest: Request操作封装 """ - TIMEOUT = 8 + TIMEOUT = 12 @classmethod def send_request(cls, req_data): @@ -67,7 +67,13 @@ class BaseRequest: 传递的参数会被编码为JSON格式并包含在请求体中。 需要注意的是,使用这种方式传递的参数必须是可序列化为JSON的数据类型(如字典、列表、整数、浮点数、布尔值或None)。对于不可序列化的数据类型(如文件或其他自定义对象),需要先进行序列化。 """ - logger.debug("requestType 为 json 类型") + logger.debug("发送请求:\n" + "request_type=json\n" + f"method={method}\n" + f"url={url}\n" + f"headers={headers}\n" + f"json={json}\n" + f"其他参数:{kwargs}\n") return requests.request( method=method, url=url, @@ -84,7 +90,13 @@ class BaseRequest: params: 这是通过URL传递参数的方式。所有传递的参数都会被编码到URL中。requests库会自动处理这些参数的编码。 需要注意的是,这种方式只适用于简单的键值对,对于复杂的数据结构,如列表或字典,需要先进行序列化。 """ - logger.debug("requestType 为 params 类型") + logger.debug("发送请求:\n" + "request_type=params\n" + f"method={method}\n" + f"url={url}\n" + f"headers={headers}\n" + f"params={params}\n" + f"其他参数:{kwargs}\n") return requests.request( method=method, url=url, @@ -102,7 +114,13 @@ class BaseRequest: 这些参数通常需要通过requests库提供的data参数来传递,并且在发送请求时,需要设置Content-Type为application/x-www-form-urlencoded或multipart/form-data。 对于简单的键值对,可以直接将它们作为字典传递给data参数;对于复杂的数据结构,需要先进行序列化。 """ - logger.debug("requestType 为 data 类型") + logger.debug("发送请求:\n" + "request_type=data\n" + f"method={method}\n" + f"url={url}\n" + f"headers={headers}\n" + f"data={data}\n" + f"其他参数:{kwargs}\n") return requests.request( method=method, url=url, @@ -133,7 +151,14 @@ class BaseRequest: 返回: - requests.Response: 发送请求后的响应对象。 """ - logger.debug("requestType 为 file 类型") + logger.debug("发送请求:\n" + "request_type=file\n" + f"method={method}\n" + f"url={url}\n" + f"headers={headers}\n" + f"fields={fields}\n" + f"files={files}\n" + f"其他参数:{kwargs}\n") # 如果fields没有指定,则默认使用 "file" 作为字段名 _fields = fields or "file" @@ -166,7 +191,12 @@ class BaseRequest: @classmethod def request_type_for_none(cls, method: Text, url: Text, headers: Optional[Dict], **kwargs): """处理 requestType 为 None""" - logger.debug("requestType 为 None 类型") + logger.debug("发送请求:\n" + "request_type=none\n" + f"method={method}\n" + f"url={url}\n" + f"headers={headers}\n" + f"其他参数:{kwargs}\n") return requests.request( method=method, url=url, diff --git a/utils/requests_utils/request_control.py b/utils/requests_utils/request_control.py index 35a4df2..7618e44 100644 --- a/utils/requests_utils/request_control.py +++ b/utils/requests_utils/request_control.py @@ -9,6 +9,7 @@ import json import os import http.cookiejar +import time # 第三方库导入 import requests from requests import Response, utils @@ -374,6 +375,12 @@ class RequestControl(BaseRequest): response = self.send_request(new_api_data) + # 根据配置,增加接口请求等待时间。适应部分请求调用后,需要进行内置数据处理的问题 + logger.debug(f"开始等待") + if new_api_data.get("wait_seconds"): + time.sleep(new_api_data["wait_seconds"]) + logger.debug(f"结束等待") + new_api_data["status_code"] = response.status_code new_api_data["response_time_seconds"] = round(response.elapsed.total_seconds(), 2) new_api_data["response_time_millisecond"] = round(response.elapsed.total_seconds() * 1000, 2)