[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M699W4MRRGHR03FCFPKG5K6B":3,"skill-same:01M699W4MRRGHR03FCFPKG5K6B":59},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":27,"publishedAt":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":35,"commitSha":36,"skillDirectory":37,"forksCount":38,"repositoryHtmlUrl":39,"repositoryHomepageUrl":40,"ownerHtmlUrl":41,"ownerBlogUrl":42,"ownerDescription":43,"updatedAt":44,"install":45,"resources":58},"01M699W4MRRGHR03FCFPKG5K6B","testing-course-samples",null,"microsoft\u002Fai-agents-for-beginners","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M6998ZK2275KMJE6Y5SEA2X2",79374,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fsv\u002F.agents\u002Fskills\u002Ftesting-course-samples\u002FSKILL.md",[17,22],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},"01JBSEEDCAT000000000000039","教师与教育","PROFESSION","适用职业",[28,29],"testing","testing course samples","2026-11-10 10:12:30",false,"---\nname: testing-course-samples\n---\n# Testa kursproverna\n\nValidera att lektionernas anteckningsböcker och kodexempel körs mot en live\nMicrosoft Foundry \u002F Azure OpenAI-miljö. Repositoriet levererar en körbar fil på\n[`scripts\u002Fvalidate-notebooks.ps1`](..\u002F..\u002F..\u002F..\u002F..\u002Fscripts\u002Fvalidate-notebooks.ps1) som\nexekverar varje Python-anteckningsbok headlessly och skriver ut en PASS\u002FFAIL-matris.\n\n## När man ska använda\n- \"Validera alla anteckningsböcker \u002F exempel mot mitt Azure-abonnemang.\"\n- \"Snabbtesta kursen efter uppgradering av paket eller modelländringar.\"\n- \"Vilka lektioner klarar sig fortfarande \u002F misslyckas live?\"\n\nAnvänd **inte** detta för AI Smoke Test GitHub Action (som validerar *utplacerade*\nhostade agenter — se [`tests\u002FREADME.md`](..\u002F..\u002F..\u002Ftests\u002FREADME.md)). Denna förmåga\nkör anteckningsböckerna lokalt.\n\n## Förutsättningar (kontrollera först)\n1. **Python 3.12+** med kursberoenden: `python -m pip install -r requirements.txt`\n   plus exekveraren: `python -m pip install nbconvert ipykernel`.\n2. **`.env` i repo-roten** (kopiera från [`.env.example`](..\u002F..\u002F..\u002F..\u002F..\u002F.env.example)) med minst:\n   - `AZURE_AI_PROJECT_ENDPOINT` — Foundry-projektendpoint\n     (`https:\u002F\u002F\u003Caccount>.services.ai.azure.com\u002Fapi\u002Fprojects\u002F\u003Cproject>`)\n   - `AZURE_AI_MODEL_DEPLOYMENT_NAME` — en icke-deprecierad distribution (t.ex. `gpt-5-mini`)\n   - `AZURE_OPENAI_ENDPOINT` (`https:\u002F\u002F\u003Caccount>.openai.azure.com`) och `AZURE_OPENAI_DEPLOYMENT`\n     för lektioner som anropar Azure OpenAI direkt (Lektion 06, 02-azure-openai, 14 handoff\u002Fhuman-loop).\n3. **`az login`** genomfört — prover autentiserar med `AzureCliCredential` (Entra ID, nyckellöst).\n4. Verifiera att modelldistributionen finns:\n   `az cognitiveservices account deployment list -g \u003Crg> -n \u003Caccount> -o table`.\n\n## Köra valideringen\n```powershell\n# Alla Python-notebookar (hoppar över .NET, .venv, site-packages, översättningar, kompetensresurser)\npwsh scripts\u002Fvalidate-notebooks.ps1\n\n# En enskild lektion, med längre tidsgräns per cell\npwsh scripts\u002Fvalidate-notebooks.ps1 -Filter '08-*' -Timeout 600\n\n# Lista bara vad som skulle köras (ingen exekvering)\npwsh scripts\u002Fvalidate-notebooks.ps1 -List\n\n# Explicit tolk (om `python` inte finns i PATH, t.ex. Windows Store-alias)\npwsh scripts\u002Fvalidate-notebooks.ps1 -Python \"C:\u002Fpath\u002Fto\u002Fpython.exe\"\n```\nSkriptet skriver körda kopior, per-anteckningsboksloggar och `results.json` till\n`$env:TEMP\\aiab-nbval` och avslutar med antalet fel.\n\nÖvergående fel (delade-prenumerations HTTP 429 hastighetsbegränsningar, ett tillfälligt\n`AzureCliCredential` tokenhaveri eller en timeout) försöks automatiskt igen\n(`-Retries`, standard 2, med `-RetryDelaySeconds` paus, standard 20). Om en\nmodelldistribution regelbundet ger 429, kontrollera prenumerationens GlobalStandard\nTPM-kvot (`az cognitiveservices usage list -l \u003Cregion>`) — att öka kapaciteten hos en enda\ndistribution hjälper inte när *prenumerations*kvooten är uttömd.\n\n## Tolka resultaten\n- `PASS` — anteckningsboken kördes från början till slut utan cellfel.\n- `FAIL` — den första `*Error` \u002F `*Exception`-raden visas; öppna motsvarande\n  `log_*.txt` i utdatamappen för fullständigt felsökningsspår.\n- Ett enskilt anteckningsboksfel är begränsat av `-Timeout` (per cell), så en fastnad\n  human-in-the-loop cell visas som `StdinNotImplementedError` istället för att frysa.\n\n## Lektioner som kräver extra resurser (förväntas misslyckas utan dem)\n| Lektion | Extra krav |\n|--------|-------------------|\n| 05 Agentic RAG | Azure AI Search (`AZURE_SEARCH_SERVICE_ENDPOINT`, nyckel) — har en fallback-väg i minnet |\n| 11 MCP \u002F GitHub | GitHub MCP-server + PAT |\n| 13 minne (cognee) | `cognee` konfigurerad med en modellleverantör |\n| 15 browser-use | Playwright-browser installerade (`playwright install`) + `AZURE_OPENAI_CHAT_DEPLOYMENT_NAME` |\n| 17 lokal agent | Foundry Local-runtime + en nedladdad Qwen-modell (på enheten, ingen moln) |\n| `*-dotnet-*` anteckningsböcker | .NET Interactive-kärna (utesluten som standard; använd `-IncludeDotnet`) |\n\n## Rapportera tillbaka\nSammanfatta som en PASS\u002FFAIL-tabell grupperad efter lektion. Separera verkliga regressioner\n(kod-\u002Fkonfigurationsbuggar att åtgärda) från miljöbrister (saknad Search\u002FFoundry Local\u002FPAT),\noch ange den felande `log_*.txt` för varje verkligt fel.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Ansvarsfriskrivning**:\nDetta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Även om vi strävar efter noggrannhet, var vänlig notera att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår till följd av användningen av denna översättning.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->","# Testa kursproverna\n\nValidera att lektionernas anteckningsböcker och kodexempel körs mot en live\nMicrosoft Foundry \u002F Azure OpenAI-miljö. Repositoriet levererar en körbar fil på\n[`scripts\u002Fvalidate-notebooks.ps1`](..\u002F..\u002F..\u002F..\u002F..\u002Fscripts\u002Fvalidate-notebooks.ps1) som\nexekverar varje Python-anteckningsbok headlessly och skriver ut en PASS\u002FFAIL-matris.\n\n## När man ska använda\n- \"Validera alla anteckningsböcker \u002F exempel mot mitt Azure-abonnemang.\"\n- \"Snabbtesta kursen efter uppgradering av paket eller modelländringar.\"\n- \"Vilka lektioner klarar sig fortfarande \u002F misslyckas live?\"\n\nAnvänd **inte** detta för AI Smoke Test GitHub Action (som validerar *utplacerade*\nhostade agenter — se [`tests\u002FREADME.md`](..\u002F..\u002F..\u002Ftests\u002FREADME.md)). Denna förmåga\nkör anteckningsböckerna lokalt.\n\n## Förutsättningar (kontrollera först)\n1. **Python 3.12+** med kursberoenden: `python -m pip install -r requirements.txt`\n   plus exekveraren: `python -m pip install nbconvert ipykernel`.\n2. **`.env` i repo-roten** (kopiera från [`.env.example`](..\u002F..\u002F..\u002F..\u002F..\u002F.env.example)) med minst:\n   - `AZURE_AI_PROJECT_ENDPOINT` — Foundry-projektendpoint\n     (`https:\u002F\u002F\u003Caccount>.services.ai.azure.com\u002Fapi\u002Fprojects\u002F\u003Cproject>`)\n   - `AZURE_AI_MODEL_DEPLOYMENT_NAME` — en icke-deprecierad distribution (t.ex. `gpt-5-mini`)\n   - `AZURE_OPENAI_ENDPOINT` (`https:\u002F\u002F\u003Caccount>.openai.azure.com`) och `AZURE_OPENAI_DEPLOYMENT`\n     för lektioner som anropar Azure OpenAI direkt (Lektion 06, 02-azure-openai, 14 handoff\u002Fhuman-loop).\n3. **`az login`** genomfört — prover autentiserar med `AzureCliCredential` (Entra ID, nyckellöst).\n4. Verifiera att modelldistributionen finns:\n   `az cognitiveservices account deployment list -g \u003Crg> -n \u003Caccount> -o table`.\n\n## Köra valideringen\n```powershell\n# Alla Python-notebookar (hoppar över .NET, .venv, site-packages, översättningar, kompetensresurser)\npwsh scripts\u002Fvalidate-notebooks.ps1\n\n# En enskild lektion, med längre tidsgräns per cell\npwsh scripts\u002Fvalidate-notebooks.ps1 -Filter '08-*' -Timeout 600\n\n# Lista bara vad som skulle köras (ingen exekvering)\npwsh scripts\u002Fvalidate-notebooks.ps1 -List\n\n# Explicit tolk (om `python` inte finns i PATH, t.ex. Windows Store-alias)\npwsh scripts\u002Fvalidate-notebooks.ps1 -Python \"C:\u002Fpath\u002Fto\u002Fpython.exe\"\n```\nSkriptet skriver körda kopior, per-anteckningsboksloggar och `results.json` till\n`$env:TEMP\\aiab-nbval` och avslutar med antalet fel.\n\nÖvergående fel (delade-prenumerations HTTP 429 hastighetsbegränsningar, ett tillfälligt\n`AzureCliCredential` tokenhaveri eller en timeout) försöks automatiskt igen\n(`-Retries`, standard 2, med `-RetryDelaySeconds` paus, standard 20). Om en\nmodelldistribution regelbundet ger 429, kontrollera prenumerationens GlobalStandard\nTPM-kvot (`az cognitiveservices usage list -l \u003Cregion>`) — att öka kapaciteten hos en enda\ndistribution hjälper inte när *prenumerations*kvooten är uttömd.\n\n## Tolka resultaten\n- `PASS` — anteckningsboken kördes från början till slut utan cellfel.\n- `FAIL` — den första `*Error` \u002F `*Exception`-raden visas; öppna motsvarande\n  `log_*.txt` i utdatamappen för fullständigt felsökningsspår.\n- Ett enskilt anteckningsboksfel är begränsat av `-Timeout` (per cell), så en fastnad\n  human-in-the-loop cell visas som `StdinNotImplementedError` istället för att frysa.\n\n## Lektioner som kräver extra resurser (förväntas misslyckas utan dem)\n| Lektion | Extra krav |\n|--------|-------------------|\n| 05 Agentic RAG | Azure AI Search (`AZURE_SEARCH_SERVICE_ENDPOINT`, nyckel) — har en fallback-väg i minnet |\n| 11 MCP \u002F GitHub | GitHub MCP-server + PAT |\n| 13 minne (cognee) | `cognee` konfigurerad med en modellleverantör |\n| 15 browser-use | Playwright-browser installerade (`playwright install`) + `AZURE_OPENAI_CHAT_DEPLOYMENT_NAME` |\n| 17 lokal agent | Foundry Local-runtime + en nedladdad Qwen-modell (på enheten, ingen moln) |\n| `*-dotnet-*` anteckningsböcker | .NET Interactive-kärna (utesluten som standard; använd `-IncludeDotnet`) |\n\n## Rapportera tillbaka\nSammanfatta som en PASS\u002FFAIL-tabell grupperad efter lektion. Separera verkliga regressioner\n(kod-\u002Fkonfigurationsbuggar att åtgärda) från miljöbrister (saknad Search\u002FFoundry Local\u002FPAT),\noch ange den felande `log_*.txt` för varje verkligt fel.\n\n---\n\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER START -->\n**Ansvarsfriskrivning**:\nDetta dokument har översatts med hjälp av AI-översättningstjänsten [Co-op Translator](https:\u002F\u002Fgithub.com\u002FAzure\u002Fco-op-translator). Även om vi strävar efter noggrannhet, var vänlig notera att automatiska översättningar kan innehålla fel eller brister. Det ursprungliga dokumentet på dess modersmål bör betraktas som den auktoritativa källan. För kritisk information rekommenderas professionell mänsklig översättning. Vi ansvarar inte för några missförstånd eller feltolkningar som uppstår till följd av användningen av denna översättning.\n\u003C!-- CO-OP TRANSLATOR DISCLAIMER END -->",{"name":5},"main","f09e94ffe170f8af6d3db7c42987bbe4db227723","translations\u002Fsv\u002F.agents\u002Fskills\u002Ftesting-course-samples",25989,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners","https:\u002F\u002Faka.ms\u002Fai-agents-beginners","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-07 12:51:12",{"source":7,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add microsoft\u002Fai-agents-for-beginners --skill testing-course-samples",{"tool":51,"command":52},"bunx","bunx skills add microsoft\u002Fai-agents-for-beginners --skill testing-course-samples",{"tool":54,"command":55},"pnpm","pnpm dlx skills add microsoft\u002Fai-agents-for-beginners --skill testing-course-samples","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fsv\u002F.agents\u002Fskills\u002Ftesting-course-samples\u002FSKILL.md",true,[],[60,67,78,86,94,101],{"skillNo":61,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":62,"categories":63,"keywords":66,"publishedAt":30},"01M69A206TRZ8KK0CW0HYJF5V5","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Ftesting-course-samples\u002FSKILL.md",[64,65],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":23,"categoryName":24,"taxonomyType":25,"taxonomyTypeDesc":26},[28,29],{"skillNo":68,"name":69,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":75,"publishedAt":30},"01M69A1XRB2SFHYRMEH0K08EKZ","microsoft-docs","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fmicrosoft-docs\u002FSKILL.md",[72],{"categoryNo":73,"categoryName":74,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发",[76,8,77],"docs","microsoft docs",{"skillNo":79,"name":80,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":30},"01M69A1VPZFJQ1HNGTZQ5P3WSC","local-ai-agents","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Flocal-ai-agents\u002FSKILL.md",[],[84,85],"ai agents","local ai agents",{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":30},"01M69A1S947N7MM6V9JF85S2E7","jupyter-notebook","當使用者要求建立、搭建或編輯 Jupyter 筆記本（`.ipynb`）用於實驗、探索或教學時使用；優先使用隨附範本並執行輔助腳本 `new_notebook.py` 來產生一個乾淨的起始筆記本。","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fjupyter-notebook\u002FSKILL.md",[],[93],"jupyter notebook",{"skillNo":95,"name":96,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":30},"01M69A1Q8EXPWKZSQK69V6WF22","deploying-scalable-agents","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fdeploying-scalable-agents\u002FSKILL.md",[],[100],"deploying scalable agents",{"skillNo":102,"name":103,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":106,"publishedAt":30},"01M69A1MHZTH3RH9N8VYSYG74X","azure-openai-to-responses","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fai-agents-for-beginners\u002Fblob\u002Fmain\u002Ftranslations\u002Fzh-TW\u002F.agents\u002Fskills\u002Fazure-openai-to-responses\u002FSKILL.md",[],[107],"azure openai to responses"]